Web開発の学習:Django vs Node vs Rails vs Others [クローズ]


80

私はJavaとPython(いくつかのDjangoを含む)と少しのRuby(Railsなし)とNode.jsを知っていますが、おそらく私が知らないことがもっとあります。

私はWeb開発とその完全なスタックの学習を開始することを計画していますが、周りを見るとたくさんのオプションがあり、これは私を混乱させます。次のパラメータに基づいた提案が必要です

  1. 学びやすい
  2. 構築と反復が容易
  3. 展開が簡単(無料で安価なホスティングソリューションなど)
  4. 人気

アドバイスをお願いします

ありがとうございました


グーグルGWTはどうですか?またはグルーヴィーなgrails?
エンジェルオスフィア2011

回答:


82

Ruby on Rails:

簡単に学べる?-はい-で優れたドキュメントguides.rubyonrails.orgとの素晴らしいチュートリアルrailstutorial.org

構築と反復は簡単ですか?-確かに-レールはアジャイルで反復型開発に非常に適しています。

展開は簡単ですか?-デプロイするには(少なくとも小さなアプリの場合と学習中に)、heroku.comを使用するよりも簡単になることはできません-gitベースのプッシュとそれは無料です。

人気-非常に人気があります!

Django

簡単に学べる?--Railsと同様に、Djangoにはdocs.djangoproject.com/en/1.3/に優れたドキュメントがあります。おそらく少し急な学習曲線です(ここでは純粋に意見ですが、Railsは「準備ができている」傾向がありますが、djangoは開発に入る前に少し設定が必要です)。

構築と反復は簡単ですか?-繰り返しになりますが、Railsのように、一度起動して実行すると、反復するのは非常に簡単です。

展開は簡単ですか?-Railsほど簡単ではありません。herokuに相当するgondor.iodjangozoom.comstable.ioがありますが、プライベートベータ版になる傾向があります。そうは言っても、gondor.ioへの招待を得るのに問題はありませんでした

人気-人気がありますが、ユーザーコミュニティはRailsの群衆よりも少し活気がありません。

ノード

簡単に学べる?-ええと、はい、いいえ、簡単なhello worldサーバーを組み合わせるのは簡単ですが、本格的なアプリが必要な場合はもっと注意が必要です。私は最初はこれを避けたいと思います-それは新しく、急速に進化しています。また、Node自体はRailsやDjangoと比較できません。後者の2つはフレームワークであるのに対し、Nodeは何かを開発するために使用できるAPIの最低限のセットです。RailsやDjangoとより整合性のあるexpressjs.comのようなフレームワークを選ぶことができます。私は使ったことがないので、あなたに意見を述べることはできません。

構築と反復は簡単ですか?-構築が簡単-はい、反復が簡単-はい。

展開は簡単ですか? -no.deにアクセスして、スマートマシンの取得を申請できます-現時点では無料で、簡単にデプロイできます-gitベース。

人気-それは増えています。


13
RoRについての最初の3つのポイントに同意します。残念ながら、あなたの最後のポイントは真実ではありません。おそらく残念ですが、RoRは実際には人気がありません。Tiobeを見てください。Rubyの市場シェアは1.3%しかないため、RoRの市場シェアはさらに低くなります。Railsに提供されている仕事を見てください。見つけるのはとても難しいです。
マイクブラウン

4
十分に公平なマイク-多分オンラインコミュニティはそれが人気があるという私の認識が十分な騒ぎをしているだけです。:)
slapthelownote 2011

2
よくわかりませんが、Java Webフレームワークでタグ付けされたすべての質問を組み合わせると、SOでのRailsの質問の数に近づくことはできません。それはあなたにとって1.3%の市場シェアです。
フィリップDupanović

19
HerokuはDjangoをサポートするようになりました。
ベンラシーン

5
Railsに関するSOの質問がもっとたくさんあるという事実は、実際にデプロイされたアプリケーションでのフレームワークの人気よりも、Railsを学ぼうとしているプログラマーのタイプの指標かもしれません。たくさんの初心者にはたくさんの質問があります
A_funs 2012年

44

Node.jsの探索に少し時間を費やしたDjango開発者からのいくつかのメモ:

  • Node.jsの非同期プログラミングアプローチは、概念的にはより困難です。DjangoやRailsでも同様のアプローチを取ることができますが、そうすることは一般的ではありません。

  • Node.jsは、箱から出してすぐに本当に、本当に高速です。しかし、その理由の一部は、OOBがあまり含まれていないことです。

  • 現在、ノードの世界は非常に細分化されており、数十のノードライブラリ、ソリューション、フレームワークがすべて注目を集めています。Expressは現在Nodeで最も人気のあるフレームワークのようですが、私たちは何が揺れるのかを見るためにちょっと待っています。DjangoとRailsには、すべてを自分で接着することなく、高度なアプリケーションを作成するために必要なすべての要素がすでに備わっています。

  • 現在Node.jsで最も人気のあるフレームワークはExpressですが、Expressにはデータベースに接続する方法すら含まれていません。あなたはそれを追加する必要があります。ORMも含まれていません-それを追加する必要があります。いくつかのノードORMを調べましたが、Djangoほど完全でも洗練されているようにも見えませんでした。

  • Djangoは、すべてのパーツがシームレスに組み合わされる、完全でまとまりのあるエンドツーエンドのソリューションです(「Macの方法」)。Node.jsはベースラインであり、その上で独自のフレームワーク、独自のORM、独自のdbドライバー、独自のURLルーティングシステムなどを選択します(「Unixの方法」)。

  • Unixの方法には利点がありますが、そのようなIMOシステムは、軌道に乗るのがより難しく、保守するのがより困難です。パーツは必ずしも期待どおりに相互に通信するわけではなく、プロジェクト全体が一度にアップグレードされるわけではありません。Macソフトウェア/ハードウェアコンティニュアムやDjango / Railsなどのエンドツーエンドシステムは、生産性にとって大きなメリットです。比較のために、Djangoと比較したPythonのTurboGears(切断されたパーツの束)の相対的なあいまいさに注意してください。DjangoはTurboGearsのランチを食べました。それは、まとまりがあり、一貫しているからです。生産性が重要な場合は、より成熟したフレームワークでより生産的に作業できるようになります。このビジョンを実現するNode.jsフレームワークはいつか到着しますが、まだ存在していません。

  • Expressは、DjangoまたはRailsが提供するさまざまな便利なコマンドラインツールやデータAPIなどを提供していません。

  • Node.jsフレームワークには、Django開発者にとって生産性が大幅に向上するDjango管理者のようなものは確かに含まれていません。

  • 純粋に私の意見ですが、PythonはJavascriptよりもエレガントに感じます。コードはよりコンパクトで読みやすくなっています。大きなハードルではありませんが、好みです。

全体として、Djangoは「バッテリーを含む」プラットフォームのように感じますが、Nodeはガレージセールのように感じます。

Node / Expressは本当に若いです。いくつかの点でエキサイティングであり、大きな期待を示していますが、Node.jsフレームワークが成熟したフレームワークとの競争力を感じるまでにどのくらい時間がかかりますか?知りません。


3
CoffeeScriptで。コードはPythonと同じくらいコンパクトで読みやすい
jwchang 2012年

Expressのメインページにある「Expressは、Node.js用の高速で非ピニオンのミニマリストWebフレームワークです」。

27

仕事の機会という点では、RailsやDjangoを使えば良い仕事ができると思います。Node.jsの開発者はまだ十分な規模ではないため、実際に支払いをしている企業はごくわずかです。

スタートアップの機会に関しては、Railsはずっと。楽しくてエキサイティングなスタートアップの機会のほとんどは、Ruby onRailsによって支えられています。Djangoを使用しているカップルに出くわしました。しかし、GrouponやLiving Socialのような企業はすべて、ほとんどがRailsで書かれています。 RubyはGithubでもPythonのほぼ2倍の人気があります。そして、このQuoraの質問があります:

将来的には、Node.jsがその方法です。HTMLテンプレートはとにかくほぼ完全にJavaScript(jQuery.tmpl)で記述され始めているので、1つの言語であるJavaScriptを習得するだけで済むようにすることで、スキルセットがはるかに強力になります。そして、node.jsは実際にリアルタイムWebアプリに適しています。さらに、元々100%ルビーだったHerokuのようなクラウド展開プラットフォームもNode.jsをサポートし始めています。dotcloudのように、すべての言語でそれを行っている人もいます。

Node.jsをRubyon Railsと同じように完全に機能させるには、まだ多くの作業が必要です(したがって、現時点ではRailsが標準です)が、基本はすべて揃っています。

  • express.js:ウェブフレームワーク
  • jade.js:htmlテンプレートフレームワーク
  • socket.io:リアルタイムのWebアプリ

最先端が必要な場合は、間違いなくNode.jsです。お望みならば

  1. 緩和することを学びます
  2. 構築と反復が容易
  3. 展開が簡単(無料で安価なホスティングソリューションなど)
  4. 人気

Ruby onRails。


5

人気(ポイント4)):Java Server Faces(JSF)テクノロジー。JSF1.2から現在のJSF2.1まで、Java EE5およびJavaEE6とそれぞれ一致するようになりました。これは、JavaEE標準になったことを意味します。また、利点は、完全にJava EE準拠(5以降)のWebアプリケーションサーバー(JBoss AS 5以降、GlassFish、WebSphere AS、Oracle ASなど)がJSFを実行できることを意味します(構成の必要はありません。これでポイントc))が解決されます。

JSFには、CoreServletsなどのさまざまなチュートリアルがあります。BalusCは、単純なJSFWebアプリケーションを最初からセットアップして作成するための単純で優れたチュートリアルを作成しました。


3
私は完全に同意します!最近のJSFは非常に優れています(古いバージョンはそれほど優れていませんでした)。あなたの例に追加します。JSFはJavaEE Webプロファイルの一部でもあるため、Resinのような超軽量サーバーもそのままJSFをサポートします。
マイクブラウン

1
Ps BalusCのブログと記事は絶対に素晴らしいです!:)
マイクブラウン

1

JSF 2.xは最近非常に人気があり、primefacesと組み合わせたUI中心のフレームワークが増えています。レールなどのJSFエコシステムで迅速なアプリケーション開発が必要な場合は、検討する必要があります。

http://www.springfuse.com/

http://www.myeclipseide.com/documentation/quickstarts/ME4STutorialScaffoldingJSF/scaffoldingjsfarticle.html

JSFアドオンを使用したSpringRoo http://java.dzone.com/articles/jsf-20-spring-roo

1)ease to learn (http://www.vogella.com/articles/JavaServerFaces/article.html)

2)ease to build and iterate

3)ease to deploy (like free and cheap hosting solutions) 

   a) http://www.mkyong.com/google-app-engine/google-app-engine-jsf-2-example/
   b) http://blog.jelastic.com/2012/06/11/how-to-deploy-primefaces-applications-into-jelastic-cloud/

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