質問

私は経験のあるJavaプログラマーで、過去2年間にわたり C#およびJavascriptで必要に応じてプログラムされています。今、この2つの言語で 私はクロージャーや匿名関数などのいくつかの興味深い機能を使用しました(既にポインター関数を使用していたc / c ++で効果的です)。 より明確になり、私のスタイルがより生産的になりました。実際、イベント管理(イベント委任パターン)もJavaで使用されるものよりも明確です...

今、私の意見では、Javaは過去ほど革新的ではないようですが... なぜですか?

C#は進化しています(多くの新機能を備えています)。C++ 0xは進化しています(ラムダ式、クロージャ、多くの新機能をサポートします)。 Javaプログラミングで多くの時間を費やした後、それは良い説明なしに衰退し、JDK 7は言語機能に革新的ではありません(はい、GC、コンパイラなどを最適化します)が、言語自体にイライラしています 重要な進化の変化はほとんどありません。

では、将来はどうなるのでしょうか?どうすればまだJavaを信じることができますか?ゴスリング、どこにいますか?

役に立ちましたか?

解決

コメントを書いたプログラマーの半分ほどではないかもしれませんが、現在のインテリジェンスレベルでは、これが私が思うことです

言語がプログラミングを簡単/表現的/簡潔にするなら、それは良いことではないでしょうか?言語の進化は良いことではありませんか?

C、C ++が何十年も使用されているために優れた言語である場合、なぜJavaがそれほど人気になったのですか?これは、Javaが厄介な問題のいくつかを取り除くのに役立ち、メンテナンスコストを削減したためだと思います。現在、C ++で記述された大規模アプリケーションの数とJavaで記述されたアプリケーションの数はいくつですか?

何かを変更しないという議論が、正当な理由で何かを変更するよりも良いかどうかは疑わしい。

他のヒント

Cは何年もあまり変わっていませんが、それでも最も人気のある言語の1つです。 Javaが関連性を保つために合成糖を追加する必要があるとは思わない。 Javaはまだ長い間ここにいると信じてください。 Javaの場合、ジェネリックを具体化する方がはるかに優れています。

Javaを信じる必要はありません。Javaが別の言語を選択するのが気に入らない場合、たくさんあります。 Javaの存続は、ビジネスへの関心と、ビジネス目標を達成できるかどうかにかかっています。クールかどうかではありません。

あなたは、ほとんどのJavaプログラマーがC#体験への旅行に行く幻滅の古典的な段階を完全に進んでいると思います。 Javaに対する自信を取り戻しました。それは、言語に大きな変化はないものの、Javaがエコシステムとして非常に多く発生しているからです。クロージャと適切なメソッドタイプがあれば大好きですが、とにかく終わりました。言語レベルではそれほど多くは発生しませんが、Javaの純粋な活気はC#よりも優れています。

Java 言語の制限なしにJavaのツールセットプラットフォームが必要な場合は、間違いなく次世代のJVM言語のいくつかを見てください。 。 Groovy、Scala、Clojureは多くの分野で勢いを増しています(たとえば、TwitterはScalaで書かれています)。

少なくとも一部のイノベーションは、同じJVM上で実行される他のスクリプトのような言語に適用されると思います。そして、バックボーンとしてJavaを使用し、さまざまな言語で他のクールな新機能を使用して、ホイッスル。

また、言語が絶えず変化している場合、実際にマークを付けることはできません-CおよびC ++で行われた劇的な変更の数と頻度。

成熟した言語も安定した言語です。

Java 7の提案、特に< href = "http://blogs.oracle.com/darcy/entry/project_coin_call_for_proposals" rel = "nofollow noreferrer">プロジェクトコインの動作(言語の変更)。後者には、コレクションの初期化の改善、ジェネリックの型推論などの機能が組み込まれています。

もちろん、 platform Javaと言語Javaを考慮することが重要です。 Scala / Groovy / Clojureなどの言語でさらなる進歩があり、(もちろん)これらは利用可能なJavaライブラリを活用できます。

この問題に関するゴスリングの話を聞いたことがあります(彼のメッセージをあまりにも壊さないように願っています)。彼は次のように言いました。プログラミングの未来は、使用するツールにあります。

私は彼に同意する傾向がありますが、Javaに要求される多くの機能はOOPの原則からそれを奪いますが、もしそれらがあなたのために働くなら、Javaプラットフォームに展開できる他の言語もあります、したがって、言語設定はJavaスタックの知識と共存できるはずです。

Javaはしばらくの間はまだ存在しているように見えますが、ScalaやClojureなど、JVM上で実行される他の言語には多くの革新がありました。重要なのはJava言語ではなく、仮想マシンです...

これを言ったとしても、動いているターゲットではない言語には多くのことが言われています。私はC#が大好きであるように、毎年新しいバージョンがあるようです。 JavaはC#からいくつかの機能(アノテーションなど)を追加しましたが、「軍拡競争」という言語に組み込まれていないのは良いことです。 C#で

これにより、古いバージョンのJavaでも進行状況を利用できるようになるため、実際の言語はほぼ凍結されるはずです。 Java 1.4(ベンダーからサポートされています)を使用しているお客様がいます。ライブラリに進捗と開発を入れることで、これらのシナリオでも利用できます。

Cobolを考えてください!

Javaは決して「革新的」ではありませんでした。それは、不自由な「プログラマーにやさしい」ものとして始まりました。 C ++のバージョンであり、その後、他のプログラミング言語に長い間存在していた欠落している機能をゆっくりと再導入し始めました。数十年前の「ノベルティ」だけJVMの制限に適合するようにマングルされました。

しかし、「革新的」というあなたの考えを誤解しているかもしれません。

Javaは現時点ではまだ1位の言語です:-)

http://www.tiobe.com/index .php / content / paperinfo / tpci / index.html

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top