あまりクールじゃないRuby

画像



2年前にRubyに出会ったことを覚えています。 言語は美しく見え、その中のすべてが明確でシンプルであり、余分なものはなく、明白なものはありません。 時間が経ち、スキルが向上し、時代が変わった今、Rubyは以前ほど魅力的ではないように思えました。 なんで? はい、大規模なプロジェクトとRubyは一般に互換性がないためです。 他の言語で実行速度を確認し、泣きたい-このプログラミング言語の方向で具体的に選択が行われたという事実のため。



以下に、Rubyで最も憂鬱な5つのことを示します。 それらはすべて非常に表面的に描かれています。



1)レール



以前は、すべてをRailsで作成できるように思われていました。 速くて自信がある。 コミュニティのサポートを疑わず、一般的に繁栄してください。 ただし、Railsは別のRADテクノロジーであり、右または左に戻ることは禁じられています。 また、一般にNoSQLまたはXMLを使用する場合はどうでしょうか? どうやって? しかし、いずれにせよ、ライブラリの半分を安全に切り取り、スチームバスを使用することさえできませんが、これからRailsが高速に動作しないことを忘れないでください Railsでは柔軟性が得られません。



2)OOP



RubyはOOP言語であると誰かが安全に言うことができますが、そうすれば彼は間違ってしまいます。 結局のところ、どのプログラミング言語でプライベートはプライベートではありませんが、「まあ、それはプライベートになりますが、プライベートになることもできます。」 Ruby 2.0 PrivateとProtectedのリリースがまったく同じになるまで、Protectedについて話すことは何もありません。 なぜこれらすべてを言語に埋め込むのですか? 彼らはJSのように座っていて、スチームバスを浴びることはありませんでしたが、少なくとも何らかの分離があったとしても(明らかではありませんが)。 Rubyの抽象クラスについて聞いたことがありますか? いや? もちろん、彼らはこの家に住んでいないからです。 もちろん、私はRubyのモジュールに反対ではありません。 しかし、このモジュールを追加したすべての場所を追跡しようとしましたか? そして、プロジェクトが大規模な場合はどうなりますか? このモジュールまたはそのモジュールを挿入した場所を正確に見つけることはできません。 もちろん、これのためのテストを書くことはできますが、彼らの正しい考えで誰が包含(包含)のためのテストを書くでしょうか?



3)実行速度



これは一般的に痛い問題です。 他の言語と比べて速度は驚くほど簡単です(JS、GO):通常、配列に数値を入力し、Rubyのすべての要素を合計するのは、Node.jsで0.15、0.056、Goで-0.005です。 そして、これは速度低下の深刻なアプリケーションであるように思えます。 同時に、古いバージョン1.9.3は使用しませんでした。いいえ、すべてがバラ色で美しいはずの新しい2.2.0を使用しました。



4)マルチスレッド



まあ、あなたの言語では速度がありません、小さなリソースの消費はありません。 何がありますか? マルチスレッドが行われたのでしょうか? しかし、いや、ここにはマルチスレッドはありません。いや、そうです。しかし、私の意見では、1つが複数のスレッドよりも速く動作する場合は正しくありません。 もちろん、Rubiniusとそのクールなネイティブスレッドを使用するオプションがありますが、ライブラリの半分をサポートしないことを理解しています。 そして、これは実際にパラグラフ5につながります。



5)クロスプラットフォーム



Rubyは巨大なコミュニティでとてもクールに見えますが、キャッチがあります。 これまでのところ、Windowsでは何も行われていません。 すべてのWebプロジェクトはUnixの下で研ぎ澄まされており、これは少しおかしいです。 私がマイクロソフト製品の大ファンだったわけではありませんが、それでも選択肢が欲しいです。 プログラミング言語が指示するためではなく(Web開発に関して)、チームに私たちにとって便利なものを正確に使用してもらいたい(私たちのチームにはWindowsファンとフロントエンド開発者がおり、プロジェクトを仮想マシンで開始する必要があります)。 結局のところ、node.jsはWindowsで動作し、JavaはWindowsで動作し、大いに称賛されるRubyは動作しません。



したがって、RubyとRubyコミュニティの主な問題をリストアップしました。 私はRubyを役に立たない言語に分類し始めました-PythonやRustと同じくらい役に立たない。 それらが存在する理由はあまり明確ではありませんが、これらが現代の最高の言語であると確信している人々がいる限り、それらは存在し、存在し続けます。



All Articles