アカウント名:
パスワード:
なんでこんな気持ち悪い事ができてしまうのよw
こういう偏見は一生治らんだろうな。
この手のは、C++のtemplateでやり尽されていて、あまり好ましくないと結論出来ているかと。
#<# とか !=! とかオーバーロード専用の演算子が欲しいなぁstream にも << じゃなくて <= とかで出すようにしたほうが…
JavaScriptをはじめ、後追い言語でもジェネリックプログラミング [wikipedia.org]は大体できるようになってるので、その結論は間違ってるとしか言いようがないですね。
Rust [wikipedia.org]みたいな、2010年代の言語でもありますし。https://doc.rust-lang.org/book/second-edition/ch10-01-syntax.html [rust-lang.org]
>この手のは、C++のtemplateでやり尽されていて、あまり好ましくないと結論出来ているかと。の、「あまり好ましくない」ってのは、templateを使うと、一見かっこいい(その人の主観で)syntax sugarまがいを自作できるんだけど、好ましくないって主旨です。
>>JavaScriptをはじめ、後追い言語でもジェネリックプログラミング [wikipedia.org]は大体できるようになってるので、その結論は間違ってるとしか言いようがないですね。
だから、genericsそのものの有用性の話じゃないんですよね。人類が扱うにはtemplateが強力すぎたからgenericsに弱められたというか。その辺の歴史を勉強してみて。1999~2004ぐらいの、c++0xのtemplate使ったスマートポインタどうするの議論のころだったと思う。
C♯がわざわざテンプレート抜きで作ったのに、結局現場の要望に応えて入れざるを得なくなった、ってのが正確な歴史。こういう思想家はどこでも一定数いるけど、現実を知らない。
C#って、演算子のオーバーロードができて、ジェネリックプログラミング上等、な設計だと思ったけど。もしかして途中のバージョンで追加された機能なのかな、あれ?
ゲームなんかを作ってて、
double speed;Point p;Vector v;
みたいな感じで座標やらベクトルやらを操作しようとすると、Javaだと、
p = p.add(v.multiply(speed));
みたいにしなきゃならないところを、C#だと
p += v * speed;
で済んで、とても綺麗だったり。
何だって読み辛く書けば読み辛いコードになるってだけの話なのに、便利な道具を何でも敵視する人がいて困る。ラムダ式禁止令の話とか聞くとゾッとする。
こういうのは便利のうちに入らないんだよ
諸刃の剣とか利益相反と表現してはいかがでしょうか
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日々是ハック也 -- あるハードコアバイナリアン
この辺がJavaScriptの嫌いなところ (スコア:0, すばらしい洞察)
なんでこんな気持ち悪い事ができてしまうのよw
Re: (スコア:0)
こういう偏見は一生治らんだろうな。
Re:この辺がJavaScriptの嫌いなところ (スコア:0)
この手のは、C++のtemplateでやり尽されていて、あまり好ましくないと結論出来ているかと。
Re:この辺がJavaScriptの嫌いなところ (スコア:2)
#<# とか !=! とかオーバーロード専用の演算子が欲しいなぁ
stream にも << じゃなくて <= とかで出すようにしたほうが…
Re:この辺がJavaScriptの嫌いなところ (スコア:1)
JavaScriptをはじめ、後追い言語でもジェネリックプログラミング [wikipedia.org]は大体できるようになってるので、その結論は間違ってるとしか言いようがないですね。
Rust [wikipedia.org]みたいな、2010年代の言語でもありますし。
https://doc.rust-lang.org/book/second-edition/ch10-01-syntax.html [rust-lang.org]
Re: (スコア:0)
>この手のは、C++のtemplateでやり尽されていて、あまり好ましくないと結論出来ているかと。
の、「あまり好ましくない」ってのは、
templateを使うと、一見かっこいい(その人の主観で)syntax sugarまがいを自作できるんだけど、好ましくないって主旨です。
>>JavaScriptをはじめ、後追い言語でもジェネリックプログラミング [wikipedia.org]は大体できるようになってるので、その結論は間違ってるとしか言いようがないですね。
だから、genericsそのものの有用性の話じゃないんですよね。人類が扱うにはtemplateが強力すぎたからgenericsに弱められたというか。
その辺の歴史を勉強してみて。1999~2004ぐらいの、c++0xのtemplate使ったスマートポインタどうするの議論のころだったと思う。
Re: (スコア:0)
C♯がわざわざテンプレート抜きで作ったのに、結局現場の要望に応えて入れざるを得なくなった、ってのが正確な歴史。こういう思想家はどこでも一定数いるけど、現実を知らない。
Re: (スコア:0)
C#のジェネリックスはJavaの失敗を踏まえて少しはマシな実装になってる
Re: (スコア:0)
C#って、演算子のオーバーロードができて、ジェネリックプログラミング上等、な設計だと思ったけど。もしかして途中のバージョンで追加された機能なのかな、あれ?
ゲームなんかを作ってて、
double speed;
Point p;
Vector v;
みたいな感じで座標やらベクトルやらを操作しようとすると、Javaだと、
p = p.add(v.multiply(speed));
みたいにしなきゃならないところを、C#だと
p += v * speed;
で済んで、とても綺麗だったり。
Re:この辺がJavaScriptの嫌いなところ (スコア:1)
何だって読み辛く書けば読み辛いコードになるってだけの話なのに、便利な道具を何でも敵視する人がいて困る。
ラムダ式禁止令の話とか聞くとゾッとする。
Re: (スコア:0, すばらしい洞察)
こういうのは便利のうちに入らないんだよ
Re: (スコア:0)
諸刃の剣とか利益相反と表現してはいかがでしょうか