アカウント名:
パスワード:
JVM上で動くのだから過去のライブラリにかんしちゃ問題ないんでないの?
C++から複雑さを取り除いたことが売りの一つだったはずのJava言語が、今やジェネリックスだのアノテーションだのforeachだのを追加して複雑になっていくことへの批判だろ。
ジェネリックス→List等と書けるようになっただけでも十分進化。関係ない変なデータを入れるミスが減る&IDEの推測が洗練されるので、むしろ楽になってる。(toArray()がObject[]を返すのだけはどうにかしろって感じですが)アノテーション→メタデータをつけられるのは便利。ちゃちゃっとオーバーライド元の関数を調べたり、「過去のモジュール用に仕方なく残してあるんだから新規開発で使うなって言っただろ!」みたいなメソッドにマークをつけられたり。foreach→ループ変数の書き間違い(2重ループのなかでjにしなきゃいけないのにi使ってたとか)が減るって便利じゃないですか? いちいちint i=0; isize; i++って書くのもめんどくさいですし。
挙げられた例は当時「ようやく入ったか、何で今まで入れてなかったんだ」って不満に思っていたところなので、そこを複雑さって言われてしまうとちょっと納得しにくいです。
シンプル=最強ならBrainf*ck最強伝説ですよ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
※ただしPHPを除く -- あるAdmin
重要なのはライブラリ (スコア:2, すばらしい洞察)
世に受け入れられているのはライブラリが豊富だからです。
業務では仕様が安定している事も重要ですが、まずは趣味で使ってもらう事を考えると二の次。
DやらなにやらC/C++の汚さに業を煮やしてオレオレC言語を作ろうとする流れはよくありますが、
最初からよっぽど豊富なライブラリを備えていない限りは
既存のライブラリとリンクが出来ないと使う気が起きないわけですね。
となると最低限既存ライブラリとマングルを合わせる事が必要ですが、それでもまだ使う気が起きないので
既存ライブラリのヘッダファイルの読み込みもサポートして欲しいわけです。
そしたら結局既存言語のパーサーを備えなきゃいけないので、
じゃあ既存言語使えば良いじゃん、というジレンマ。
と、ここまで書きましたが、過去の不満点を改良した言語には期待しています。
Re: (スコア:0)
JVM上で動くのだから過去のライブラリにかんしちゃ問題ないんでないの?
Re: (スコア:0)
C++から複雑さを取り除いたことが売りの一つだったはずのJava言語が、
今やジェネリックスだのアノテーションだのforeachだのを追加して複雑になっていくことへの批判だろ。
Re: (スコア:2, 参考になる)
ジェネリックス
→List等と書けるようになっただけでも十分進化。関係ない変なデータを入れるミスが減る&IDEの推測が洗練されるので、むしろ楽になってる。(toArray()がObject[]を返すのだけはどうにかしろって感じですが)
アノテーション
→メタデータをつけられるのは便利。ちゃちゃっとオーバーライド元の関数を調べたり、「過去のモジュール用に仕方なく残してあるんだから新規開発で使うなって言っただろ!」みたいなメソッドにマークをつけられたり。
foreach
→ループ変数の書き間違い(2重ループのなかでjにしなきゃいけないのにi使ってたとか)が減るって便利じゃないですか? いちいちint i=0; isize; i++って書くのもめんどくさいですし。
挙げられた例は当時「ようやく入ったか、何で今まで入れてなかったんだ」って不満に思っていたところなので、そこを複雑さって言われてしまうとちょっと納得しにくいです。
シンプル=最強ならBrainf*ck最強伝説ですよ。
Re:重要なのはライブラリ (スコア:0)
型推論がないのが面倒で煩雑で。
Eclipseならnewだけ先に書いておいて、右クリックからローカル変数作成、でできるけど、
必ずしも欲しい宣言になるわけじゃないし、何より長ったらしい。
>アノテーション
独自アノテーション作って、必要なフィールドにだけつけといて、リフレクションで列挙してくのもたまにやる。