Ruby、Groovy、Jython、Scala (静的ですが、動的言語のルック アンド フィールを備えています) など、動的言語は増加傾向にあり、たくさんあります。私のバックグラウンドは Java SE および EE プログラミングであり、私の知識をこれらの動的言語の 1 つに拡張して、将来によりよく備えることができます。
しかし、どの動的言語を学習に集中する必要がありますか? また、その理由は何ですか? 近い将来、どの言語が優先されるでしょうか?
Ruby、Groovy、Jython、Scala (静的ですが、動的言語のルック アンド フィールを備えています) など、動的言語は増加傾向にあり、たくさんあります。私のバックグラウンドは Java SE および EE プログラミングであり、私の知識をこれらの動的言語の 1 つに拡張して、将来によりよく備えることができます。
しかし、どの動的言語を学習に集中する必要がありますか? また、その理由は何ですか? 近い将来、どの言語が優先されるでしょうか?
Ruby または Python (およびそれほどではないが Scala) を学習することは、Java バージョン、ネイティブ バージョン、または .NET バージョン (IronRuby/IronPython) を使用できる、非常に応用可能なスキルを身に付けることを意味します。Groovy は便利ですが、JVM 固有です。
特定のシナリオを想定しない限り、「将来に備えた準備を整える」ことは困難です。どんなことに取り組みたいですか?動的言語で有効に実装できるプロジェクトはありますか? いくつか試してみて、違いを感じるのに十分小さいですか?
Scala は動的言語ではありません。型推論は、型付けされていないことを意味するものではありません。ただし、OOP と関数型プログラミングをうまく組み合わせた非常に優れた言語です。唯一の問題は、途中で遭遇する落とし穴です。
あなたはすでに経験豊富な Java プログラマーであるため、スキルセットにうまく適合します。さて、完全に動的にしたい場合は、Ruby と Python の両方が素晴らしい言語です。どちらの言語にも需要があります。
個人的にはClojureをお勧めします。Clojure は、私が今まで見たどの言語よりも急速に人気が高まっている素晴らしい新しい言語です。Clojure は、JVM に実装された強力でシンプル、かつ高速な Lisp です。もちろん、Scala と同様に、すべての Java ライブラリにアクセスできます。それについてはすでに本が書かれており、バージョン 1.0 に成熟しており、開発中の 3 つの IDE プラグインがあり、3 つすべてが非常に便利です。
私はScalaを見ていきます。なんで ?
私の (完全に主観的な) 見解では、Scala は、Groovy が 1、2 年前に得たよりも多くの注目を集めているようです。私はここで異議を唱えたり、より良い言語にすることを提案したりしているわけではありませんが、新しい JVM 言語のようです。
余談ですが、いくつかの動的な属性を持つ言語は Microsoft のF#です。私は現在これを見ています(上記のポイント1と2に関する私自身のアドバイスを無視しています!)。.Net 上に構築された、オブジェクトを使用した関数型言語であり、現在多くの注目を集めています。
ゲーム業界では Lua、Adobe ベースのデザイナーなら Lua もいいですし、組み込みプログラマーなら Lua が実質的に唯一の軽量ソリューションですが、Web 開発や一般的なツール スクリプトを検討している場合は Python が適しています。より実用的になる
Groovy は Java のバックグラウンドが豊富なため、比較的簡単に移行できることがわかりました。Groovy は Java のより便利なバージョンのようなものです。そのようなことを行う必要がある場合は、既存の Java コードとも非常にうまく統合されます。
私はパイソンをお勧めします。それには巨大なコミュニティがあり、成熟した実装があります (いくつかの有望なまだ成熟していないものもあります)。私が見た限りでは、Perl は新しい言語と比較して多くの牽引力を失っています。おそらくその「非直感性」が原因です (いいえ、それを始めないでください)。
Python で 1 つまたは 2 つのプロジェクトを完了したら、別のプロジェクトに進んで、より広い視野を獲得してください。2 つの異なる動的言語でいくつかの重要なことを行ったことがあれば、他の言語を吸収するのに何の問題もありません。
あなたのバックグラウンドを念頭に置いて、セマンティクスがあなたが知っているものと似ている言語をお勧めします。したがって、Scala、Fan、Groovy などの言語は出発点として適しています。関数型言語を使用する基本的なセマンティクスを理解したら (そしてそれを愛するようになると)、Ruby のような言語に移行できます。このようにして、ターンアラウンドタイムが短縮されるだけでなく、多言語プログラマーになる方向に進むことができます.
JScript は非常に便利で、確かに動的言語です...