4 ms·
Microsoft has kept introducing major features in .NET every few years - generics, WCF, WWF, WPF, LINQ, EF, PE, Rx... So most of the millions .NET developers spe
by borisk 16y ago
Microsoft has kept introducing major features in .NET every few years - generics, WCF, WWF, WPF, LINQ, EF, PE, Rx... So most of the millions .NET developers spent most of their learning time on those.
On the other hand since 1.2 the only major and widely used new feature in Java is generics. And the focus in the community has been on patterns like DI, AOP, DDD, TDD ...
IMHO .NET still has one huge advantage - developing UIs for enterprise apps. Very easy to learn drag'n'drop win/web forms + multiple control vendors. Real component oriented programming.
- motters 16y agoThis year by year increase in features - what I refer to as the "TV remote effect" - is of concern. Really they ought to concentrate upon consolidating and removing unnecessary features from the language.
- jules 16y agoRemoving features is impossible. The best you can do is starting over once in a while.
- borisk 16y agoSome ppl in Microsoft see F# as exactly this fresh start.
- contextfree 16y agoYou can sometimes get away with removing features under the guise of a "compact" version for a new platform, e.g. OSX -> iOS, WPF -> Silverlight
- xtho 16y agoIIRC Java has removed features in the past by marking them as deprecated for several releases and then removing them.
- SamReidHughes 16y agoThis year by year increase in features - what I refer to as the "better than Java effect" - is not of concern. They're not going to remove features from the language, because that would break existing code for no reason, and that would be insane. The only reason to remove a feature is if it can cause damage. Maybe Scheme should get rid of call-with-current-continuation, but I can't think of any features C# needs to get rid of. Can you?
- InclinedPlane 16y ago.Net frameworks are not identical to the JVM. The general principle of the JVM is that it remains binary compatible across all versions (this limitation forced severe constraints onto the implementation of java generics, for example). In contrast there are multiple versions of the .Net runtime (CLR) that are not compatible. MS often makes breaking changes across major versions of the CLR.
- xtho 16y agoAFAIK JVM byte code isn't guaranteed to be backwards compatible. They also introduced new byte codes that didn't exist in earlier versions. In that sense, there also are different versions of the JVM.
- angstrom 16y agoI think the language has evolved well, but the framework certainly has some useless cruft. Luckily that can be ignored.