パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Red Hat の開発者、Java に影響を受けた新言語「Ceylon」を開発中」記事へのコメント

  • 重要なのはライブラリ (スコア:2, すばらしい洞察)

    by Anonymous Coward
    JavaにしたってC#にしたってPHPにしたって、言語の歴史から言えば新参なのに
    世に受け入れられているのはライブラリが豊富だからです。
    業務では仕様が安定している事も重要ですが、まずは趣味で使ってもらう事を考えると二の次。

    DやらなにやらC/C++の汚さに業を煮やしてオレオレC言語を作ろうとする流れはよくありますが、
    最初からよっぽど豊富なライブラリを備えていない限りは
    既存のライブラリとリンクが出来ないと使う気が起きないわけですね。

    となると最低限既存ライブラリとマングルを合わせる事が必要ですが、それでもまだ使う気が起きないので
    既存ライブラリのヘッダファイルの読み込みもサポートして欲しいわけです。
    そしたら結局既存言語のパーサーを備えなきゃいけないので、
    じゃあ既存言語使えば良いじゃん、というジレンマ。

    と、ここまで書きましたが、過去の不満点を改良した言語には期待しています。
    • by Anonymous Coward

      JVM上で動くのだから過去のライブラリにかんしちゃ問題ないんでないの?

      • by Anonymous Coward

        C++から複雑さを取り除いたことが売りの一つだったはずのJava言語が、
        今やジェネリックスだのアノテーションだのforeachだのを追加して複雑になっていくことへの批判だろ。

        • by Angelica (23122) on 2011年04月15日 13時40分 (#1937217) 日記

          ジェネリックス
          →List等と書けるようになっただけでも十分進化。関係ない変なデータを入れるミスが減る&IDEの推測が洗練されるので、むしろ楽になってる。(toArray()がObject[]を返すのだけはどうにかしろって感じですが)
          アノテーション
          →メタデータをつけられるのは便利。ちゃちゃっとオーバーライド元の関数を調べたり、「過去のモジュール用に仕方なく残してあるんだから新規開発で使うなって言っただろ!」みたいなメソッドにマークをつけられたり。
          foreach
          →ループ変数の書き間違い(2重ループのなかでjにしなきゃいけないのにi使ってたとか)が減るって便利じゃないですか? いちいちint i=0; isize; i++って書くのもめんどくさいですし。

          挙げられた例は当時「ようやく入ったか、何で今まで入れてなかったんだ」って不満に思っていたところなので、そこを複雑さって言われてしまうとちょっと納得しにくいです。

          シンプル=最強ならBrainf*ck最強伝説ですよ。

          親コメント
          • by Anonymous Coward

            > →List等と書けるようになっただけでも
            <>を消されちゃったんですねわかりますん。
            > toArray()がObject[]を返すのだけはどうにかしろ
            toArray(T [])じゃダメなの?

            • <>を消されちゃったんですねわかりますん。

              ご推察の通りですorz 正しくはList<Integer>。そのもう少し下にある「isize」も「i<size」の誤り。
              プレビューで確認する癖をつけないといけませんね。

              toArray(T [])じゃダメなの?

              実際にはそちらを使ってます。ですけど、「IntegerのListだ」って予め教えてあるんですから、何も言わなくてもIntegerの配列を返してくれるのが自然な話じゃないですか。
              多分何か事情があってこうなったんでしょうけど…。

              親コメント
              • by Anonymous Coward

                Map<K,V>::get(Object key)
                が結構きつい
                putはちゃんと
                put(K key, V value)
                なので気付かずにやってしまいがち
                ジェネリクス以前との互換性のためなのだろうか?

              • by Anonymous Coward
                関係ないクラスでもequals()定義すれば取れるように…嘘。
          • by Anonymous Coward
            >ジェネリックス
            型推論がないのが面倒で煩雑で。
            Eclipseならnewだけ先に書いておいて、右クリックからローカル変数作成、でできるけど、
            必ずしも欲しい宣言になるわけじゃないし、何より長ったらしい。

            >アノテーション
            独自アノテーション作って、必要なフィールドにだけつけといて、リフレクションで列挙してくのもたまにやる。

アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家

処理中...