I am a Linux guy. I love Python, Emacs and open-source and I hate working within the Microsoft developer ecosystem.
With that said, the .NET VM is light-years ahead of anything that anyone else is doing. And they're investing in dynamic languages and tooling for those languages. And they build stuff like F#, which is awesome.
Even C# rescues ex-Java people by giving them lambda expressions and local type inference. This is something that should be celebrated, like Java's garbage collection of yesteryear.
So yeah, they have a lot of political issues and their mainstream development community sucks, but make no mistake: Microsoft has some phenomenal technology.
It sure does, but Microsoft doesn't build technology to sell that technology/tools/programming ecosystem.
They build it so that users can buy their OS on which those apps can run. The more people build using their tools more OS licenses they can sell.In other words the technology is a bait through which users can be fished to buy their OS. This is a totally different thing when compared to Python/Perl other open source tools which have dedicated teams whose primary job is to build and share them to serve mutual interests.
When you find companies dropping a particular technology for something else, its just that they figure out a better bait to catch more fish.
That used to be true, but it's not any more. If the division that makes VS, .Net, et al were spunoff into its own company it would a: have billion dollar revenues and b: be profitable in its own right.
> If the division that makes VS, .Net, et al were spunoff into its own company it would a: have billion dollar revenues and b: be profitable in its own right.
And they would probably have a full development stack running on Macs and other Unixes (even Linux).
If the development tools division had not the burden of making products that sell Windows and Office licenses, they would be free to do whatever makes sense. Now they aren't
Well that's what its all about, Those programming tools aren't what MS's core business its all about. Their core business is all about Windows OS and Office software.
The reason they are feeling the heat now is the computing paradigm has changed very quickly for them to adopt. More and more computing is going to happen on the mobile devices and users will be looking at those devices to access network by some means and do rest of the stuff on the servers. Like search, games other apps.
Microsoft's core revenue comes from selling an operating system. They are not very comfortable with the idea that Software can be given away for free or a lesser prices just to sell hardware or pull traffic to your servers to sell ads.
Whereas the momentum is very rapidly shifting to later paradigm. That is why bing is so crucial, even if they have to run it under loss currently. They want some search backend, to be available when their mobile OS comes to full force in the market. Because then, they will fight a tough price war selling their OS, they will have to depend on the Google model.
Microsoft is no more a technology tools company (because of SQL server,C# etc) than google is because of BigTable, Go! etc.
Although they can sell them as their primary buisiness, but that's not what they are meant for.
Maybe in the past but not now. You seriously think that adopting cross-platform tech will make more people buy their OS? No way. It does benefit them though -- if they can optimize their OS experience for HTML5 apps, it's easier to build it, and gives them a wide range of applications premade.
Sure, I'm not saying they purely do it for that reason alone. There is always going to be a gap which they can't and will never acquire. Its not like IBM from the 80's where a computer and every thing related to it was synonymous with IBM.
But they selling SQL Server and C# et al and other programming tools has nothing to do with competing with Oracle or MySQL. Those are to ensure enough developers are trained to use them so that they can sell more OS licenses later.
I have to agree with you. I wasn't clear, I was ranting more about how their app-building frameworks or other middleware tend to be touted with great enthusiasm, and then abandoned, a few years later, with equal enthusiasm. Silverlight is a great example.
As you say, C# developers are a lot happier than Java developers.
.NET VM is light-years ahead of anything that
anyone else is doing
No it isn't. Instead I would say that the JVM, which took ages to release version 7 (and we'll probably wait another 2 years for version 8), is light-years ahead of .NET
I'm comparing it to the JVM here mostly because it is oranges to oranges. And as yet another orange, .NET leaves much to be desired.
they're investing in dynamic languages
Not anymore. They've dropped IronPython/IronRuby, while the DLR is somewhere in limbo.
And IronRuby could never match JRuby in completeness or performance. Maybe that's because the JRuby developers are awesome, I don't know -- but there's no denying that the Iron* languages are a half-ass effort.
Even C# rescues ex-Java people by giving them
lambda expressions and local type inference
I wasn't aware that Java developers need rescuing, but those are really old compiler tricks that you can implement by yourself easily on top of anything, including the JVM.
Scala does have such things, and personally I'm happy that people finally discovered technology from the 80-ties.
I do like what they've done with expression trees and Linq2DB, but its performance is not something to brag about (and this is a PITA since the biggest reason why I still use less-dynamic-than-Python languages is for performance reasons).
Java's garbage collection of yesteryear
Btw, speaking of Java's garbage collector, it's so kick ass that no other VM comes close.
And they build stuff like F#, which is awesome
Personally, I consider it a lot more awesome when some dude I never heard of appears from nowhere with a usable LISP implementation (Clojure).
Or when some other guy invents a usable web framework that people actually like, and then all of a sudden people start making clones, Microsoft included (Rails).
I actually like both C# and F# btw.
It's still a bureaucratic language, just like Java, but I like the low-level access that it provides. P/Invoke is a lot better than Java JNI -- but that's the only thing that really bothers me about Java.
And F# is barely usable on top of Mono, speaking of which ...
I am a Linux guy
That you had to mention that, such that we won't confuse you with a .NET developer, says a lot about .NET
The fact that .NET is only usable on Windows has been its major flaw since for me ever since I heard about it. It might as well be the most awesome technology in the world (although that would be a stretch of imagination), but it's completely useless if I can't run it wherever I want.
> No it isn't. Instead I would say that the JVM, which took ages to release version 7 (and we'll probably wait another 2 years for version 8), is light-years ahead of .NET
...
> while the DLR is somewhere in limbo
...
> Btw, speaking of Java's garbage collector, it's so kick ass that no other VM comes close.
...
etc
I didn't downvote, but saying stuff like that without a single bit of concrete information to back up the those arguments is pretty useless.
Then you have:
> Personally, I consider it a lot more awesome when some dude I never heard of appears from nowhere with a usable LISP implementation (Clojure).
Which disregards that non Microsoft employed people create languages for .NET too. Nemerle is a great example, and that's how the Iron projects initially started before MS got involved.
and also:
> The fact that .NET is only usable on Windows has been its major flaw since for me ever since I heard about it. It might as well be the most awesome technology in the world (although that would be a stretch of imagination), but it's completely useless if I can't run it wherever I want.
Which is just almost ignorant. I used to be employed writing ASP.NET web apps that ran on linux servers before I switched jobs. Then you have xamarin which lets you develop .NET apps for iOS and Android. Needless to say you get that ability automatically for Windows phones, etc. So all in all to me it seems like .NET's reach is pretty impressive.
> Personally, I consider it a lot more awesome when some dude I never heard of appears from nowhere with a usable LISP implementation (Clojure).
Which disregards that non Microsoft employed people create languages for .NET too. Nemerle is a great example, and that's how the Iron projects initially started before MS got involved
I am a Linux guy. I love Python, Emacs and open-source and I hate working within the Microsoft developer ecosystem.
With that said, the .NET VM is light-years ahead of anything that anyone else is doing. And they're investing in dynamic languages and tooling for those languages. And they build stuff like F#, which is awesome.
Even C# rescues ex-Java people by giving them lambda expressions and local type inference. This is something that should be celebrated, like Java's garbage collection of yesteryear.
So yeah, they have a lot of political issues and their mainstream development community sucks, but make no mistake: Microsoft has some phenomenal technology.