SNSサービスを作る際のプログラミング言語について
解決済
回答 4
投稿
- 評価
- クリップ 2
- VIEW 1,039
質問①
最近プログラミングを学んでいて練習でRuby on Railsを使いTwitterのようなSNSサイトを作っているのですかYouTubeやTwitter、Instagram、FacebookのようなSNSサイトを作る際はPythonやRuby、PHPなどをの言語がありますが結局どれが向いているのでしょうか。
YouTubeやInstagramはPythonで作られているようですがやはりPythonが一番向いているのでしょうか。
自分的にはPythonは大規模なウェブサービスで人工知能が用いられたウェブサイトが多いイメージ。
Rubyはとりあえず簡単にウェブサービスが作れるイメージ。
PHPはWikipediaやFacebookなど文字の情報量が多いサイトに使われているイメージ
です。
質問②
RubyではRuby on Rails、PHPではLaravel、PythonではDjangoなど各言語に有名なフレームワークがあると思うのですが、フレームワークを使わずに開発しているサイトもあるのでしょうか。
YouTubeはPythonで作られていると聞いたのですがフレームワークを使っているとしたらどのフレームワークを使用しているのでしょうか。
またTwitterやInstagramなどもどのフレームワークを使用して開発されているのでしょうか。
質問③
Javaでのウェブサイト開発について
個人的にJavaはAndroidアプリやPCソフトを作る際に用いられるイメージがあるのですが、ウェブサイトを作る際はどのように使われるのでしょうか。
Rubyなどの言語はインターネット上に沢山の情報があるイメージなのですがJavaでウェブ開発に関するサイトや書籍などがあまり見当たらないイメージなのですがJavaでウェブ開発を行う際はどのようにして行うのでしょうか(アバウトな質問ですみません…)
初心者で申し訳ありません…
長文な質問で申し訳ありませんが詳しい方教えていただけると幸いです。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+3
質問①
すでにあるものを改良する(たとえばWordPressはPHPベース、MastodonはRuby on Railsベースです)のでなければ、どの言語を選んでも問題ありません。
質問②
PHP以外の言語の場合、そもそもHTMLを出すだけで相応の工数が必要になるので、フレームワークなしでの開発は、一般にあまり行われません(RubyでのSinatraのような、「薄いフレームワーク」もあります)。
PHPは、ごくかんたんなWebサイトであればそのまま使うこともあります。
質問③
Javaでも、StrutsやSpringなどWebフレームワークが存在しています。ただ、Javaという言語の性質上、エンタープライズ系のほうが受けがよく、広く使われる感じではないです。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+3
マイクロサービス化が進んでいるので、質問の観点だと回答しにくいんじゃないかなぁ。。。
たまにこんな記事が出るので調べてみると面白いです。
【46選】あのサービス・アプリのアーキテクチャ・プログラミング言語・フレームワークを大調査!〔2019年始版〕
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+2
質問③に関して
JavaでのWeb開発についてですが、
Spring Frameworkを用いた開発が主流なのかと思います。
NTTデータやリクルートなんかはJavaやSpringでの開発を行っているみたいですね。
SpringやSpring Bootで調べると情報は出てくると思いますが、
ただRails等に比べると書籍等の情報は少ないように感じます。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+2
質問①
Python は機械学習ライブラリが豊富なので、AI 関連ではよく使われています。
Web 系では、PHP、Python、Ruby が主流ですが、向き不向きで言えば、ほとんど差はないと思います。
質問②
・YouTube
Web フレームワークは使われていないようです。
YouTube Architecture - High Scalability -
http://highscalability.com/youtube-architecture
Finatra
※初期は Ruby on Rails
Django
質問③
Web 系でも Java は使われていますよ。
有名どころでいうと、Google、YouTube、Amazon などで使われているようです。
Programming languages used in most popular websites - Wikipedia
https://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites
「java web開発」で検索すれば、情報もたくさん出てくると思います。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.34%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2020/03/20 17:44
「言語を選んでも問題ない」とのことですがMastodonはRuby on Rails、FacebookはPHP、InstagramやYouTubeはPythonで作られているように各サイト違う言語で作られていますが、これは別にインスタやYouTubeなどメディアを扱うサイトはパイソンが向いている、テキストのSNSの場合はRuby on Railsが向いているなどではなく、ただ単に作ったときにPythonを使った、Rubyを使った、だから今もその言語で続けているということでしょうか。
2020/03/20 17:48
ちなみに、TeratailはCakePHPで動いているようです。
2020/03/20 18:52
正確にはPHPからFacebookが独自に進化させた「Hack」です。