質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.60%

  • Python

    7493questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Ruby

    7334questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails 4

    2406questions

    Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

  • Django

    984questions

    DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

  • 機械学習

    646questions

    機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

ruby on rails か django 今から勉強するならどちらですか?

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 6
  • VIEW 16K+
退会済みユーザー

退会済みユーザー

独学でhtml/css/jsを勉強しました。次は自分でwebサービスを作ってみたいと思い、djangoとrails を両方少しずつ手をつけてみました。
どちらもメリットデメリットがあるんだろうなと感じどちらを勉強していくか迷っています。

railsは日本語リファレンスが非常に多く勉強しやすい気がする(多すぎてどれを参考にしていいかわからないこともあるのが難点)のと、なによりも今コミュニティがどんどん大きくなっておりなぜみなさんがこぞってrailsを選ぶのかが気になります。それなりの理由があるんだろうなと。。。
有名なwebサービスもrailsが使われているものがかなり多い気がします。
ただrubyは自由すぎる書き方があまり好きになれないです。また高い利便性とは相反してバグが起こると面倒と聞いたことがあり、不安要素でもあります。

djangoはpythonの統一された書き方がとっても好きなので魅力的です。また機械学習などにも興味があり、pythonの知識を他の分野にも生かしていけるんじゃないかとも思っています。ペッパーくんに使われていたりするのも気になります。
ただ、日本語リファレンスが少なく非常に勉強しづらく感じました。私は書籍での勉強が好きなのですが、pythonの本はあれど新しいdjango本はほぼ見つけることは出来ません。

それぞれの良い点悪い点を教えてください。開発のしやすさ、処理の速さなどなんでも結構です。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+6

ご質問の趣旨からは少し逸れますが・・・

こういう場を通してバリバリの諸先輩から生のご意見を拝聴出来るのはとても価値のあることです。
しかし、両者のメリット・デメリットについては既にネット上で多くの方が独自の視点でまとめられているので、敢えて別の論点から。(長文で失礼します。)

設計の哲学こそ重要

メリット・デメリットを把握することは重要ですが、それはある設計思想に基づいて実装された結果の一部、目に見える特徴の一つに過ぎません。
今は Ruby on Rails と Django というフレームワークがテーマになっていますが、優れたフレームワークというのは、それ自体が機能的に優れているだけに留まらず、ベースとなっている言語の設計思想を正しく継承・発展させているものだと思います。

よく、一流の職人さんが道具に非常にこだわりをもっているという話が取り上げられますが、プログラマーにとって言語フレームワークは道具なので、こだわりを持つのは当然のことです。
職人さんが道具を選ぶ際には、刃物が良く切れることは当たり前のことであって、むしろ手に馴染む・しっくりくることを重要視します。

技術を十分に発揮するには、道具がいわば手の延長のように感じられることが重要なのだと思います。
プログラマーも同じで、使う言語、フレームワーク対して、使っていて楽しい、しっくりくるという感覚が必要ではないでしょうか?
ですから
rubyは自由すぎる書き方があまり好きになれない
djangoはpythonの統一された書き方がとっても好きなので魅力的
と仰るのであれば答えは既に出ていて、migakuさんにとってはDjangoがお似合いだと思います。

ご参考までに紹介しておきますと
Rubyの哲学と歴史。そしてまつもとさん。
→ Ruby on Railsを作ったプログラマはDavid heinemeier Hansson。Railsの設計哲学。 
Pythonの設計哲学
→ Django の設計思想

改めてよく見ると、結局どれも「好きなプログラミングをより楽しくシンプルに」という目的は同じで、それを実現する方法としてどこに力点を置くかが違っているだけだと気づきます。
Ruby on Rails も Django も共にフルスタック・フレームワークなので、時として「この部分はあっちの方がコーディングしやすかったなぁ〜」ということがあったとしても、いずれにせよ一通りのことは出来ます。道具自体も常に進歩していますから、不便な部分もいずれは改善されるでしょう。

でも、本当に行き詰った時、例えばフレームワークの実装方法にまで立ち入って調査せざるを得なくなった時こそ、設計哲学がしっくりくるかどうかの差が出てきます。

実は選ぶ必要性はなかった

どちらを勉強していくか迷っています。
だから迷いを払拭するために、判断材料が欲しいということなのだと思いますが、そもそもどちらか一方を選ぶ必要なんてありません

スペイン語を勉強しているからといって他の言語を話してはダメということはなく、中国の方とお会いした場面では、挨拶くらいは中国語で出来た方が良いに決まっています。
要するに、道具なんだから必要に応じて使い分ければ良いということです。

また機械学習などにも興味があり 
ということであれば、軸足 を Python / Django に据えた上で幅広く勉強して行けば良いのではないでしょうか?

今のところ、機械学習の分野では圧倒的に Python による実装例が多いようですし、処理の高速化を目指すなら cython という処理系もありますので。

道具として使うということ

webサービスの開発自体は Python / Django で行うとして、サーバ上でのちょっとした作業のために Ruby および Ruby on Rails を使えると便利な場合があります。
もちろん Python でもワンライナーは書けますが、あまり使い勝手は良くありません(と思います)。
一方、慣れは必要ですが、Rubyなら結構複雑な処理も短いワンライナーでササッと片付けることができます。(ご参考
また、Ruby on Rails のライブラリーの一つである ActiveSupport はRubyそのものを強化するような汎用的なライブラリーなので、Railsを使って開発するときだけでなく、いわゆる道具の一つとして利用することができます。(ご参考

ちょっと余談ですが…
欧米ではPython が人気だけれども、日本では Ruby の方が馴染みがあるというのは、単に作者が日本人だというだけでなく、我々が話す日本語の特徴も関係しているようです。

主部と述部の関係が構文によってきっちりと決められている欧米の言語とはことなり、日本語膠着語に分類され
ある単語に接頭辞や接尾辞のような形態素を付着させることで、その単語の文の中での文法関係を示す特徴を持つ。
という特徴があるそうです。つまり、言いたいことを、適当な助詞でくっつけながらいくらでも長い文章にすることができます。

そのような思考法に慣れている日本人にとって、思い付いたアイディアをサッとコーディングし、出来上がった処理のブロックを他のメソッドに渡すといった使い方は、結構馴染みやすく、コツさえ掴めれば強力な道具となり得るのだと思います。(ご参考

情報の入手のしやすさ

特に最初のうちは、日本語での情報の入手性は学習効率を大きく左右しますので、重要な要素ですね。
私は書籍での勉強が好きなのですが、pythonの本はあれど新しいdjango本はほぼ見つけることは出来ません。
確かにその通りかもしれません。Ruby/Ruby on Rails と比較すると日本のユーザー数が少ないので、致し方ありませんね。
しかし、旬な技術 に関する情報は頻繁に更新されるものなので、書籍化されたものはどうしても古くなってしまいます。

ですから、枯れた技術でない限り、ある程度はWeb上の情報や英語版の書籍に頼らざるを得ないのも致し方ありません。幸い、Djangoのユーザーコミュニティーがしっかりとした情報提供をしているので助かります。(ご参考

Ver.1.8のドキュメントは英語版しかありませんが、Ver.1.4の日本語版で基本をしっかりと理解できていればなんとかなるはずですし、良い実装例を参考にしようと思えばどうしても英語のページを検索する必要が生じるので、英語版のリファレンスに馴染むことも重要だと思います。

以上、幾らかでもご参考になれば幸いです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

自分は、Djangoしか使ってませんが、比較記事があるので参考にされてはどうですか?
http://d.hatena.ne.jp/shuji_w6e/20081123/1227419062


投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/13 21:24

    回答ありがとうございます。
    どういった理由でDjangoを選ばれたのですか?

    キャンセル

  • 2015/09/13 22:27

    普段使いの言語がPythonだったので、PythonのFWから選びました。
    使い心地的にはけっこう気に入ってます。
    気に入らなかった点は2つ
    ・管理画面のraw_id_fields指定したフィールドがキーしか表示できないこと(少しソースに手を入れて改造して見えるようにしましたが)
    ・明示的に書かないとstreamを返さないので、大きなサイズのレスポンスの時ブラウザのリアクションが遅くなる
    くらいですね。
    就職のために勉強したいというのなら、railsの方が流行ってる気がします。
    自分だけしか使わないなら、言語設計の好みやFWを触ってみた感触の好みで決めてしまうのも手です。誰かに開発・保守を頼みたいなら言語とFWの人口も検討材料になるかもしれません。
    自分は数年後忘れた頃にに自分で書いたものがメンテしやすいだろうという理由でPythonに手をつけました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.60%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Python

    7493questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Ruby

    7334questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails 4

    2406questions

    Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

  • Django

    984questions

    DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

  • 機械学習

    646questions

    機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。