上手です。XP MLに C# の発表の記事が流れていましたので転載します。
(投稿者はObject Mentor のMichael Feathers. MS 6/26発表)
細かい部分は解りませんので、解説をお願いします>>詳しい方
I thought this might be of interest considering all
of the language discussion we've been having
recently.
最近の言語に関する議論に関して面白そうなので。
MS has developed a simplified C++ (it actually
looks incredibly like Java) for net development.
I read the reference manual this evening.
MSが、ネット開発用に単純化C++である C# をリリースした(実際、信じ
られない位 Javaに似ている)。今晩リファレンスマニュアルを読んだ。
http://msdn.microsoft.com/vstudio/nextgen/technology/csharpintro.asp
>From my perspective it simultaneously surpasses
and falls behind Java in completely orthogonal ways.
私からみると、それは同時にJavaを越え、Javaの背後に回るということを完全に
直行した状態で実施している。
#(この表現は、最後の結論を見るとちょっとオーバー)
Here is what I was able to glean on first read:
最初に読んで得た情報は以下だ。
On the plus side:
<<プラス面>>
- everything is an object, including the primitives.
the system boxes and unboxes values.
プリミティブを含め、全てはオブジェクト
- properties are supported, i.e., what looks
like a variable assignment or access in client
code can have get and set methods associated
with it. You can do also give a class an array
like appearance using something called an indexer.
- delegates look like a nice language feature.
delegate はナイスな機能
- People interested in numerical programming
will like the operator overloading, true multidimensional
array support and the fact that structs (yes, there
are structs as well as classes) are held and passed
by value.
演算子のオーバーロード、他次元配列、構造体!!の値渡し
- supports conditional compilation
条件コンパイル
- garbage collection
ガベージコレクション
- the addition of all of the unsigned types doesn't
look like a win, but when you discover that
the only implicit conversions are those which
preserve information, it looks okay.
?
On the minus side:
<<マイナス面>>
- Compiles to an executable
exe へコンパイル
- Far less dynamic than Java.
Javaよりダイナミックでない
- Provides large primitive data types and overflow
checking constructs, but does not appear
to convert to unbounded representations.
?
- Event handlers are less general than anonymous
classes. They look like they could have been
integrated into the language in a cleaner way.
イベントハンドラは anonymous classes(?)より一般的でない。
もっときれいに統合できたはずなのに。
- has C++ style namespaces. Seems like a nice
feature, but personally I don't like the way they
break locality.
C++スタイルのネーム空間。ナイスかもしれないが個人的に嫌い
- the name resolution rules look too involved,
although there are some interesting features
wrt. interfaces.
ネーム解決ルールが複雑(?)。wrt. interfaces. は面白い。
- no covariant return types
?
- methods are not virtual by default.
メソッドはデフォルトで virtual でない
On a subjective note, the whole language looks
like it could be much cleaner. It supports OO
but my feeling is that does not go as far as one
might expect from a language which unifies
primitives and objects. As if the feature were
more important than the style of programming
it enables.
OOはサポートするが、プリミティブとオブジェクトを統一する言語、(という
ふれこみ)から期待するところまでは行っていないのではないか。
Anyway, please don't read more into my
statements than I've read into my reading
of the reference. Another crack at the spec
should make some of it clearer. :-)
Michael
---------------------------------------------------
Michael Feathers mfeathers@....com
Object Mentor Inc. www.objectmentor.com
Training/Mentoring/Development
-----------------------------------------------------