この世には多くのプログラミング言語が存在します。
また、プログラミング言語には流行り廃りがあります。
例えば、Objective-Cという言語は、以前であればiPhoneアプリの開発に使われていましたが、その役割はSwiftという言語に取って代わられました。
これはただの一例ですが、このような例は枚挙にいとまがありません。
しかし、ずっと人気の言語ももちろん存在します。
RubyはC言語などに比べれば比較的新しいですが、その登場以降人気は衰えません。
最近では、Pythonの人気がうなぎのぼりです。
もちろん今後Pythonが廃れていく可能性もゼロではありませんが、その可能性はとても低いです。
以前の記事でも述べましたが、Pythonは人工知能のプログラミングに使われたり、世界的なIT企業(Googleなど)で採用されているので、将来性のある言語であると言えます。
なので、今後Pythonを勉強していくというのは非常にいい選択肢の一つです。
また、日本国内で言えば国産の言語であるRubyの人気はやはり高く、その人気は今後も衰えそうにありません。
今回はそのPythonとRubyに焦点を当てた記事です。
特に、今回はPythonでWebアプリケーションを開発するという部分に焦点を当てていきます。
RubyでWebアプリケーションを作るならRuby on Rails
まずはRubyからです。
Rubyがなぜ日本で人気なのかというと、Rubyが日本で作られたため、日本語のリソースが多いことが挙げられます。
しかし、最も重要な理由は「Ruby on Rails」の存在です。
Ruby on RailsはRubyでWebアプリケーションを作るためのフレームワークです。
簡単に言うと、Ruby on Railsを使えば比較的簡単にWebアプリケーションを作ることができます。
(ちなみにここでいうWebアプリケーションとは、TwiiterなどのWebサービスのことを指します。)
Rubyを使って一から自分でプログラミグをしなくても、Ruby on Railsのレールの上に乗れば簡単に素早くWebアプリケーションが作れてしまいます。
また、Ruby on Railsを使うことによって、コードも読みやすくなります。(Ruby on Railsを知っている人にとっては)
これらの理由によって、Ruby on Railsの人気、ひいてはRubyの人気が上がっていきました。
Ruby on Railsの存在もあり、RubyといえばWebアプリケーションを作るプログラミング言語というイメージを持つ人も多くいます。
一方、Pythonにそのようなイメージを持つ人は比較的少ないです。
Pythonといえば、統計処理、数値計算、機械学習、データサイエンス、人工知能などのイメージを持つ人が比較的多いです。
そして、そのイメージは間違っていません。
確かにPythonはそれらの分野で最も使われており、今後も使われていくことが予想されます。
しかし、「PythonにはRuby on RailsのようなフレームワークがないからWebアプリケーションを作るには向かないんでしょ」という風に思っているのであれば、それは完全なる誤解です!
PythonでWebアプリケーションを開発するにはDjango(ジャンゴ)がある!
先ほども説明しましたが、RubyのWebアプリケーションフレームワークにはRuby on Railsがあります。
それと同様に、PythonでWebアプリケーションを作るためのフレームワークとして「Django(ジャンゴ)」というものが存在します!
確かにフレームワークを使っている人数でいうと、Ruby on Railsの方が多いと思いますが、DjangoもRuby on Railsに負けずとも劣らず素晴らしいフレームワークです。
というのも、DjangoはRuby on Railsからもろに影響を受けています 笑
いい意味で真似ています。
なので、「PythonでWebアプリケーションを作るのはあんまり向かないんじゃないの」というのは完全に誤解であることが分かります。
PythonにもRuby on Railsに似たDjangoというフレームワークがあるのですから。
もし、あなたがPythonかRubyかどちらを勉強するか迷っており、Ruby on Railsの存在によりRubyに傾きかけているのであればちょっと待ってください。
何度も言いますが、PythonにもDjangoがあります!
さらにPythonは人工知能(AI)関連でも多く使われています。
そう考えると、Pythonを選ぶというのもアリなのではないでしょうか。
が、PythonのDjangoには一つ大きな問題があります。
Ruby on Railsの本は、日本語の書籍が多くありますが、Djangoに関する日本語の書籍はほとんどありません。
もちろんPythonに関する日本語の本はいっぱいあります。
ですが、Djangoの本は英語の書籍がほとんどです。
なので、もし英語のリソースを読むのがどうしても苦手だ、という人はRubyを選択した方がいいかもしれません。
(ちなみに初心者がRuby on Railsを勉強する際におすすめの本はこちらで紹介しています)
ただ、英語といっても基本的にはコードを読むだけなので、英語の能力が高くなくても問題ありません。
ちなみにDjangoを学ぶなら本よりもUdemyの「Python and Django Full Stack Web Developer Bootcamp」がおすすめです。
これ一個でDjangoを用いてPythonでWebアプリケーションを作る方法はマスターできます。
(あとUdemyはよく割引をしているので、買うなら割引をしてる時に買うべきです。割引ないと高すぎるので気をつけて下さい 笑)
まとめると、RubyかPythonかで迷ったら、、、
・人工知能とか興味ない、とにかくWebアプリケーションを簡単に作りたい → Ruby(英語OKならPythonでも大丈夫)
・Webアプリケーションにも人工知能にも興味ある かつ 英語が全くダメというわけではない → Python
・そもそもWebアプリケーションより人工知能(AI)でしょ → Python
また、人工知能関連は日本語のリソースも多くあるので、英語の心配はする必要ありません。
ちなみに人工知能(AI)のプログラミングを独学でしたいよ、という人は以下の記事等を参考にしてください。
おわりに
今回はPythonによるWebアプリケーションで用いるフレームワークであるDjangoの紹介をしました。
また、RubyかPythonかどちらを選ぶべきかという難しい問題にも一応私なりの解を出してみました。
ぜひ参考にしてみてください。