C#は糞2.0
■ このスレッドは過去ログ倉庫に格納されています
前スレ
C#は糞
ttp://pc12.2ch.net/test/read.cgi/tech/1246520657/ >>269
お前はリフレクションを理解していないのが分かった たとえばJUnitの@Testはどうやって処理されるかわかってる?
まさかソースコード解析してるわけないよね
アノテーションが無かったころはメソッドにプレフィックス付けてたんだよ? WPFで高速GUIが作れるところがイイ
C/C+++GDIじゃ遅すぎて使えない WPFは高速でもなんでもないし。
むしろ普通のWindows Forms使うよりメモリいっぱい食って遅いし。 C#はメモリくいすぎ
所詮、近々のハードの性能に頼っているだけにすぎない
逆にハードが優秀な近々ではC#を使う必要もない
C#は糞ってか、糞の糞だね 近頃の4GBなどの大容量メモリとか高速のCPUとか
ハードウエア性能に頼って
C言語のようなポインタなど低Lvな処理を隠蔽し
バカでも作れるようにしたのがC# C#だからメモリを食うなんてことはないけどな。間抜けなコード書いてるか、仕組みを理解していないんだろ。 >>279
いったいいくつのメジャーな言語に喧嘩売っているんだ? >>275 の論理って、
俺の愛するx言語以外は全部糞、だよなw >>279
ポインタは問題無く使えると自信満々に言ってた中途採用の社員がポインタ関連でバグ多発。
そんな彼を救うツールとしてC#役に立ってる。 >>284
そもそもポインタを指標にしている時点で無能なのが伺えるな
あんなん誰でもできるし、目安にもならない
ただ、無能は君には難しかったようだね
俺らはポインタなんぞ、例えるならinclude1文程度の労力もかからないのだよ
無能な君には理解は早すぎたかね すげー
マイクロソフトのアプリケーションとかでも
たまにポインタ関連と思われるバグがあるのに
それを「誰でもできる」って・・・
ドンだけ上級基準だよwww てか、ポインタはテクニックじゃなくて、例えばC言語では基本文法。 >>255
中華民国(Republic of China)のパクリじゃね? >>259
制限っていうのは、まさかMVMやVisual J++の裁判の話か?
だとしたら>>260とは話が噛み合ってないと思うんだが。
あれが制限だというなら、あれは正しい選択だったと思うがね。
JavaScriptのように、MSが独自のJScriptという似て非なる仕様を乱立させたり、
C++のように多機能で仕様が乱立して悲惨な目にあったらJavaのWrite Once, Run Anywhereが完全に失われていただろうし。
今でもその思想は完璧ではないにしても、ポリシーとしてずっと持っているわけだし。
できるかぎりWrite Once, Run Anywhereを守ることでJavaの価値は守られていると思うわけだ。 >>266
Javadoc依存はなにかと問題あるだろ。
コンパイラはコメントを無視できる上
実行時に守らせたいことをコメントだけで補うことはできないから。
あと、Docletの仕様が中途半端だったこともあげられるかと。 アノテーションやカスタム属性って極端に言えば勝手な言語拡張を合法化する機能だよ >>293
言語の拡張はできない。
命名規則をつくることによるソーシャルな方法や static method でも実現できること。 そりゃ、有名会社でバリバリ開発して忙しい人は
こんなところに悠長にくだらんこと書いてる暇ないだろwww 有能なほど、さぼりや時間の使い方も巧く、残業もしない
低能ほど、小休憩さえも取れず缶詰、残業の嵐 で、そのさぼってる時間や残業の無い時間で
趣味でコード書きまくってるから有能なやつは忙しくて時間ない。 >>291
MSがJava言語を拡張したところはネイティブとのインターフェースだけ。
もとからJNI使ったら、Write Once, Run Anywhere は失われるんだから、
MSのWrite Once, Run Anywhere にはなにも影響しないという考えも変ではない。
まあ、標準ではないライブラリが広く使われるようになると、
将来MSのVMがSUNのVMを駆逐していく可能性もあるし、SUNも嫌だっただろうな。 >>291
Write Once, Run Anywhereって誰得?はっきり言ってJAVAにとって足枷だろう。 >>301
お前47氏金子勇やSoftEtherの登大遊に喧嘩うってんのか >>305
Visual J++はJavaをあたかもActive Xの一部とみなして
初心者や技術素人を騙すために使われたものだぞ
ネィティブで動かすこと前提に作られているからな
「Javaはネイティブで動かした方がよい」と勘違いするヴァカを量産する
恐れがあったからSunは裁判を起こした。
MSのVMがSunのVMを駆逐? ありえないなあ
セキュリティの件で終わってるから
VM自体はかなり乱立しているが VJ++は糞だったが、CLIはよく考えられているよ。
スケーラビリティとか。 俺のまわりはみんなC#を神と崇めてるからJAVAをプッシュすると異教徒扱いされる Javaはもうただの劣化C#になり下がっちゃったからな。
仕様も後追いでパクリまくってるだけだし。
その上、素性が悪いからパクリ切れてないし。
完全に限界にぶち当たってるよ。 なんでJavaってenumに対するswitchといい、interfaceといい、static importといい、
定数をクラス名で修飾するのを嫌うんだろう
その割にはインポートするクラスを全部明示的に書いたりするわけのわからない文化があるし JavaにはLINQやラムダ式を導入してほしい
この二つめっちゃ書くのが楽だし、集合脳や遅延評価の使い勝手がよく分かる >>315
お前が低能なのも、書き込むでよく分かるけどな >お前が低能なのも、書き込"む"でよく分かるけどな
それはひょっとしてギャグで言っているのか。 >>316
具体的にどこがダメなのか、書いて欲しい つか、C#がC++より有利な点がないところが糞な理由だな >>319
お前が低能なのも、書き込むでよく分かるけどな >>320
お前が低能なのも、書き込むでよく分かるけどな >>313
パクリ切ったらただのパクリだろう
Javaに新機能を追加するまで検証に多大な時間を費やしていることはご存知かな
C#ではそういう検証をろくにやっていない結果が今の状況だ
>>314
文化は言語とは直接関係ない話だな。
明示的に各理由はjava.sql.Dateとjava.util.Dateのように同名のクラスを
使った場合の対処などだろう
定数をクラス名で修飾するのを嫌う仕様にはなっていないはずだが
Math.sqrt(1)とかきたければ従来通りそう書くこともできる。
static importによってsqrt(1)と短縮することもできる。
Checkstyleを使ってstatic importを禁止することもできるが。 >>322
C#の状況といっているわりは、どこも指摘できない今までの糞と同じだな。 >>315
C#のLINQのサンプルをみたが
http://www.atmarkit.co.jp/fdotnet/special/cslinq01/cslinq01_01.html
必要性を感じないなあ
O/Rマッピングフレームワークには不満?
C#のラムダ式のサンプルもみたが
http://www.atmarkit.co.jp/fdotnet/csharp30/csharp30_01/csharp30_01_02.html
かえってソースコードを読みにくくする要素が多いなあ
匿名メソッドの処理が複雑化してくるとラムダ式には限界があるしなあ
単純な処理しかしない匿名メソッド以外にメリットを感じないなあ
ビーデー川俣はYAGNIYAGNIいってるけど
こういうサンプル見ると「if文は冗長だから三項演算子を徹底的に使え」といってる人を思い出すんだよなあ >>323
Java Community Processのような組織がC#にはないことと
Javaではよろしくないとされていた仕様がC#にはたっぷりあるわけだけど
たとえば構造体やunsafeとか >>324
お前はJava7のクロージャには文句言わないのか?
迷走して未だに入るのか入らないのかハッキリしないとこなんか実にJavaらしいな。 >>324
if文と三項演算子は等価じゃないし、三項演算子でスマートに書けるものを
ifでだらだら書くのはよろしくないぞ。 >>325
> 構造体やunsafe
それらは、中途半端なGenerics同様JavaのVMの仕様が時代遅れなので導入できなかっただけ。 >>324
それは貴方がラムダ式とLinqの使用経験が浅いか、全く無いからです
ラムダ式とLinqを使ってプログラムを組んでいると、同じプログラムを簡素に
短く書ける事に必ず気が付きます >>310
VJ++が糞って使ったこともなく言っているだろ。
当時の同類の製品の中で飛びぬけてよくできていた。 そしてJavaに非互換性というとどめをさそうとした >>324
LINQはSQLの代用じゃなくて、集合として扱える点が利点。
RDB、XML、オブジェクト等、同じLINQで取得したい集合値を加工できる。
ラムダは関数型言語に少し嗜めばメリットが分かるよ。
端的にかけることも利点だが、遅延評価で必要な時に処理が行われることがメリット。 メモリ内に集合ぶち込めていじくれる所がLINQのいい所じゃね?
LINQ to SQLだったら、SQLインジェクション対策に内部的なSQLを吐いてくれる
が速度は遅めだからあんまオススメしないけど、データ量少ない中小規模なシステムだったらスピィーディーに作れる 汎用的リスト処理を全部同じように実装できるのがいい >>332
そしてSUNはブランドごとなくなった。 >>327
Checkstyleのデフォルトでは三項演算子は紛らわしくミスを誘発しやすいので
使うなって警告がでるぞ。
>>328
Genericsはよくできているが
qJavaのVMをどんなに進化させてもC#の構造体とunsafeをそっくりそのまま導入する
のは無駄だと思うけど。無理にunsafeを導入するほうが時代遅れな発想にみえるけど。
JNIでできるのに無理にunsafeを導入する必要性を感じないなあ。
それこそC#はそういうところが中途半端。
>>329
>>324のサンプルは確かに短いけど
大して短くなっていないんだよね
もっと説得力あるサンプルもってこないと
タダの煽りでしかないよ 今ない機能は全否定
今ある機能は全肯定
〜信者同士の罵り合いで定番のパターンですね >>338
unsafeは、ネイティブ呼び出しではないのだが。 >>326 >>333
RDBの処理はO/Rマッピングフレームワークで解決
XMLの処理はデータバインディングフレームワークで解決
あまり魅力を感じない
サンプルを見たところ
自分でコードを書く分にはプラス要素はそれなりにあると思えど
他人がこういうコードを量産したら解読にいつもより時間がかかって手間がかかりそう
ソースコードがますます汚くなる危険性を孕み
導入したら導入したでかなりのリスクを背負い込むと見た
enumやGenericsのようにC#のLINQをそっくりそのまま導入することはないのではと見た
>>340
言っておくけど、俺はC#のenumがでたときに
C#とC++にはenumがあるのにJavaはenumがないから糞という意見に対して
C++やC#とまったく同じ仕様のenumは否定したけどJavaのenumは否定してないよ
Javaのenumと全然仕様が違うからね
Javaでもクロージャが導入されてもLINQとまったく同じ仕様にはならないと思うよ
むしろなったらとんでもないことになる
>>342
サンプルコードを見たところって言っている時点で、使ったことないじゃん
自分で使って有用性・不便性を感じ取って、業務レベルで使いこなしてからじゃないと 業務レベルw
業務レベル基準が各々脳内だからなあw
C#の仕事を引き受けるまで無理って言いたいのかねw
有用性はともかく不便性なんかすぐにわかるわな
C#の??演算子とか
必要性ないのばっか
そういう低レベル機能を追加すればするほどC#も徐々にC++化してくる罠 C#のGenericsとは全然仕様が違うからね。
JavaのGenericsは単なる糖衣構文でしかない。
値型のパフォーマンスは大きく劣り、実行時に型パラメータを参照しリフレクションで利用することも出来ない欠陥品。 >C#の??演算子とか
>必要性ないのばっか
>
>そういう低レベル機能を追加すればするほどC#も徐々にC++化してくる罠
??演算子と低レベル機能って何一つ関係してないな。 適当に検索してよくわからないままなんとなく糞としか言ってないし >>345
@ITから引っ張ってきて、サンプルコードを見た云々の脳内はひどいと思うわな 見ただけで理解できる てんさいぷろぐらまーさん に何てことを! こんな手法で1350レスも引っ張れるのはなかなか大したものだな。 業務レベルを卑下して、サンプルコード見ただけで分かった気のいる人って、品質管理のレビュアーとしては天才やで >>324=>>342=>>345
サンプルコードをみて未使用の言語C#を語る天才プログラマ C#アンチスレだから、サンプル見ただけで全てが解る天才が紛れ込んでもいいんじゃね >>346
C#の構造体なんかパフォーマンスが悪いんじゃないのか >>351
1350レス
前スレのこといってるのか
過去に遡れば1万レスは超えるんじゃないのか? クラスライブラリや言語の設計上、構造体のコピーが発生して効率が悪くなりやすかったり
クラスのオブジェクトの生成や短寿命オブジェクトのGCが非常に高速だったりしてあまりメリットがない場合が多かったりするけど
構造体自体のパフォーマンスは悪くない 構造体を捕まえてパフォーマンス悪いって、何が言いたいんだろう。 基本は参照なんだしわざわざstructの特性を理解できないまま誤用する奴はいないだろ 値型と参照型、値渡しと参照渡しを直交した形で書き分けられて、
必要に応じて自動ボクシング、キャストによるアンボクシングができる
って言語は実は少ないのではないだろうか。 構造体はスタックに確保されスタックポインタでアクセスできるためクラスより僅かに速く、大量に使い捨ててもGCに影響しない。
そうは言っても、クラスが十分に速いので速度面の理由で構造体にするのは稀。ネイティブとの相互運用のために使う事が多いだろうか。
誤用するのは何も知らない初心者ぐらいだろ。
>>355
C#のGenericsは値型を入れてもボクシングされないので高速。
Javaではintなどのプリミティブ型であっても強制的にボクシングされるため低速。(参照型しか扱えない)
これもJavaのGenericsが欠陥品だって言った理由の一つな。 その程度で欠陥品って
>>363に似た理屈で反論されるだけだぞ JavaのGenericsは、妥協の産物としてはよくできているし、オブジェクトを入れる分には効率はC#方式と変わらない。
もちろん、どちらが優れているかといえば、C#。 Integerとかのラッパクラスの素人臭さには笑ったな ■ このスレッドは過去ログ倉庫に格納されています