2012-03-14 7 views
2

私は主流のJavaプログラマですが、最近、私は小さなトークに興味を持ってきました。私は、言語がプログラマーに与える巨大な力によって私が完全に吹き飛ばされたことを認めなければなりません。私はダイナミックなタイピングを大きなプラス(個人的に)と感じています。ブロッククロージャがJavaで除外されたのはなぜですか?

私は、javaがプログラマの力の大部分(ポインタの使用法など)を取り除くエンタープライズの現実に適していることを理解しているので、2つの言語を比較したくありません。間違い。合意したしかし、なぜブロック/クロージャのコンセプトが でなくなったのか理解できません。 は言語に含まれていませんか?私は本当にそれらを非常に便利だと思うので、静的な型であるにもかかわらず、そのような強力な機能がJavaに結婚できない理由は見当たりません。これには特別な理由はありますか?

+3

機能は、一般的に*言語から削除されていません。*は含まれていません。これは大きな違いです。ラムダ式はうまくいけばJava 8になります... –

答えて

3

AFAIKは、Javaがこの機能を持たない言語に基づいているため、含まれていませんでした。代わりに、Javaには同じことが達成されるが、比較的醜い方法で実現する代替手段がある。

うまくいけば、それを嫌う人々を止めるためだけにJava 8に含まれることを望みます。 ;)

私は

はあなたが閉鎖して行うことができる何かの現実的な例を考えることができ、このような強力な機能は、Javaに結婚できない理由が表示されない

、あなたがすることができます」すでにJavaには関係ありませんか?主な違いは、生産性と可読性です。これらは非常に重要ですが、そうでないことはできません。

+2

これは良い議論ではありません。 Javaでできることはすべて機械コードで実行できますが、そうする必要はありません。生産性と可読性は重要な*唯一のものです。それはプログラミング言語*です。 http://c2.com/cgi/wiki?ProgrammingLanguagesAreSyntacticSugar –

+1

を参照してください。それは、すべての言語のすべての可能な機能を追加するという意味ではありません。これをやろうとするほとんどの言語は、より単純な言語に置き換えられなくなります。機能の貧弱な側のJavaエラーですが、少なくともあなたはそれらをすべて理解する良いチャンスがあります。クロージャはクールですが、他の言語がしばらくサポートしているにもかかわらず、Java 8の設計に関してはまだ合意がありません。つまり、アイデアはあなたが期待するほど成熟していません。 –

関連する問題