私は現在、Web開発のためにどのサーバーサイド言語を学び、使用するかを決定しようとしています.x、y、またはzが良い理由に関する情報を得るのは比較的簡単ですが、それぞれの欠点を把握するのは難しいですそのうちの。
特に、他の特定の言語/フレームワークとは対照的に、Ruby on Railsの学習や使用にどのような欠点があるのか興味があります。
私は現在、Web開発のためにどのサーバーサイド言語を学び、使用するかを決定しようとしています.x、y、またはzが良い理由に関する情報を得るのは比較的簡単ですが、それぞれの欠点を把握するのは難しいですそのうちの。
特に、他の特定の言語/フレームワークとは対照的に、Ruby on Railsの学習や使用にどのような欠点があるのか興味があります。
回答:
経験から言えば、欠点は、Railsフレームワークに頼りすぎていることです。これは、Railsの「スイートスポット」に完全に該当する、シンプルでグリーンフィールドのCRUDアプリのみを作成する場合に、すばらしい素晴らしいことです。生産性が急上昇します。ただし、そのスイートスポット以外で何かをしなければならない瞬間に、既存のデータベースとやり取りし、JSONまたはXML APIが定義されていない別のアプリケーションと対話し、複雑なワークフローを実装すると、Railsが敵になります。それはRailsでこれらのことを行うことは可能ですが、それは「穀物に反する」ので、コミュニティは通常、「それをしないでください、Railsではありません方法」-基本的にRailsフレームワークをハックする必要があるため、生産性が低下するか、コードが非常に乱雑になります。
また、暗黙のマイナス面もあります。他のすべてはくて気味悪いように見えます。Railsの甘くて甘いネクターを味わったら(ここで少し伝道してください...)他のすべては意志です。RailsからPHP、ASP.NET WebForms、またはJavaに戻ることは、緑豊かな庭で戯れた後、爪のベッドの上を歩くようなものです。他の言語/フレームワークを同じ観点から見ることはできませんが、まだ感謝しているかもしれませんが、Railsの愛情のこもった抱擁をひそかに望みます。
最初のサーバー側言語については、RoRにいくつかの問題があると感じています。
あなたは言語を学んでいるだけでなく、フレームワークを学んでいます。レールに飛び込む前に、普通の古いルビーをいじるのに時間をかけることは間違いありません。
それはフレームワークであり、その点で「意見のある」ものであるため、フレームワークで行われていることの非常に限られた範囲しか与えられないと感じています。
全体的なRuby on Railsは、ボールを転がすための良い出発点になる可能性がありますが、単一のフレームワークに依存しすぎて見逃す可能性のあるWeb開発について学ぶべきことがたくさんあります。
私はRoRを何度も学ぼうとしましたが、私の最大の問題は常にパッケージとドキュメントを正しく動作させることです。ドキュメントの問題は、常に古い(または非常に基本的な)ように見えることです。私はサイトから基本を手に入れましたが、それを超えてすべてがとても時代遅れに見えました(私が買って戻ってきた本でさえ)。欠点になる可能性のある別のことは、Ben Coeが述べているように、一部のライブラリが持つ依存関係と、それらが他のライブラリと競合する可能性があることです。
後で考えて、コメントにする代わりに、答えを編集するだけです。RoRはRubyを台無しにする可能性があります。試したとき、「Rubyはバカだった」と思うようになりました。それから数ヶ月後、私はRubyを試してみることにし、言語を愛することに決めました。それが言語を嫌うようになったフレームワークでした。私はあまり手を出していないが、私がしたとき、私は本当にシナトラを楽しんだ。ほとんどの人がシナトラからRoRから抜け出すことができたと思う。
rake db:migrate
。一方、シナトラははるかにシンプルでわかりやすいことがわかりました。とにかく、私は自分のやり方で物事を設定することを好み、Railsアプリの基本構造は私にはあまりにも複雑に思えました。
これが最初のサーバーサイド言語である場合、それは他の言語と同様に優れています。行うべきことは、1つに焦点を合わせ、それをマスターしたと感じた後、他の人を探索し、あなた自身の結論を導き出します。
私は日常的にRoRとASP.NETを使用していますが、奇妙なことに、ASP.NETの世界を好みますが、それは言語やアーキテクチャそのものよりも個人的な哲学に関係しています。(私は少しコントロールマニアで、個人的に強く型付けされた言語に引き寄せられています)。
とにかく、試してみてください。RoRは作業に最適な環境ですが、Railsに飛び込む前に、Rubyを言語として使いこなしてください。* nixボックスを管理する必要が生じた場合、RubyはWeb以外にもかなりクールなスクリプト言語であり、時間を節約できます。
Railsを最近(趣味として-商用グレードの開発に使用したことはありません)学び、すでにJEEとASP.NETで働いていた誰かとして、Wayne Mの答えは非常に真実でした。
とにかく、これには微妙な側面がありますが、まだ誰も言及していませんが、Railsに少し悩みました- 構成よりも慣習に強く依存しています。
基本的に、新しいコードベースで「ファイルを検索する」主導のオリエンテーションに慣れている場合、CoCはRailsを拾おうとするとあなたを困らせる可能性があります。Railsの方法で正確に行われる単純なCRUDグリーンフィールドには適していますが(Wayne Mが言うように)、よりユニークで複雑なものには、ファイルに詰め込み、配管がどのように接続されているかを確認します。
私が思うに、この問題はおそらくRailsでより多くの経験を積んでしまえばそれほど悪くはないでしょう。非常に冗長な構成フローに慣れているoldskool Java / .NET Web開発から来た人にとっては問題であることは間違いなくわかります。
私にとって、最初のX(あなたの場合、Xはサーバー側のWeb言語/フレームワークです)を学ぶ最大の問題は、他の問題を見つけたらすぐに、すぐにXの適用を開始したいということです最良の選択肢ではないかもしれません。私はこれで良くなりましたが、それでもまだ強い傾向です。
まずはRuby on Railsが適しています。優れたコミュニティ、豊富なドキュメント、優れたチュートリアルがあります。しかし、特により多くのWeb開発を開始する場合は、代替案を念頭に置いてください。RoRは、一部の問題では過剰であり、他の問題では不十分なソリューションであり、別のセットでは最適な選択肢です。長所、短所、およびツールの使用方法を理解してください。
私のアドバイスは、あなたが完了したいプロジェクトの明確な画像を持ち、それからそれを構築しようとすることです。問題が発生すると、最終的にすべての適切なツールを取得します。このアプローチは、簡潔な問題に基づいて意思決定を行うため、優れています。
もう1つやることは、本を買うことです。インターネットのチュートリアルは、私の経験ではそれをカットしません。また、注意散漫のために多くのスペースを空けています。あなたが本を持っているとき、出版社はそれが悪いレビューを受けるとお金を失うので、それが価値を提供することを確認しなければなりません。少しのお金を使うと、多くの時間を節約できます。
私は、Ruby-on-Railsの庭を散歩することについて詩的にワックスをかける人を正直に理解できません。経験豊富なASP.NET-MVC、Java、PHP、Python開発者としてやって来て、これまでで最も恐ろしい時間の浪費者であることがわかりました!オンラインgoogle-answersの90%が間違っているか不完全です。どうして?毎年それは大きく変わっていますか?それとも、コードを実際に機能させることを誰も気にしないということですか?単純なことをするのに膨大な時間がかかりました。たとえば、C#/ ASP.NET-MVCを使用するよりもはるかに多くのことができます。私のオリジナルの技術を習得するのに、それほど長い時間はかかりませんでした。確かに、RORは簡潔です。それがあなたにとって重要な場合。しかし、タスクを達成するコードを作成する方法がめったに明確ではないことがわかりました。個人的には、間違いなく機能するコードを書くために20秒間キーボードを入力したいです。簡潔なRubyコードを2秒間入力するのではなく、あなたはそれに従うことができますが、実際に動作させる方法を探して一晩中起きない限り機能しません。それは恐ろしく、悪臭を放つドードーの山です。どうして?(無料のように)オープンソースのコードは、それを高品質のツールにするインセンティブを生み出しませんか?修正やモジュールを送り込むスクリプトキディが多すぎて、そこに悪いドキュメントがありますか?知りません。しかし、その最初のRuby-Railsプロジェクトからようやく脱出できたとき、その混乱に二度と足を踏み入れることはないと誓いました!質の高いツールにするためのインセンティブはありませんか?修正やモジュールを送り込むスクリプトキディが多すぎて、そこに悪いドキュメントがありますか?知りません。しかし、その最初のRuby-Railsプロジェクトからようやく脱出できたとき、その混乱に二度と足を踏み入れることはないと誓いました!質の高いツールにするためのインセンティブはありませんか?修正やモジュールを送り込むスクリプトキディが多すぎて、そこに悪いドキュメントがありますか?知りません。しかし、その最初のRuby-Railsプロジェクトからようやく脱出できたとき、その混乱に二度と足を踏み入れることはないと誓いました!
さまざまな言語/スクリプトの威力を評価するインデックスをご覧になることをお勧めします。役に立つと思われるリンクを次に示します。人気のあるプロが使用するWeb関連言語。
これは、オンライン求人の検索に基づいたウェブ関連言語の相対的な人気を示しています。
RoRに関する上記の回答のいくつかに同意します。過去2年間RoRを使用してアプリケーションを開発してきました。シンプルなアプリケーションでは非常に優れており、CRUD(作成、読み取り、更新、削除)操作は非常にうまく機能します。シンプルなアプリケーションの開発には恩恵がありますが、その限界でもあります。多くの宝石にはさまざまな利点と使いやすさがありますが、基本的にはそうです。箱から出して行くと、アプリケーションがすべてねじれます。
RoRを使用してアプリケーションで作業している大規模なチームの場合、作業の委任を逃すのは困難です。