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

IEEE Spectrumのプログラミング言語ランキング、総合1位はJava」記事へのコメント

  • 捨てるために読めないとダメとかそんな感じじゃないのか

    • by baldmage (45440) on 2014年07月11日 14時56分 (#2637492) 日記

      宗教上の理由でM$(笑)起源のC#を使えない人たちに人気ですよ

      親コメント
      • C#はラムダ式をvarで格納できないという素晴らしい個性がありますね。

        C#もjavaのこと言えない位に行き当りな機能追加で言語仕様はアレだろう。第一級関数が普通の言語と比べると古臭いのはjavaと変わらない。
        unix系でjavaを置き換えるのは多分Go言語、言語仕様がシンプルで速度も出て安全性も高い。

        親コメント
        • by Anonymous Coward on 2014年07月12日 14時34分 (#2638100)
          > C#はラムダ式をvarで格納できないという素晴らしい個性がありますね。

          その理由わかっていってる?
          これなら一応できるけど。

          var y = new Func<int>(() => 1);
          親コメント
          • そのvarが推論しているのはラムダ式ではなくてFunc<int>
            だから。

            var mul=new Func<int,int,int>((int x,int y)=>{return x*y;});

            引数を持つラムダ式の場合、引数の指定が冗長になる。
            そもそも普通はこうかくだろう。

            Func<int,int,int> mul=(int n,int y)=>{return n*y;};

            親コメント
            • by Anonymous Coward
              > 引数の指定が冗長になる。
              と言いながら直ってないね。
              (ひょっとして引数の型指定をしないけないから冗長になるって言ってる?)

              それでもあなたはわかっているのだろうとは思うけど、型の推論が関数型言語ほどでないという弱さはある。
              このコードで冗長なのはFuncで型を知らせないといけないところ。

              でも Haskellだって型クラス制約つけるし、そんなにダメとは思わないんだよな。

              とりあえず、

              var mul=new Func<int,int,int>((x, y)=>{return x*y;});

              Func<int,int,int> mul=(n, y)=>{return n*y;};

              だね。引数に型名はつけなくていい。
              Funcの型指定があるからその程度の型推論ならできてる。無印の.NET 3.5から可能。

              あと「普通」は君の主観でしかない。変数名の先頭をそろえたいという好みの人もいる。
              • by Anonymous Coward
                ついでにだけど 1行なら returnもいらない。

                Func<int,int,int> mul = (n, y) => n*y;

                # さすがにこの指摘は細かすぎるかもしれない、すいません。
        • by Anonymous Coward

          Lispみたいな変態言語にしかなかった第一級関数も「普通の言語」の機能になったのか。

      • by Anonymous Coward

        そうすると宗教上の理由でボラクル(笑)が管理するJavaを使えない人たちは…

        • by Anonymous Coward

          管理≠起源

          太陽教徒は捕囚になっても信仰を捨てたりしません。
          C# が ISOで規格化されても起源をとわれるのと同じです!!

      • by Anonymous Coward

        C#よりはJavaの方がいいなあ。
        仕事でどちらが適しているという意味でなくて言語の好みだけど。

        • by Anonymous Coward on 2014年07月11日 22時35分 (#2637821)

          好みならしゃーないけど、言語の優劣でいったらJavaなんてC#の足下にも及ばないどころか他のJVM言語の方が圧倒的に優れてるじゃん

          親コメント
        • by Anonymous Coward

          どの辺です?
          ツッコミとかしないので(俺は)、率直なところを聞きたい。

        • by Anonymous Coward

          純粋に好みだけで判断してJavaの方が好きとは珍しい
          両方扱える人にとって需要から考えると圧倒的にJavaだけど個人の好みだとC♯って人の方が今は多いと思ってる

          • by Anonymous Coward

            文法はC#で、ライブラリはJavaが好き。・・・だった。Java5以前は。

        • by Anonymous Coward
          個人的にはC#だなぁ。

          Javaはほぼclass単位でビルドできるのでUnitTestは速いなーとは思うけど(.NETはバックグラウンドコンパイルあるとはいえアセンブリ単位だとビルド時間かかるからやりにくい)、それくらいかなー。

          Javaがそのものよりは、新しいものを取り入れる時の無理やり感が半端無くなって来てて。それが過去の負債からくるものってところがね(当時はそれが良い選択だったんだろうけど今は足枷に)。
          Genericsもコンパイル時だけにせざるを得ないとか、ラムダ式は来たけどクロージャないので使いにくそうとか・・・。
      • by Anonymous Coward

        C++ユーザー「演算子オーバーロードはないの?」
        Java信者「あんなのはシンタクスシュガー。不要だし危険だからいらない。」
        C#ユーザー「プロパティはないの?」
        Java信者「ただのシンタクスシュガー。プロパティは甘え。」
        C++ユーザー「テンプレート」
        C#ユーザー「ジェネリクス」
        Java信者「うっせーバーカ」

        あれ? なんかマカーに似てるな。

        • by Anonymous Coward

          おじいちゃんたら、ジェネリクスはもう10年近く前になるJava SE5で導入されたでしょ!
          今はラムダ式だってあるのよ。もうすっかりボケちゃって。

          • by Anonymous Coward

            他から指摘された欠点を頑なに認めず、後出しで劣化バージョンを導入されたら
            嬉々として自慢するJava信者乙

            • by Anonymous Coward

              やめろそれ以上C#やPHPの悪口は止めるんだ!

          • by Anonymous Coward

            LambdaはいいけどStreamが糞すぎて。

アレゲは一日にしてならず -- アレゲ見習い

処理中...