RubyまたはPython?[閉まっている]


24

この質問は非常に主観的で自由自在です。それは、私が自分自身で研究し、自分で決断を下すべきだとさえ思えるかもしれません。しかし、私はそれをそこに置き、他の人からいくつかの考えを得たいと思います。

簡単に言えば、私はネズミレースで燃え尽きており、今年は自己資金でサバティカルに参加しています。その大部分は企業の仕事から離れて旅行することですが、新しいテクノロジーで遊んで、自己学習プロジェクトを行い、プログラミングの速度を維持したいです。プレッシャーがないときにプログラミング!

ここにあります:私は生涯のC / C ++ / Javaプログラマーです。私はプログラミングのキャリア全体でこのファミリーの言語を扱ってきたので、少しかっこいいです。ですから、このグループとあまり構文的に関連していない言語を学びたいです。私が基本的に探しているのは、比較的汎用的で、楽しく学ぶことができ、C ++ / Javaとは異なるいくつかの新しい概念を持ち、優れたコミュニティを持つ言語です。2番目の考慮事項は、優れたWeb開発フレームワークがあることです。第三の考慮事項は、それが完全にアカデミックではないということです(読んでください:それを使用する現実世界の仕事があります)。

RubyまたはPythonに絞り込みました。Rubyの私の印象は、それが非常にWeb指向であるということです-それの唯一の実際のアプリケーションは、Webを行うためのサーバー側スクリプト言語としてです(主にRuby on Rails)。Pythonの印象はあまりありませんが、情熱的なファン層があり、かなり汎用性の高い言語であると思われる点を除きます。

TL; DRをできるだけ簡潔にまとめると、C ++ / Javaの人がプログラミングの新しい観点を習得するのに、どちらが良いでしょうか?そして、どちらがよりオープンで汎用的であり、幅広いアプリケーションに適用できますか?現時点ではRubyに傾いていますが、サーバーサイドのWeb言語としてのみ使用されているように見えるのではないかと心配しています。


「Pythonの場合、私はよくわからない」なにかの?これはどのように関連していますか?
S.Lott

StackOverflowのRubyとPythonの詳細をご覧ください。レナート自身がまだコメントしていないことに驚いています。regebro.wordpress.com/2009/07/12/python-vs-ruby stackoverflow.com/questions/1113611/...
仕事

@ S.Lott:すみません、はっきりしませんでした。Pythonの詳細な印象がまだまったくないということです。汎用性があり、強力なファン層を持っていることを除いて。
ボビーテーブル

9
もちろん、Perl。
ブルースオルダーマン

これは「どのテクノロジーが優れているか」に分類されます。FAQによると、トピック外と見なされる質問のカテゴリ。
ChrisF

回答:


35

主にRails(Webアプリケーションフレームワーク)にだまされてRubyが一般的な用語になったという事実を許さないでください。これは汎用プログラミング言語であり、他の言語を使用できるものなら何でも使用できます。

Rubyをいじって、Rubyに夢中になっているかどうかを確認してください。あなたはそうするかしないでしょう。グレイトフルデッドの音楽のようなものです。あなたはそれを愛するか、我慢できない。

Rubyはあなたの脳を引き伸ばします。多くの点で、C ++ / Javaから可能な限り離れています。私はCとC#のバックグラウンドを持っていますが、Rubyのダイナミックさとメタプログラミングの力は非常に魅力的であることがわかりました。

そうは言っても、Pythonは非常に優れた言語であり、中括弧から抜け出すことができます。

両方を学んでみませんか?RailsでのプログラミングにはRubyを、Google AppEngineでの作業にはPythonを定期的に使用しています。


2
デッドリファレンスの場合は+1 、;)
cschol

1
ありがとう。最初にRubyを使用し、Rubyに恋をするかどうかを確認します。:)
ボビーテーブル

8
私はパーティーに少し遅れていますが、trypython.orgtryruby.orgは言語を試すのに最適なサイトです。
ミシェルティリー

17

確かに、Rubyはほとんど使用していませんが、Pythonに対する私の印象は次のとおりです。

  • 関数を作成するために擬似コードを書くとき、私が実際に書いているの Pythonであり、実際のコードにするために必要な書き直しはほとんどないことわかります。擬似コードをすべてスキップして、Pythonで直接自分の考えを表現することもできます
  • 一般的なタスクのように思える何かをする必要があるとき、Pythonはその標準ライブラリに必要な関数を(高レベルで)組み込む傾向があります。たとえば、ファイルを開いて1行ずつスキャンしたかった初期の頃の答えは、「myFileの行:dostuff(lines)」のように簡単でした。これは、「バッテリーを含む」アプローチと呼ばれるものであり、日常の操作がはるかに面倒な場合に使用した他のいくつかの言語とは異なります

これらの2つのことは私にとって際立っています。


これらがまさに私がRubyを好む理由だと思います。Rubyはオブジェクト指向であり、キーワードは少ないです。例えば、Rubyの「[1,3,5] .length()」および「[1..10] .each()...」とPythonの「len([1,3,5])」および「for i範囲内(1,11)」
LennyProgrammers

6
@Lenny-Rubyには実際により多くのキーワードがあります:krijnhoetmer.nl/stuff/ruby/keywords vs. zetcode.com/tutorials/pythontutorial/keywords-Python 2.6では、Ruby 38の31個のキーワードです。また、「more OO」はここではかなり主観的に使用されています。両方の言語で「すべてがオブジェクト」であるためです(さらに、Python 3.xでは、すべてがサブクラスであるため、さらに文字通りobject)。また、len(obj)呼び出すためのショートカットがありobj.__len__()、そしてfor i in rangeまた、オペレーティングジェネレータオブジェクトの動作の詳細を抽象化します。/同等だが異なる/の方が正確だと思う。
ウェインワーナー

レニーはあなたの典型的な声明でより少ないキーワードを使用することを意味していると感じています。たとえば、「for i in range(1,11)には3つのキーワード(for、in、range)があります。もちろん、時にはより多くの言葉が良いこともあります。
アンドリューM

5
範囲はキーワードではなく関数です
Kugel

9

あなたが一年の休暇を取っているなら、私はそれぞれに一週間か二週間を費やすことをお勧めします。私は両方の経験があり、私の意見ではどちらも非常に優れているので、どちらを好むかを決める必要があります。


+1、どちらも非常に簡単なようです。一方、Clojureは非常に楽しいですが、より難しいものでもあります。
ジョブ

7

IMO、Pythonを使用する必要があります。その理由は、汎用性が高く、ほとんどすべてに使用できるからです。お気づきのとおり、RubyはWebフレームワークのためにWeb開発でより多く使用されています。Pythonとは異なり、RubyはGUIデスクトップアプリケーション、数値、統計、または画像処理プログラムの開発には適していません。


1
Rubyが「guiデスクトップアプリケーション、数値、統計、または画像処理プログラムの開発にそれほど良くない」理由を指摘できますか 2001/2002年にRubyでプログラミングしていたとき、私はそれらすべてを喜んでやっていた。
レニープログラマー

7
@レニー222。Rubyには、numpy、scipy、sympy、PIL、matplotlibなどのライブラリはありません。数値ライブラリが何であれ、Pythonのそれよりもはるかに遅れています。同様に、GUIアプリケーションの開発用のドキュメントとライブラリがあります。
マーチン

1
あなたは、Pythonはより汎用性が高いと言い、その理由についてはライブラリを指しています。良いライブラリがないためにRubyで何かをするのはそれほど簡単ではないことを認めますが、それはRuby自体が何らかの形で汎用性が低いことを意味しません。
トワイソル

@Twisolまさにその理由:Pythonが非常にシンプル(かつ一貫性がある)である理由は、Pythonが非常に用途が広く、有用なライブラリ(IMO)が非常に多い理由です。
ナディールサンパオリ

6

RubyはRailsよりもずっと長い間使用されてきました。そのため、Rubyを世界に公開してみましょうRuby != web。できることと実際に行うことに関するシステム関連のホストがたくさんあります。Railsフレームワーク全体がRubyの世界の残りを飲み込んだようです。はい、私はRubyファンです。

一方、Pythonには多くの利点があり、Linuxのほぼすべてに統合されています。(Ruby、Javaなどと比較して)大規模なプログラムに組み込むのはおそらくかなり簡単だとわかります。Pythonで書かれたかなりの量のUbuntu Linuxインフラストラクチャがあります。これは、Pythonにシステムプログラミングのアプリケーションがあることを示しています。Webフレームワークは本当に素晴らしいと聞きましたが、まだ遊んでいません。

とは言っても、RubyとPythonはどちらも同等に機能する言語であり、これらの言語があなたの人生をずっと楽にしてくれることに気付くでしょう。Rubyのコミュニティには、より多くのWebヘッドがいますが、それがコミュニティ全体ではありません。私は多くのインフラストラクチャプロジェクトでも使用しました。


5

これは、「理想的なプログラミング言語の学習シーケンス」同様の質問の特殊なケースです。必要なのは「1つの完璧な言語」ではなく、心を開くには複数の言語パラダイムと複数の学習経験が必要です。

RubyとPythonに絞り込んだと言っていましたが、Racket(人気のあるScheme)から始めることをお勧めします。学習用に構築されており、機能的プログラミング、インタラクティブプログラミング、ダイナミックタイピングに向けて脳をうまく引き伸ばします。ジョブ(文字通りゼロ)、非常に小さく、断片化されたコミュニティ、および主要なWebフレームワークはありません。しばらく脳を揚げてから次に進みます。

次に、可能な仕事のためにRubyまたはPythonを学びたい。両方を学ぶことをお勧めします。これらの2つのうち2つ目を学習するのは、違いはありますが、1つ目よりもはるかに簡単です。可能性のある仕事に関しては、RailsのおかげでRubyの仕事が増えていると感じていますが、この分野ではZopeの仕事もあることを知っています。そのうちの少なくとも1つに投資しますが、少なくとも何かを構築するのに十分な長さでもう1つをチェックアウトします。

正直なところ、おそらく自分で学んだことよりも、どちらかを使って仕事での最初の週をもっと学ぶでしょう。両方とも、多くのツールと文化とイディオムを持つ大きなエコシステムを持っています。

tl; dr:両方とスキーム。


1
+1私が見たのは「完璧な言語」と「スキーム」だけでした。:)
dietbuddha

1

私もJava / C ++のバックグラウンドから来て、過去4か月間、Djangoフレームワークを使用してPythonでプログラミングをしてきましたが、本当に素晴らしいです。問題や質問があるときはいつでも、既存の投稿の説明を見つけることができます。Rubyをまだ使用していないため、Rubyを保証することはできませんが、時間があれば必ず試してみます。

Pythonには多くの便利な機能が組み込まれているので、Pythonを使って非常に迅速に処理できる方法が個人的に気に入っています。


1

Rubyに投票します。私は.NetとC#のバックグラウンドから来て、最初にPythonを試しましたが、Rubyは私を魅了しました=)
そこに多くのシステムを書いており、Rails開発者もいます。システムプログラミングでPythonとして機能し、Webで素晴らしいです。そして、それは私にとってより洗練されたように感じます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.