Re:Ask HN : Which should I learn : C# or Java
by johns on Sunday November 16, 2008 @08:59PM
(#366494)
This is one area where I think MS gets a bad rap. If they didn't keep adding new stuff, everyone would complain that they were stagnant and falling behind the times. So they add popular new features to C# like lambdas and such, and now they're bloated.
4.0 will not essentially be a dynamic language. They're making it much easier to interop with dynamic languages by adding some dynamic constructs, but it's still as statically typed as ever. 'dynamic' is a shortcut to save you time, not re-invent how you work with C#.
Re:Ask HN : Which should I learn : C# or Java
by kahseng on Monday November 17, 2008 @01:22AM
(#366635)
Not going to argue either way (I do like both Java and C#, choosing one over the other depending on what I want/need to do)... but don't you think most enterprise languages mature over time too?
Java seems to be no exception: http://en.wikipedia.org/wiki/Java_version_history
Version 1.0 of the C# specification clocks in at 405 pages. There was an addendum in 1.2 that I'll leave out, because it was a respecification of 1.0.
2.0 came along and added 117 pages of specification - including generics, partial classes, iterators, and a handful of other things. On pure specification, that's a growth of 25% to the core language. (I know this isn't really scientific, but I think you get my drift).
Then in 3.0, just 2 years later, the spec is back to over 500 pages (just for the language!). This version added a bunch of functional paradigm stuff to the language, lambdas, linq and the like.
And now in 4.0, they're talking about making C# essentially a dynamic language.
Now, all this being said, I really do like C#; but I think that it behooves everyone who likes C# to admit that it's a large and evolving language; the paradigms that Microsoft keeps adding to the language don't really seem to fit from one version to the next.