8

これは歴史的な質問であり、言語間の比較に関する質問ではありません。

2005 年のこの記事では、Python の中心となる単一のフレームワークがないことについて説明しています。Ruby の場合、このフレームワークは明らかに Rails です。歴史的に言えば、これが Python ではなく Ruby で起こったのはなぜですか? (または、そのフレームワークは Django ですか?)

また、仮説的な質問: Python に 1 つの優れたフレームワークがあれば、Python の人気が高まるでしょうか? 中心的なフレームワークがなければ、Ruby の人気は低下するでしょうか?

[Ruby と Python のどちらが優れているかについての議論は避けてください。これは自由すぎるため、回答できません。]

編集:これは明らかだと思いましたが、Ruby 用の他のフレームワークが存在しないと言っているのではなく、人気の点で大きなものは Rails です。また、Python のフレームワークが Rails ほど優れていない (またはそれよりも優れている) と言っているわけではないことに注意してください。すべてのフレームワークには長所と短所がありますが、Ben Blank が以下のコメントの 1 つで述べているように、Rails は人気の点で Ruby を上回っているようです。Python 側での例はありません。なぜ?それが問題です。

4

11 に答える 11

35

私が見ているように、Rails は Ruby を地図に載せました。単純な事実として、Rails が登場する前は、Ruby はマイナーな難解な言語であり、ほとんど採用されていませんでした。Ruby の成功は Rails のおかげです。そのため、Rails は Ruby エコシステムの中心的な位置を占めています。Slim が指摘するように、他の Web フレームワークもありますが、Rails を追い抜いてリーダーになるのは非常に難しいでしょう。

一方、Python の採用曲線は非常に異なっていました。Rails が登場する前は、Python が Ruby よりもはるかに広く使用されていたため、多くの競合する Web フレームワークがあり、それぞれがゆっくりと構成要素を構築していました。Django は、サポートを統合し、Python Web フレームワークの世界のリーダーになるという良い仕事をしてきましたが、コミュニティが開発した方法だけでは、Django が唯一の真のフレームワークになることは決してありません。

于 2009-01-02T15:03:40.680 に答える
7

Rails を「単一の」「中心的な」Ruby フレームワークと見なすのは正しくないと思います。

Ruby 用の他のフレームワークには、Merb、Camping、および Ramaze があります。

...これは質問を無効にします。

于 2009-01-02T14:33:24.580 に答える
7

本当の技術的な答えは、Python での Web 開発には 3 つの主要なアプローチがあるということです。1 つは CGI ベースで、CGI または FastCGI を介して実行される古い 1 回限りの Perl アプリケーションのようにアプリケーションが構築されます (例: Trac )。それから、Zopeがあります。これは、独自の DB コンセプトを備えた奇妙で過剰に設計されたフレームワークであり、奇妙で見当違いの Web 経由のソフトウェア開発コンセプトなどです (ただし、Ploneは依然として非常に人気があります)。そして、Django (およびTurbogearsなど) があります。これは、Rails と同じ「必要なツールのみ」という哲学によって導かれています (誰が最初に到達したか、または誰がよりうまくやったかは議論の余地があります)。多くの人はおそらく、Django/Rails/ CakePHPがアプローチは古いアプローチよりも優れていますが、古い言語である Python には、まだ進化して関連性を維持しようとしているレガシー フレームワークがたくさんあります。これらのフレームワークは、開発者の賛同がすでに得られているため、存続します。例えば、後から考えると、おそらく多くの人が Zope (特に ZODB) はひどい間違いだったと言うでしょうが、Zope 3 は Zope 2 よりもはるかに優れており、Zope テクノロジを中心に構築された企業全体が既に存在します。

于 2009-01-02T22:08:20.120 に答える
5

私はネッドに同意します。Ruby のインストールの 90% 以上は、Rails の実行以外の目的ではないと思います。Rails が Ruby を支配 - Python を支配する単一のアプリケーションはありません。これは主に、Python コミュニティが Ruby コミュニティよりもやや大きいためです。

于 2009-01-02T16:07:34.140 に答える
5

Rails は、その極端な「設定より規約」のアプローチがやや革新的であり、他のほとんどのものとは一線を画し、Ruby の「キラー アプリ」となり、多くの人が最初に Ruby に注目するようになりました。

ですから、問題は本当に「David Hansson が Python ではなく Ruby で Rails を書くことにしたのはなぜですか?」ということです。

于 2009-01-02T14:39:57.670 に答える
5

Ruby は、Rails が作成されるずっと前から存在していたことを思い出してください。ウィキペディアによると、Ruby は 90 年代半ばに作成されました。Rails は 2004 年まで登場しませんでした。Ruby は、David Hansson が Rails に使用するために選択した言語です。

そうです、Python が Django に対してあるように、Ruby は Rails に対してあると言えます。

于 2009-01-02T14:43:19.893 に答える
2

Django は基本的に「Rails for Python」に相当するものであることに同意する必要があります。なぜそんなに時間がかかったのですか?簡単な答えは、選択肢が多すぎることです。

Python には、多数の異なる構成で Web スタックを構築できる、多くの要求/応答システム、URL リライター、ORM、テンプレート言語などがあります。実際、これはまさに Pylons と TurboGears が行っていることであり、MVC Web アプリを構築するための信頼性の高い予測可能なスタックを提供しています。

Django が他と異なっていたのは、すべてをカプセル化したことです。コンポーネント ルートに進むのではなく、1 つの連続したシステムを構築しました。彼らは独自の ORM、独自のテンプレート言語、独自のミドルウェア システムなどを構築しました。彼らの理由は、Python にはこのような統一されたシステムがなかったからです。

于 2009-01-03T07:33:13.180 に答える
2

Rails がなければ Ruby の人気は落ちるでしょうか? 絶対。

Python は、1 つの真のフレームワークでより普及するでしょうか? 複数ではなくということですか?かもしれません、誰が知っていますか。いずれにせよ、Django が非常に優れたフレームワークであることにほとんどの人が同意します。

なぜ、歴史的に、Ruby に起こったのでしょうか? DHH が独自の調査を行った結果、Ruby を選択したためです。

Rails が画期的な成果を上げたのは「構成よりも規約」が理由であるという回答に加えて、もう 1 つの理由があります。それは、Rails が Ruby のメタプログラミング機能を見事に使用しているからです。Rails の魔法の多くは、Web アプリ開発の多くの苦痛を取り除くことに貢献しており、この Ruby メタプログラミングの巧妙な使用によってもたらされました。

于 2009-01-02T17:51:17.520 に答える
1

Python はワントリック ポニーではありません。したがって、単一の「中心的なフレームワーク」はありません。多くの人は、Python を「もう 1 つの優れた OO 言語」として、または Python のさまざまな用途の 1 つとして初めて耳にしました。

公平を期すために言うと、Ruby もワントリック ポニーではありません。多くの人が Rails を、これまであまり知られていない言語に目を向けさせた「キラー アプリ」とみなしただけです。多くの人は Rails の前に Ruby について聞いたことがないのではないかと思いますが、Ruby ができることはそれだけではありません。

于 2009-01-02T15:02:40.200 に答える
0

ニュースをフォローしていれば、Merb と Rails が合併するということを読んだことでしょう。これは良い動きです。それは、開発者が持っている共通の目標のためだと思います: 彼らは、ほとんどのタスクに適合する OR マッパー、ルーティング、テンプレート言語などを備えた webdev 用のシンプルなフレームワークを望んでいます..

于 2009-01-05T12:19:03.087 に答える
0

Python-on-Rails が表示されない理由については、この記事をご覧ください。著者は、Python が中心的なフレームワークを持たなかった、そしてこれからも持てない基本的な理由をいくつか挙げています。私自身、Java にもそれがなく、同じ理由であると付け加えるかもしれません。

著者によると、Rails はその「実装」である Ruby に厳密に結び付けられています。Rails は多くの開発者に採用され、Ruby はその一部に過ぎませんでした。Rails は Ruby (または Groovy のような Ruby 志望者) で完全に動作しますが、さらに重要なことは、他の多くの回答が言うように、Rails が Ruby の採用への道を切り開いたことです。

これが、Rails-for-Python が機能しない理由です。あるいは、少なくとも、人々が Rails で注目してきたことが正しくないのです。フレームワークの実装や品質についてではなく、採用のパターンについてです。それは、フレームワークを前に置き、実装を後ろに置くことです-これがRails開発者の意図ではなかったとしても(彼らは賢いかもしれませんし、これが彼らの意図でした)。

基本的に、単一のフレームワークの周りにたくさんの言語を愛する人々を集めることはできません。Java 側では、Spring は広く愛されていますが、Java コミュニティーでの人気という点では Rails ではありません。成熟したコミュニティでは、開発者はフレームワークでどのメタファーが機能し、機能しないかについて独自の考えを持っています。これが、Rails が Ruby につながる理由であり、その逆ではありません (通常、すべての場合ではありません)。

于 2010-05-19T10:09:31.670 に答える