

Go go java ... play catch-up with C# - jbandi
http://blog.jonasbandi.net/2008/12/go-go-java-play-catch-up-with-c.html
Future features of the Java language ... old stuff in C#?
======
systems
Looking at the cup half full, this is great news for Java, its evolving, its
been open sourced, its eco system still growing, so many FOSS projects are
Java based.

And nowadays the JVM gained so many new and interesting languages: Groovy,
JRuby, Scala.

All in all, I find the Java platform more interesting comapared to .Net.

~~~
jules
Don't forget Clojure! .NET has F#, which is pretty interesting too (more than
Scala in my opinion). And IronPython/IronRuby.

------
gaius
Not to mention that the .NET platform is moving in an even more radical
direction with F#, bringing functional programming to the commercial
mainstream. Java is still philosophically crippled by James Gosling's original
intent that its users would be people for whom C++ was too difficult. Now they
are struggling to retrofit features in. In C# Anders Hejlsberg created a
language that he could use himself, that's the big difference.

(Yes I know about Clojure but it's not Sun Clojure is it?)

~~~
halo
Whereas .NET is still philosophically crippled by Microsoft's intent to create
a platform for Windows development and not a true cross-platform development
platform.

(Yes, I know about Mono, but it's not Microsoft Mono is it?)

~~~
stcredzero
I have to say, if Microsoft were to come out with an entirely new operating
system based on the ideas behind Singularity and BeOS/Haiku, it would be game
changing. Competitors like OS X wouldn't be able to match it for security and
responsiveness. Everything, even including significant parts of the kernel
could be implemented in C#.

Imagine something with the productivity leverage of the old Lisp machines,
backed by a corporation the size of Microsoft. (People used to ask how big the
development team was behind the Symbolics Lisp machine, and their jaws would
drop when they found out it was an order of magnitude or two smaller than they
thought.)

~~~
tptacek
OSX doesn't match Win32 for security _now_ , so I'm not sure this would be the
category-killer you think it would be.

~~~
stcredzero
OSX doesn't match now, but it's lagging behind in the same league. Security
wise, Singularity is in another league entirely.

------
cia_plant
The premise that one language needs to "catch up" to another by adding more
features is absurd. Languages are not like automobiles, which are better the
more "perks" are added. A programming language should be as small as possible
while still being able to express as many useful patterns as possible.

By this metric, Java and C# are both extremely poor languages. Java is not
especially complicated, but it is far more complicated than is necessary for
its (extremely small) expressive powers. C# is extremely complicated already
(SQL as a first-class language construct? Really?), and is becoming more
complicated, while still not reaching the expressive power of e.g. Scheme.

------
axod
One of the things that appeals to me is that Java _doesn't_ have all the extra
crap piled on some other languages (yet).

I think there's a lot to be said for picking which features to leave out.

Maybe I'm alone with this viewpoint though.

~~~
gaius
Gosling didn't leave out features because he thought you didn't need them. He
left them out because he thought you weren't smart enough to use them.

~~~
dcminter
"Debugging is twice as hard as writing the code in the first place. Therefore,
if you write the code as cleverly as possible, you are, by definition, not
smart enough to debug it." \--Brian Kernighan

I'm a Java developer - naturally I think Gosling (for the most part) drew the
lines in the right places.

~~~
nradov
Well I don't know about that. There have been a few times that I wrote code as
cleverly as possible because I couldn't find a simpler way. And then when I
found defects later I was able to debug it, although that took a while.

------
jimbokun
Is there a guide spelling out precisely what each of the proposed changes
actually mean? I think I know what they refer to, but hard to be sure if my
intuition matches reality from just a terse name. The Colebourne blog post
does not contain any description or links for the item labels.

------
hxa7241
'Nullable types' doesn't seem something to be proud about: it goes in the
wrong direction. Much better to enable _removing_ null, like Scala and OCaml.

