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

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

新規登録して質問してみよう
ただいま回答率
85.36%
Django

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

Ruby

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

機械学習

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

Ruby on Rails 4

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

Python

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

Q&A

2回答

27979閲覧

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

退会済みユーザー

退会済みユーザー

総合スコア0

Django

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

Ruby

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

機械学習

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

Ruby on Rails 4

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

Python

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

0グッド

6クリップ

投稿2015/09/11 23:26

編集2015/09/12 00:42

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

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

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

それぞれの良い点悪い点を教えてください。開発のしやすさ、処理の速さなどなんでも結構です。

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

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

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

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

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

技術を十分に発揮するには、道具がいわば手の延長のように感じられることが重要なのだと思います。
プログラマーも同じで、使う言語、フレームワーク対して、使っていて楽しい、しっくりくるという感覚が必要ではないでしょうか?
ですから

rubyは自由すぎる書き方があまり好きになれない
djangoはpythonの統一された書き方がとっても好きなので魅力的

と仰るのであれば答えは既に出ていて、migakuさんにとってはDjangoがお似合いだと思います。

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

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

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

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

どちらを勉強していくか迷っています。

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

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

また機械学習などにも興味があり

ということであれば、軸足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の日本語版で基本をしっかりと理解できていればなんとかなるはずですし、良い実装例を参考にしようと思えばどうしても英語のページを検索する必要が生じるので、英語版のリファレンスに馴染むことも重要だと思います。

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

投稿2015/09/14 15:18

pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

投稿2015/09/12 17:06

kokardy

総合スコア781

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/09/13 12:24

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

2015/09/13 13:27

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問