Index: [Article Count Order] [Thread]

Date:  Tue, 27 Jun 2000 12:09:45 +0900
From:  Yutaka Kamite <y-kamite@....jp>
Subject:  [XP-jp:00553] MS C# リリース
To:  extremeprogramming-jp@....jp (extremeprogramming-jp ML)
Message-Id:  <39581B563D4.6D0EY-KAMITE@....jp>
Posted:  Tue, 27 Jun 2000 12:11:18 +0900
X-Mail-Count: 00553

上手です。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
-----------------------------------------------------