Python vs Ruby: どちらを選ぶべきか悩んでいます

このQ&Aのポイント
  • PythonとRubyのどちらの言語を選ぶべきか悩んでいます。C言語を勉強してきた経験があり、JavaやBasic、Lispも少し触ったことがありますが、まだプログラミングに苦手意識があります。
  • 現在、Windows7 64bitのPC環境にUbuntu12.04を仮想で導入しており、Ubuntu上でEmacsを利用して言語処理と画像出力を考えています。
  • 音声認識なども専門なので、将来的にここで学んだ知識を生かせればと思っています。PythonとRubyのどちらを選ぶべきか、また他のおすすめの方法があれば教えていただきたいです。
回答を見る
  • ベストアンサー

PythonかRubyにするか悩んでいます.

このようなやりとりは調べている中でたくさんありましたが, 未だに自分の中で決着がつかずにいます. みなさんの力を借りれればと思います. 現在のPC環境は Windows7 64bit に仮想でUbuntu12.04 を導入しています. Ubuntu上でEmacsを利用し,言語処理と画像出力を考えています. 今まではC言語を勉強してきました. 後はJava,Basic,Lispをかじった程度です. (自分自身ではプログラムに未だ苦手意識があります) 音声認識等も専門なので,のちにここで学んだ知識を生かせれば・・と横着なことを考えています. PythonまたはRuby,どちらの言語の方が良いでしょうか. もしこの二つに限らずおすすめの方法がありましたら教えてください. よろしくお願いします.

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

> 後1ヶ月ばかしで仕上げる という状況なら、 「それをやるのに便利なモジュールがあるか?」 を考慮に入れるといいでしょう。 Cをやっているならわかると思いますが 例えば、「BMP形式画像をファイルに出力する」ときに、全部自前で作るのって面倒ですよね? でも、 適当な画像処理ライブラリを使うと「writeBitmap(~)」みたいな感じで数行で済みますよね? PythonもRubyも同じように、モジュールを使えば楽になることがあります。 ただ、全部の言語に同等のモジュールがあるとは限らないし、同じ機能でも面倒なのと簡単なのがあったり、安定した実績のもあれば開発中で不安定なものがあったりします。 それをふまえて、使いたいモジュールから言語を選択するのもいいと思います。 # その意味では、CPANがあるPerlも考慮に入れていいと思います

kangaerutako
質問者

お礼

なるほど.使いたいモジュールから言語選択・・考えてもいませんでした. ありがとうございます! 自分が作りたいものがどのようなモジュールを使えば簡単にシンプルに作れるか調べて言語選択をしてみたいと思います. ありがとうございました.

その他の回答 (2)

回答No.2

言語系は好みが別れるところですが・・・。 私だったらRubyですね。 Rubyは国産の言語なので、日本語でのコミュニティも盛んに行われているのが良い所だと思います。 また、C言語の勉強をしてこられたとの事なので、仮にRubyで実装されてない機能があったとしても、C言語でライブラリを作り、それをRubyから呼び出す事も簡単に出来ます。(これで助けられた事も多々あります)

kangaerutako
質問者

お礼

おお!そんな素敵な機能もあるのですね! ありがとうございます. そのような機能も視野に入れたいとおもいます. ありがとうございました.

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

両方勉強して、自分が作りたいものに適していると思った方を使えばいいと思います。 勉強する対象はべつに1つに絞る必要は無い。というか、絞らない方がいいです。

kangaerutako
質問者

お礼

なるほど・・ ありがとうございます. 後1ヶ月ばかしで仕上げる・・という状況だったため焦っていましたが,頑張って両方勉強し,それから選択するのも良い手だと感じました. ありがとうございます.

関連するQ&A

  • Ruby ,Python,Pearl について

    Ruby ,Python,Pearl この中でひとつだけ覚えるとします。 覚えていない二つの言語のソースコードでも読むのに一番苦にならない言語はどれですか。 興味のある参考書はだいたいこの3つの言語のどれかで書かれているのですがそれは本によって異なってます。 ですので、まず始めにどの言語を学べばよいか教えていただけないでしょうか。 それとも3者とも毛色が全く違う言語なのでしょうか? よろしくお願い致します。

  • Pythonの利点は?

    こんにちは。高校生のぴぷりんです。 僕はJava/JavaScriptを中心にやっています。 オブジェクト指向の言語にはいろいろありますが、 そのなかでPythonなるものがあります。 PerlやRubyは書籍も多く知名度が高いのですが、 Pythonあまり見かけることがありません。 そこでPythonをやっている人に質問です! Pythonの利点・欠点を教えてください。

  • Perl・Python・Rubyのどれがおすすめ?

    小さいプログラムであればコンパイラ言語より簡単に作成できると聞いたので、インタプリタ言語を一つ習得しようと思っているのですが、Perl・Python・Rubyのうちどれを選ぼうか悩んでいます。 私は現在、情報系学科の大学生で、今までにPascal、CASLII、C、Perl、Javaを習いました。どれも課題をこなすために使った程度で、どれも1年以上継続して利用していません。 以下が、それぞれの言語に対する認識です。初心者の意見なので間違っていることが多いかもしれません。 [Perl] -長所 ・一度勉強しているため、勉強し始めやすい。 ・習い始めるにあたり、一番初めに読もうと考えている「初めてのPerl 第5版」の評価が高い。 ・参考となるものが多い。 -短所 ・ソースが見にくいと聞いたことがある。 [Python] -長所 ・Perlより後にできた言語なので、Perlより洗練されてて高機能? ・Perlとは違い、同じことをするプログラムのソースは似ると聞いたことがあり、こっちの方が使い易い? -短所 ・Perl同様、Pythonを始めるなら一番最初に読もうと思う「初めてのPython 第3版」の訳が悪いという噂がある。また、「初めてのPerl」に比べると、ページ数が異常に多い。 Rubyについては聞いたことがある程度でほとんど知りません。 また、コンパイラ言語としてはC#を習得しようかと考えています。 以上から、Perl・Python・Rubyのうちどの言語を習得するのがいいと思いますか?個人的な意見でも構いません。理由を詳しく書いていただけると、選択の参考になるのでありがたいです。 できるだけたくさんの意見が聞きたいので、様々な回答をお願いします。

  • もし仮に5つの言語(Python, Java, C/C++, Perl

    もし仮に5つの言語(Python, Java, C/C++, Perl, LISP、アセンブラ)を学ぶとした場合の学習順序 こんばんは。 もしこの5つを何年かかけて学ぶとした場合、この学習順序をどうおもいますか? ちなみにこの5つの言語は、linuxなどのOSやオープンソースソフトウェアの開発に携わっている方たち(ハッカーの方たち) が、OSや言語開発をするなら学ぶべき言語として主張していました。(クラッカーではなくハッカーです) この方たちがいうには pythonをはじめに学習し、次にjava それからC/C++, Perl, LISP、アセンブラの順番が良いと言っていました。 特にpythonを一番に学び、javaを2番に学ぶべき理由としては↓ まず Python から始めることをおすすめします。設計がきれいだし、ドキュメントもしっかりしているし、初心者にもそこそことっつきやすくできています。でも入門言語として最適でも、おもちゃではありません。強力で柔軟で、大きなプロジェクトにもじゅうぶん対応しています Java もプログラミングを学ぶにはよい言語です。 Python よりはむずかしいですが、できるコードは Python より高速です。二番目の言語としてはとてもすぐれていると思います。 本気でプログラミングをするなら、C を勉強するしかありません。これは Unix の中核となる言語です。C++ は C と密接な関係にあります。片方を知っていれば、もう片方を学ぶのはそんなにむずかしくありません。が、どっちも真っ先に勉強しようとするのには向いた代物ではありません。 それ以外に Perl と LISP があります。Perl は実際的な意味からも勉強しておく価値があります。アクティブ Web ページやシステム管理にとても広く使われているからです。自分では Perl を使わなくても、読めるようにはなっておきましょう。LISP は、それをモノにしたときのすばらしい悟り体験のために勉強しましょう。この体験は、その後の人生でよりよいプログラマーとなる手助けとなるはずです。たとえ、実際には LISP そのものをあまり使わなくても。 さらに、visualbasicやC#などはやめた方が良い。と主張しています。↓ ウィンドウズの下でハッキングを学ぶのを、拘束衣を着て踊りを学ぶのに例えたのは、あれは冗談じゃないんですよ。 Visual Basic や C# にはそれぞれ個別に問題があります。その大きなものは、移植性がないことです。マイクロソフトの独占言語だというだけで、もうすでに失格ですし、ほかの Basic と同じく言語としての設計もまずく、悪いプログラミングの習慣が身についてしまいます。 足りなかったのでこちらに。 みなさんはこの順序や考えについてどうおもいますか? 本当にpythonは最初に適した言語なのでしょうか? 長文になってしまい申し訳ありません。 できればひとりでも多くの技術者の意見が聞きたいです。なんでもかまいません。 もし良ければ回答お願いします。

  • python を使って SNS 作成

    現在、pythonを学習中のプログラミング初心者高校生です。初級者にわかりやすいとのことでpython勉強し始めました。しかし、スクリプト言語にはphp perl rubyなどがあるので僕の選択肢が正しかったのか不安になってきてしまいました。 とりあえず今のところpythonとhtml,cssの勉強をしています。その後javascriptなどを学ぶつもりです。 そこで質問があります (1)Pythonを使った場合sns作成の、最善な方法(直線的に、どの言語を学び具体的にどのように作っていくべきか) (2)そもそもpythonではなくそれ以外のスクリプト言語の方がSNSを作るのに向いているのか  またその場合どのような手順で進めるべきか *僕が作りたいのはアメーバピグのようなゲーム要素は取り入れないつもりです どうかご教授宜しくお願いします!

  • Pythonのプログラムの実行の考え方について

    pythonの教科書のサンプルの実行についてお尋ねします。 テキストのサンプルには普通、インタープリターで書いてあるものと、プログラムをファイルに書き出してそれをコマンドで一気に処理するもの(こちらの方が他の言語の実行に近いか)の2通りがあります。 インタープリター向きに記述されたものをファイルに書き出してpythonコマンドで、インタープリターと同じように実行するにはどのような書き換えが必要になるのでしょうか。結果を出力するときにインタープリターでは配列名を入力するだけでその内容が出力されたりしますが、ファイルではそれができないのでコマンドを指定するとかになると思いますが、他になにかあるでしょうか。 ファイルに書き出したプログラムの実行ですが、Pythonコマンドを実行しても実行形式の出力がないのでコンパイルではないわけですが、これはバッチとかシェルスクリプトと同じような意味になるのでしょうか。1行1行実行していくということですが。とするとインタープリターと同じになるのかなと思うのですが。 実行形式が単体のファイルとして出力されて単体として実行できるというのは従来のプログラム(C,Fortranなど)ですが、Pythonはそれがないわけですね。Ruby, Perlに近いものなのでしょうか。速度が求められる科学技術計算ではライブラリを導入して高速化できるということですが、どの程度かなと思いますが。その中間的なものがJavaなのかなと思いますが(半分実行ファイルみたな)。 たぶんベタな質問と思いますが、よろしくお願いします。

  • 関数型言語を独学で勉強している学生です

    情報系の大学3年生です。 僕は関数型言語に興味がありhaskellやlispを勉強しています。 しかしこれらの言語で何か作るのは結構しんどいと思います。 ぶっちゃけ、javaとかrubyとかpythonの方が作りやすいでしょう。 haskellは出力するにも一苦労だしlispはリストが面倒。 関数型言語は実用的だとは思えません。 しかし、楽しいです。 どう表現すればいいかわかりませんが、とにかく関数型言語は面白いです。 そこで質問です。 昨今のIT企業は新卒採用の際、学生時代に作ったプログラムを評価し採用の是非を決めると思います。 もし関数型言語で何か作っても評価されるのでしょうか。 僕ができることといえば、本やサイトに載ってあるサンプルを少し改良するぐらいです。 そんな作品を企業側が積極的に評価し、採用してくれるでしょうか。 それともこんな浮世離れしたことやるよりrubyとかpythonで奇抜なアイデアのプログラムを組んで、twitterやブログで奇を衒っていかにもギークっぽく振舞ったほうがいいんでしょうか。 文章がめちゃくちゃですみません。 とにかく僕はこのまま今の勉強を続けてもいいのか、それがわからないんです。 自分で考えるべきことでしょうが、調べるばかりで頭が混乱して日常生活に支障がでてきてます。 誰がアドバイスください。 よろしくおねがいします。

  • 初めて関数型言語を学ぶとしたら、どの言語がお奨めですか?

    初めて関数型言語を学ぶとしたら、どの言語がお奨めですか? JavaScriptをやっていて、関数型言語に興味を持ちました。 いままで、勉強した言語はC < Java < Python < JavaScriptです。(右側の方が比重・興味が大きい) 現在、Web系志望の学生なので、その辺を踏まえてアドバイスいただけると助かります。 今のところ興味を持ってるのは、Common Lisp/Haskellあたりです。 よろしくお願いします。

  • 数多く存在するプログラミング言語について教えて下さい

    今、プログラミング言語全般について勉強中ですが、質問です! C、C++、Perl、FORTRAN、COBOL、ALGOL、SmallTalk Lisp、Prolog、Logo、TCL、Pascal、ObjectC、VB、 Basic、Java、Delphi、April、Rubyなど様々な言語が存在しますが、この中の言語以外には他にどの様な名前の言語が存在しますか? そして、 知名度の低い(使っている人すみません)TCL、Aprilを始めとする言語について 詳しい事を教えて下さい。

  • オススメのプログラミング言語

    以下の中で将来性が高く、面白い言語はどれですか? 参考にさせていただきたいので簡単な理由もお願いします。 1.C言語 2.PHP 3.Java 4.Java Script 5.Ruby 6.Swift 7.Python

専門家に質問してみよう