これは、stackoverflowに関する私の最初の質問なので、ご容赦ください。私は両方の言語に多大な敬意を持っているので、いかなる形のトローリングやフレームベイトにも近づかないようにしています。
私はpythonプログラマー(エキスパートではない)ですが、私はそれを愛しています。私の最初の言語はC++でした。私の仕事(Web開発)のおかげで、phpやjavascriptなどの他の言語に向かっています。
最近、Rubyの人気の高まりにとても興奮しています。しかし、私はPythonとRubyは非常に近いため、両方を学び、習得しようとする意味がほとんどなかったという印象を受けました。しかし、私が間違っていたと感じるので、私の質問:
python完全にRubyに切り替えた、またはツールセットにRubyを追加した)プログラマーからの連絡を希望します。
Ruby from Pythonから)に切り替えることで、具体的にどのようなメリットがありましたか?
理想的には、実世界の経験から聞きたいです。
これはかなり詳細な比較です:
http://c2.com/cgi/wiki?PythonVsRuby
Rubyを使用すると、コードが非常に正常に見えるようにしながら、舞台裏でより多くのマジックを発生させることができます。(Railsロジックは自動的に生成され、コードは 'books.find(' Moby Dick ')。price + = 20'のような単純なステートメントのように見えます。この場合、実行時にデータベースに接続してクエリや更新などを行います。
一方、Pythonははるかに高速です。私は少なくとも両方のチュートリアルを行い、あなたがより好きなものやあなたの仕事で使用されるものに特化します。
GoogleのGo(golang)もご覧ください。これは興味深い静的型付け/コンパイル済み言語であり、Pythonや友人からの影響が多いです。
問題について別の考え方を学ぶことになります。 RubyとPythonは機能とパフォーマンスは同等ですが、Rubyは関数型プログラミングを奨励しているようですが、Pythonは手続き型スタイルを奨励しているようです。
文字列をトークンで分割し、アイテムを逆にして、別のトークンと結合するタスクを考えてみてください。 Rubyでは、次のようにします。
"a,b,c".split(/,/).reverse.join("-") # => "c-b-a"
Pythonでは、おそらく次のようになります。
l = "a,b,c".split(",")
l.reverse()
"-".join(l) # => "c-b-a"
読みやすさ/保守性、読みやすさや理解のしやすさなど、あるスタイルが他のスタイルよりも優れていると主張する人もいます。しかし、どちらにしても、問題については別の方法で考えることになり、一般的にはそこから得られるものです。
Rubyで実行できるほとんどのことは、Pythonなどの他のプログラミング言語でも実行できるため、私にとってRubyの重要性は、言語そのものですが、文化や考え方には2つの大きな利点があります。
本当の利点はありません。 pythonを使用すると、Ruby/Railsから取得できるすべてのものが得られます。Webフレームワークでも、Web開発用のライブラリのセットでもかまいません。python言語処理、画像処理、xml/html解析など、Webに直接向けられていないライブラリがたくさんあるということです...
Rails開発者は 'magic' を好み、python/Djangoプログラミングは異なる、おそらくより意図的なプログラミングスタイルを持っていると思います。
さて、あなたが得る最も明白な利点は、RailsでRubyを学び、使用する能力を持つことです。この比較的新しいテクノロジーには非常に大きな市場があり、それを学ぶことは悪い考えではありません。
構文的には、それほど異なるビューは表示されません。それらは非常によく似ており、より機能的なアプローチに向かってRubyを学習します。つまり、もう1つの利点は、関数型言語に切り替えたいときに、thatとは思えないことです。パラダイム的に。
がんばれ! Pickaxe book を購入して、コーディングを入手してください。 Linuxディストリビューションを開発環境として使用することをお勧めします。私の質問を参照してください https://stackoverflow.com/questions/5009657/Ruby-should-i-learn-it-on-windows-7-or-linux 。
RailsでのアジャイルWeb開発に入るのに約8時間しかかかりません。Rubyを試してみてはどうですか?私はRubyからPythonへ、しかし私は最初にRubyを学びました。