アカウント名:
パスワード:
なんか気づいたらいろんなところで動いてた。知らん間にWrite Once, Run Anywhere
もともとjavaをかなり意識して作られたものだし、CLIって規格上は最初から特定プラットフォーム依存じゃなかったからね。当のMicrosoftがWindows以外の実装を長いこと作らなかっただけで。
言語仕様についてはおっしゃるとおりですが、マルチプラットホームを本気で考えていたかどうかは疑問ですね。
ただし、初期の仕様においても、Javaの丸パクリではなく、デリゲート(関数参照)とか、プロパティとかあって、なんでもかんでもオブジェクト指向で面倒臭いJavaの弱点を改良しようとする野心がうかがえました。
オブジェクト指向原理主義のJavaに対し省力化原理主義のC#という感じ。#短いは正義
Java が何でもかんでもオブジェクト指向ってのは無理があるな。オブジェクト指向をかいつまんでるけど、シンプルな面だけでやろうとして、破綻したところの辻褄を合わせた言語であって、オブジェクト指向的ではないってところが目立つ言語だろう。# 辻褄合わせのバランスは90年代当時の類似言語の中ではかなり良く出来てた。
オートボクシングのないJava1.4以前を見たとき、その不完全なオブジェクト指向に酷く失望しました。
ボクシングが無い方がオブジェクト指向的には美しいように思いますが。面倒ですけど。もっとも、そのボクシングもジェネリックでスカッと過去の遺物になりましたが。
プリミティブラッパークラスなんてものがある時点でどうやっても美しくないんだよ。C#はプリミティブ型と上手く整合させた上に、シンタックスシュガーを積極的に追加したので(好みの問題はともかく)今がある。あとJavaのジェネリクスは相変わらずプリミティブ型取れんだろ。
メソッドをオブジェクトとして扱えなかったJavaがなんでもかんでもオブジェクト指向とはどういう意味か
もちろんそういう話じゃなくて、Javaのオブジェクトはかならずnewされてヒープに配置されるって話だろう。C#のValueTypeやボクシングのような、ざっくりいうと劣化オブジェクトのようなものがないという意味で、Javaは純粋だ。
元コメは、いわゆるオブジェクト指向の話としてはたしかに不正確だったが、趣旨はふつうにわかったな。
ボクシングのような、ざっくりいうと劣化オブジェクトのようなものがないという意味で、Javaは純粋だ。
Java使ったことありますか?別コメントでボクシングの話が出ているのに。
野心っていうか、C#はアンダース・ヘルスバーグをはじめとしたボーランドの開発チームがマイクロソフトに移籍して作ったものなのでデリゲートやプロパティはDelphiにあったものをそのまま新言語にも採用したという説もあります
# おかげでVisual Studioのフォームデザイナでプロパティウィンドウと名前がかぶってしまっている(ボーランド製品では「オブジェクト インスペクタ」という名称)
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy
今更盛り上がってきてるよねC#ってか.NET (スコア:0)
なんか気づいたらいろんなところで動いてた。
知らん間にWrite Once, Run Anywhere
Re: (スコア:1)
もともとjavaをかなり意識して作られたものだし、CLIって規格上は最初から特定プラットフォーム依存じゃなかったからね。
当のMicrosoftがWindows以外の実装を長いこと作らなかっただけで。
うじゃうじゃ
Re: (スコア:1)
言語仕様についてはおっしゃるとおりですが、マルチプラットホームを本気で考えていたかどうかは疑問ですね。
Re:今更盛り上がってきてるよねC#ってか.NET (スコア:1)
ただし、初期の仕様においても、Javaの丸パクリではなく、デリゲート(関数参照)とか、プロパティとかあって、なんでもかんでもオブジェクト指向で面倒臭いJavaの弱点を改良しようとする野心がうかがえました。
Re:今更盛り上がってきてるよねC#ってか.NET (スコア:2)
使われてる範囲の割には言語自体は嫌われてるよね。
Re: (スコア:0)
オブジェクト指向原理主義のJavaに対し
省力化原理主義のC#という感じ。
#短いは正義
Re: (スコア:0)
Java が何でもかんでもオブジェクト指向ってのは無理があるな。
オブジェクト指向をかいつまんでるけど、シンプルな面だけでやろうとして、破綻したところの辻褄を合わせた言語であって、オブジェクト指向的ではないってところが目立つ言語だろう。
# 辻褄合わせのバランスは90年代当時の類似言語の中ではかなり良く出来てた。
Re: (スコア:0)
オートボクシングのないJava1.4以前を見たとき、その不完全なオブジェクト指向に酷く失望しました。
Re:今更盛り上がってきてるよねC#ってか.NET (スコア:1)
ボクシングが無い方がオブジェクト指向的には美しいように思いますが。面倒ですけど。
もっとも、そのボクシングもジェネリックでスカッと過去の遺物になりましたが。
Re: (スコア:0)
プリミティブラッパークラスなんてものがある時点でどうやっても美しくないんだよ。
C#はプリミティブ型と上手く整合させた上に、シンタックスシュガーを積極的に追加したので(好みの問題はともかく)今がある。
あとJavaのジェネリクスは相変わらずプリミティブ型取れんだろ。
Re: (スコア:0)
メソッドをオブジェクトとして扱えなかったJavaがなんでもかんでもオブジェクト指向とはどういう意味か
Re:今更盛り上がってきてるよねC#ってか.NET (スコア:2)
もちろんそういう話じゃなくて、Javaのオブジェクトはかならずnewされてヒープに配置されるって話だろう。
C#のValueTypeやボクシングのような、ざっくりいうと劣化オブジェクトのようなものがないという意味で、Javaは純粋だ。
元コメは、いわゆるオブジェクト指向の話としてはたしかに不正確だったが、趣旨はふつうにわかったな。
Re: (スコア:0)
ボクシングのような、ざっくりいうと劣化オブジェクトのようなものがないという意味で、Javaは純粋だ。
Java使ったことありますか?
別コメントでボクシングの話が出ているのに。
Re: (スコア:0)
オブジェクトになりきれない劣化オブジェクトの多さではJavaはトップクラスなんだから、Javaは純粋でも何でもなくオブジェクト指向の理想からは遥かに遠いところにいるのは確かだろう
Re: (スコア:0)
野心っていうか、C#はアンダース・ヘルスバーグをはじめとした
ボーランドの開発チームがマイクロソフトに移籍して作ったものなので
デリゲートやプロパティはDelphiにあったものをそのまま新言語にも採用した
という説もあります
# おかげでVisual Studioのフォームデザイナでプロパティウィンドウと
名前がかぶってしまっている(ボーランド製品では「オブジェクト インスペクタ」という名称)