
今日からpython の学習を始めていきたいと思います!
現在はウェブサイトの作成もやっていますが、ずっとウェブサイトやってると飽きてしまうので今後はpythonを学習していこうと思います。
バックエンドやっていないと忘れてしまいますからね。。
pythonのフレームワークのDjangoの方も学習していきたいと思います。
今回はpythonとRubyの違いについてやっていきます!
なぜ二つを比べるのか。
私自身Rubyの学習lをやっていたので、pythonを学習する上でRubyとくらべながら、Rubyを基にしながら学習していくと思います。
その中でやはり両者の違いを知っていた方が、いろいろ置き換えて考えられると思うので、まずは学習を始める前に二つの違いといい部分についてやっていきたいと思います。
この記事でわかること
・pythonとRubyの違い
・それぞれのいい部分
こんな感じでやっていきたいと思います。
PythonとRuby
両者の違い
Ruby on Rails の Web フレームワークは Ruby プログラミング言語を使って構築されていますが、Django の Web フレームワークは Python プログラミング言語を使って構築されています。
ここに多くの違いがあります。2つの言語は視覚的には似ていますが、問題を解決するためのアプローチの仕方においては異なる点があります。
Ruby はプログラマにとって無限の柔軟性を持ち、力を与えるように設計されています。
Ruby on Railsは、エレガントなWebフレームワークを作るために、多くの小さなトリックを行うことができます。
これは時に魔法のように感じることもありますが、その柔軟性がいくつかの問題を引き起こすこともあります。
たとえば、期待していないときにRubyを動作させるのと同じ魔法は、バグを追跡するのを非常に難しくし、コードを何時間もかけて調べなければならなくなります。
Pythonはプログラミングに対してより直接的なアプローチをとります。その第一の目標は、プログラマがすべてを見えるようにすることです。これはRubyが持つ優雅さを犠牲にしていますが、Pythonはコーディングの学習や問題の効率的なデバッグに大きなアドバンテージを与えています。
以下は、両方の言語でそれを行う方法です。
違いがよくわかると思います。
Ruby
require 'active_support/all'
new_time = 1.month.from_now
Python
from datetime import datetime
from dateutil.relativedelta import relativedelta
new_time = datetime.now() + relativedelta(months=1)
Pythonがdatetime
やdateutil
ライブラリから特定の機能をインポートすることを要求していることに注目してください。
明示的ですが、すべての機能がどこから来ているのかを簡単に知ることができるので、これは素晴らしいことです。
Rubyでは、もっと多くのことがカーテンの後ろに隠されています。
active_support
ライブラリをインポートすると、突然 Ruby のすべての整数が ".days
" と ".from_now
" メソッドを持つようになりました。これはよく読めるが、どこからこの機能がActive_supportの中に入ってきたのかは不明だ。さらに、言語内のすべての整数に新しい機能を追加するというアイデアはクールですが、問題を引き起こす可能性もあります。
どちらのアプローチが正しいとか間違っているというわけではなく、それぞれが強調していることが違うのです。Ruby は言語の柔軟性を誇示し、Python は直接的さと可読性を誇示しています。
Webフレームワーク(DjangoとRails)
DjangoとRailsはどちらもWebアプリケーションを構築するのに役立つフレームワークです。
Ruby と Python はどちらもスクリプト言語なので、パフォーマンスは似ています。
それぞれのフレームワークは、モデル、ビュー、コントローラ、データベースの移行など、伝統的な MVC フレームワークのすべての概念を提供します。
それぞれのフレームワークは、これらの機能を実装する方法に違いがありますが、核心部分では非常に似ています。
PythonやRubyにも、Webアプリケーションに機能を追加するために使えるライブラリがたくさんあります。
RubyにはRubygemsというリポジトリがあり、PythonにはPackage Indexというリポジトリがあります。
コミュニティ
PythonとRubyは、その背後にたくさんのコミュニティを持っています。
それぞれのコミュニティは、言語の方向性やアップデート、ソフトウェアの構築方法に影響を与えています。
しかし、PythonはRubyよりもはるかに幅広いコミュニティを持っています。数学と科学の両方の分野でPythonが成功している学術的なユースケースがたくさんあり、その勢いのために成長し続けています。
また、PythonはほとんどすべてのLinuxコンピュータにプリインストールされているので、Linuxサーバ(世界で最も人気のあるサーバ)で使用するのに最適な言語となっています。
Rubyの人気は2005年にRailsが登場したときに始まりました。
コミュニティはRailsを中心に増殖し、それ以来、ウェブ開発に非常に力を入れてきました。
また、Rubyはより多様化していますが、Pythonが到達したような多様性のレベルには達していません。
使用例
誰がこれらのプログラミング言語を使っているのでしょうか?
かなり多くの企業で使われています。RubyもPythonもテックの世界では普及しています。
Google、Pinterest、Instagram、National Geographic、Mozilla Firefox、Washington Postなど、Pythonで作られた有名なウェブサイトがたくさんあります。
同様に、Ruby on Railsを使ったWebサイトの例も同じくらいたくさんあります。Apple、Twitter、Airbnb、Shopify、Github、Grouponなど、Ruby on Railsを利用している有名企業。
まとめ
以上がPythonとRubyの違いでした!
Pythonの方が読みやすく、応用の範囲が広いという印象を受けます。
やはり、プログラミングを始めるなら今はPythonからの方が良さそうですね!
ただ、スクールなどはRubyやJavaで教えるところが多いので、そういった部分でいうとなかなか日本ではpythonを学ぶというのは初心者からするとハードルがたかいように思われます。
独学で勉強をするならまずはPythonで勉強をする方が良さそうですね。
私はこれからPythonの勉強をしていきたいと思います!
最後まで読んで頂きありがとうございました。