RubyでC#4.0よりも大幅に少ない作業が必要なタスクはありますか?


8

私は「7言語で7週間」という本のRubyの章を読み終えたところです。あちこちに構文上の砂糖があることを除けば、C#で同様の構文を使用して実行できないことは本当にありません。私は両方の言語が本質的に異なることを理解していますが、私の質問はデザインではなくその使用法に関係しています。

関連する質問から、RubyはC#にすぎないことがわかります。

私はRubyをほとんど使用していませんが、言語の理解はまだ非常に限られているため、.NET 4.0とRubyの両方で実験した人が具体的な例で答えることができるでしょう。

RubyではC#4.0よりも大幅に少ない作業で済みますか?

Ps:この質問はStackOverflowで主観的で議論の余地があるとしてクローズされましたが、注目を集めました。ここにマージされることを望んでいましたが、代わりに再投稿する必要があります。


1
コンパイルはその1つでしょうか?
Andrew Grimm

C#はRubyよりも高速でコミュニティが大きいと思うので、この質問に興味があります。
Andrew Grimm

回答:


7

Rubyには、正規表現のリテラルと、文字列の作成/補間のための便利な構文ショートカットがたくさんあります。したがって、タスクが主に一致するビットと文字列の部分の混合に関連している場合、Rubyは必要な作業が大幅に少なくなる可能性があります(ただし、短いヘルパースクリプト以外では、これは非常にまれな状況であることがわかりました)。

より適切なのは、Rubyのメタプログラミング機能です。すなわち#eval#define_methodと合わせ、友人、open classes#includeそして#extendおそらく非常に大きな金額-あなたはそのコードジェネレータ/ウィザードがあなたと同じ利点のいくつかを与えるが、あなたが生きている、と主張することができます-あなたは、実行時に定型コードのトンを作成することができます-生成されたボイラープレートコードのうち、読んで理解しなければならない比較的少量のメタプログラミングコードと比較します。

これの典型的な使用例は、アプリケーションの外部のある種の動的データプロバイダーとインターフェイスする必要がある場合です。Rails ActiveRecordはその良い例です。

将来的には、UI要素のID、タイプ、入力値などに基づいて実行時にメソッドを作成することにより、ユーザーインターフェイス要素からイベントを処理するメソッドを生成できるため、これはGUIの開発に非常に有益になる可能性があります(ステロイドのObjective-Cなど) MacRubyが成熟すると、この力の一部が見られます)。

この機能の有効利用と恐ろしい乱用の境界線は非常に薄く、私の経験から、大規模なRuby(on Rails)プロジェクトで頭痛の主な原因になる傾向があります。だからジンからそれをボトルから解放することにするときは注意してください:)


いい答えだ!より簡単な文字列操作は理にかなっており、Ruby on Railsは私が推測するWebフレームワークです。メタプログラミングを一度比較して、特定の目標をC#よりもRubyで簡単に達成できるかどうかを確認する必要があります。興味深い具体的な(大きすぎない)例があったら、それはいいでしょう。; p
スティーブンジュリス

前述のとおり、ActiveRecordライブラリ/フレームワークは具体的な例です。
アレクサンダーバティスティ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.