Introducing C#, Present and Future
started 11/18/2002; 3:41:17 AM - last post 11/21/2002; 2:29:39 AM
|
|
Ehud Lamm - Introducing C#, Present and Future
11/18/2002; 3:41:17 AM (reads: 2404, responses: 7)
|
|
|
Joe Grossberg - Re: Introducing C#, Present and Future
11/18/2002; 8:45:59 AM (reads: 1261, responses: 0)
|
|
Umm ... I'm on Linux. It's in .ppt format ... I'm finally downloading OpenOffice.
|
|
Patrick Logan - Re: Introducing C#, Present and Future
11/18/2002; 2:12:09 PM (reads: 1225, responses: 1)
|
|
Please say more Ehud...
Am I the only one who thinks that types should not be required at run time?
|
|
Dan Shappir - Re: Introducing C#, Present and Future
11/19/2002; 2:04:38 AM (reads: 1213, responses: 0)
|
|
Interesting presentation, though nothing earthshaking. C# does seem better than Java, which is after all it's yardstick. The proof of the pudding will be in the eating, and I've yet to write serious code using C#. Also other factors come to play in such a comparison: development environment (VS.NET is good, but there are numerous Java environments of various flavors, e.g. JBuilder, IntelliJ) and libraries/framework (.NET vs. J2EE).
Additional obvious factors are Java's multi-platform support (which is the prime reason I've developed in Java and not yet in C#) and C#'s better support for integrating with code developed in other languages.
Specifically with regards to the presented features:
out parameters are better than nothing (Java) but I think there are better alternatives for this functionality (touples).
Anonymous functions are nice, but why not simply allow nested functions? Also, I notice in one example that anonymous functions support closures. This is very interesting and I wonder how they are building this functionality into the VM. And again, why not provide general closure support? This feature alone could get me using C#.
Looking at the same sample (the large account filter) one can't help but notice how delegates are just a very verbose alternative to functions as first class citizens. Couldn't they just make this whole delegate thing implicit?
|
|
Ehud Lamm - Re: Introducing C#, Present and Future
11/19/2002; 6:38:18 AM (reads: 1223, responses: 0)
|
|
One way of compiling generics is by macro expansion. This is a form of compilation be erasure: the code is translated into non-generic code.
The Ada model, for example, allows generic units that are type safe. Types are not needed at run time.
Proposals for generics in Java and C# can follow the same approach (i.e., compiling into standard byte codes) or propose changes to the VM itself.
|
|
Patrick Logan - Re: Introducing C#, Present and Future
11/19/2002; 7:45:56 AM (reads: 1123, responses: 0)
|
|
Ah... thanks Ehud.
|
|
Patrick Logan - Re: Introducing C#, Present and Future
11/19/2002; 7:49:06 AM (reads: 1130, responses: 0)
|
|
re: Dan... nothing earthshaking
I think this is the key observation. Java and C# have various relative advantages and disadvantages. Nothing either way is a clear tipping point.
As they compete for favor the worst that could happen is feature competition.
After all they are both good enough to host a good implementation of Scheme. 8^)
|
|
Anton van Straaten - Re: Introducing C#, Present and Future
11/21/2002; 2:29:39 AM (reads: 1043, responses: 0)
|
|
After all they are both good enough to host a good implementation of Scheme. 8^)
Yes - Java/JVM and C#/.NET/CLR are really just inefficient but broadly interoperable target platforms for real languages. No-one actually writes Java code by hand, do they???
|
|
|
|