C# -- the Java killer?
Nic Ferrier
nferrier@tapsellferrier.co.uk
Mon Jun 26 19:06:00 GMT 2000
>>> Matt Welsh <mdw@cs.berkeley.edu> 27-Jun-00 2:15:22 AM >>>
>Overall it's a nice language --
Can't say I agree with you.
There's a few things:
1. *all* types are first class objects
Not sure whether this is a compiler feature but it looks like a
runtime one.
Java's mix of first class objects and "native typed" objects (eg:
int, char, etc...) wasn't just a hang over from C++. It was a concious
decision after expeience of performance in other OOP lanaguages where
everything was first class (eg: Eiffel).
2. everything is a COM object
Don't know whether they're compiling in COM support to all objects
(ie: every object has COM weight) or whether it's a VM feature but it
seems like every object (certainly every application) is a COM.
Heavy man.
3. Same object map as Java
Which we all know is pants. That's why we're adding paramaterized
types to Java. You'd have thought MS would have learned from this. If
C# had parameterized types I'd seriously consider it.
4. "unsafe" memory areas
You bet! GC performance will presumably degrade at some balance of
"unsafe" to GCed.
So you should still be able to crash "Windows Millenium" using it
without much problem (and write nice viruses).
5. some very wierd syntax
Documentation strings can be added to objects (including) through
attributes. It's looks kinda like elisp docstrings except it's dynamic
and wider ranging - every object can have lots of attributes
(dynamically - I think).
In conclusion I'd say it was basically Java with added syntax to make
it look "innovative".
I can't see how they're going to get it pass the regulators.
One good thing: they do promise to put it through ECMA
standardisation (why not ANSI/ISO?). But then we all know what happens
to those sort of good intentions.
Still there is reason to believe MS since no one else will be
supporting it (because it is COM specific) so they don't have the
fears that SUN have about Java.
Nic
More information about the Java
mailing list