Ruby の人々は静的メンバーからどのように脱却できると考えていますか? (こちらも: Java 移民のためのヒント)
概要
昨日、私は Freenode の #ruby で Ruby が Java とどう違うのかについて本当のアドバイスを得ていたのですが、そのとき誰かが Ruby には静的メンバーがないことを指摘しました。本当に驚きました。
静的メソッドの使用の代替となるものを誰か教えてください (静的変数は @@ を使用して複製できます) (静的関数のような古い概念を使用するのではなく、プログラムでより良い設計を使用するように誰かが私に言いました。)
PS: Java の経験がある Ruby 学習者に推奨する他のソース/ヒント/リンクはありますか?
現在: 入門 Ruby ページ 36。
解決策
tl;dr の答え: 時間をかけて違いを受け入れてください。最終的には違いが得られるでしょう。
はい、これまで学んだことを忘れて、最初から始めてください。私は 2009 年 1 月から RubyLearning.org で Ruby コースを教えていますが、Ruby に慣れるのに最も苦労しているのは、Java のバックグラウンドしか持たない人たちです。私には Java の経験があまりないので、その理由を正確に言うことはできませんが、この観察はすべての新しいコースに当てはまります。
多くの Java 開発者は、何らかの理由で、Java で物事が行われる唯一の方法/正しい方法であると考えているように思えます。しかし、多くの点で、プログラミング言語は実際の言語に似ています。いくつかは非常に似ており、概念 (および文法) はそれらの間で簡単に変換されます。他の人は大きく異なりますが、それは同じことを表現できないという意味ではありません。 「静的メンバーを使用せずにどうやって回避するのですか」と尋ねるのは、ドイツ語話者が中国人に、文法的なケースを使用せずにどのように回避するかを尋ねるようなもので、これは言語の仕組みにすぎません。一般に、「プログラミング言語 X にはこれがあるが、言語 Y ではどうすればよいか」と言うのは悪い考えですが、Y では一般的にどのように行われるかを調べるようにしてください。
この暴言の後に、さらに実践的なヒントをいくつか紹介します。
書籍に興味がある場合、私は通常、『The Well-Grounded Rubyist』、次に『Eloquent Ruby』と『Ruby Best Practices』をお勧めします。少し前にこれについてブログに書きました:
http://citizen428.net/blog/2011/04/23/ruby-book-recommendations/
私がお勧めするもう 1 つのことは、コードをたくさん書くこと、Ruby Koans に参加すること、カタをプログラミングすること、またはオープンソース プロジェクトに貢献することです。その際、Java プログラムではなく、Ruby の機能が設計に影響を与えるようにしてください。最初は難しいかもしれませんが、一方をもう一方の言語に強制するのではなく、言語間の違いを受け入れることで、人々が本当に短期間で大幅に上達するのを見てきました (私たちのコースは 2 か月です)。プログラミングは問題を考えて解決する手段でもあり、言語は単なるツールです。最初の内容はすでに学習しています。次に、それをさまざまなパラダイムに従って、さまざまな言語に適用してみてください。
1年に1つの新しいプログラミング言語を学ぶのが良いという話を聞いたことがあるかもしれません。時間間隔は特に気にしませんが、新しい言語を学習すると、何らかの形でより優れたプログラマーになれる可能性が非常に高くなります。新しい角度から問題に取り組むことを強いられることが多く、その結果、「問題解決の語彙」が増えるからです。 。