ご質問の趣旨からは少し逸れますが・・・
こういう場を通してバリバリの諸先輩から生のご意見を拝聴出来るのはとても価値のあることです。
しかし、両者のメリット・デメリットについては既にネット上で多くの方が独自の視点でまとめられているので、敢えて別の論点から。(長文で失礼します。)
###設計の哲学こそ重要
メリット・デメリットを把握することは重要ですが、それはある設計思想に基づいて実装された結果の一部、目に見える特徴の一つに過ぎません。
今は 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の日本語版で基本をしっかりと理解できていればなんとかなるはずですし、良い実装例を参考にしようと思えばどうしても英語のページを検索する必要が生じるので、英語版のリファレンスに馴染むことも重要だと思います。
以上、幾らかでもご参考になれば幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。