Has a Decade of .NET Delivered On Microsoft's Promises?
cyclocommuter writes with this snippet from The Register's assessment of whether
Microsoft's .NET framework has been a success: "If the goal of .NET was to see off Java, it was at least partially successful. Java did not die, but enterprise Java became mired in complexity, making .NET an easy sell as a more productive alternative. C# has steadily grown in popularity, and is now the first choice for most Windows development. ASP.NET has been a popular business web framework. The common language runtime has proved robust and flexible. ... Job trend figures here show steadily increasing demand for C#, which is now mentioned in around 32 per cent of UK IT programming vacancies, ahead of Java at 26 per cent."
The article says that demand for c# is around 32%, but it should also add in the demand for vb.net, which is less but should be added to the total, as it is in use. In my view, the language features, excellent development environment and comprehensive libraries make .NET a win for most LOB applications - which is the vast majority of all PC applications in use at the moment.
I think that java had the momentum, and the quality, so ultimately there was something structurally wrong with it that caused the decline in marketshare. The webapp share was taken over by flash, which is far slower than the java vm, because actionscript was easier to program in. If sun had made a ligthweight version of the vm for the browser and simpler language like visual basic, things might have been very different.
Microsoft has a monopoly. Maybe less so than before on the "desktop" category, but to state the obvious their monopoly on "Windows" is 100%. So naturally, they have every advantage when creating products for their own platform, and they'll do everything legally possible to shove dev products down developers throats.
So I say whether they call it .Net or .Piss, it does not matter much. The success of ASP is a bi-product of their desktop advantage. If ASP.NET were sold by ASPsoft, then no one would buy it.
Business 101: How do you sell a product regardless of its quality?
Microsoft is great at this, as every other major US corporation is and should be.
BTW I am not saying anything about their quality. I am just saying it doesn't really matter much, because their software is sold by weight.
People like .Net because MS offers tools to allow point & click programming. This means more people can do it and companies can lower wages.
That is one big reason not to support it. We don't need more shitty software that people don't understand how they've created it.
I had once to port a system of half a million locs of java code, between windows, linux and RS6000, I had to change one line of code for the RS6000 due to a bug in IBMs VM, and that was on Java 4...
Except the difference is that .Net derives most of its appeal from its tight integration with Windows. You try and port it and the OS simply doesn't have the supporting utilities you've built it to work with.
Java on the other hand is self-contained. So while you do have to do porting, Java code, in practice, doesn't make as many assumptions about the environment it's running in.
You're comparing odd bugs in Java implementations to .NET's inherent (and intended) tight coupling with Windows platform. Qualitatively different.
Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
Where I live, on Dice.com there are 74 open ASP.NET, and 17 open PHP jobs.
You are totally talking out of your ass. I really hope you understand the irony of starting with, "please dont bullcrap if you are not in industry".
I may not be in the dumb, arrogant PHP developer industry, but I can assure you that I am in the industry. There is a good chance that if you haven't used a website that I helped develop, you have at least used one that my company has. Where I work, we use ASP.NET (Primarily .NET) and Java, but not PHP.
But hey, don't let that discourage you the next time you want to post an uninformed and totally inaccurate rant about PHP and how you are in the industry but nobody else is...
The joke I've heard about Java is "Write once, debug everywhere." I've certainly encountered trouble with it in terms of doing system support. Sometimes you find Java software that needs a specific version of the JVM to run. Newer won't do it, only that one works. This isn't because it is a custom version, it is because the JVM they used when writing it did things one way, and that changed and broke it later and they haven't wanted to update. Now you can argue that they should rewrite their code to support the new stuff, but you can also argue they shouldn't have to.
This isn't to say Java is useless cross platform, but I do get tired of hearing the crap of "Oh just write it in Java, it'll run everywhere!" No, actually, it very well may not.
I am not convinced that it is such a bad thing that Java-the-language is 'stagnated'. As language, Java was designed from the start to eliminate features that were, in the parlance of the day, "Considered Harmful". So yes, it was and is a bit restrictive. C# has a richer syntax, including "goto"... The richer syntax can be a plus because it often saves time in coding.
But creating code is what, 20% of the lifetime cost of a software package? And meanwhile C# provides the less disciplined programmer with plenty of opportunities to create write-only code. Never mind lambdas and closures --- I am not so sure that having properties in C# is a great idea, because their very purpose is to hide that code invocation happens. And I positively dislike the opt-out from declaring which exceptions a method throws. Exception handling is simply too important.
> I'm on the verge of abandoning Java for my projects. Currently, there's just almost no business reason to use it.
Yes. Nevermind the target server platforms. Those don't matter at all...
Like I said: .NET is a Windows centric solution meant to keep the Windows users fixated on Windows and not distracted by anyone else.
A Pirate and a Puritan look the same on a balance sheet.
A few things:
First, ASP.NET isn't a programming language, it's a library. A lot of people write websites in C# using ASP.NET libraries.
Secondly, you have to add the numbers up.
So, using your values, we get:
US-Wide search results:
dotNET: 8266
Java: 5000
Last 7 days:
dotNET: 2590
Java: 1608
NYC, last 60 days:
dotNET: 553
Java: 591
In other words, your conclusion is disingenuous. Job postings asking for ".NET experience" typically mean C# even though they don't explicitly say that. They very rarely mean VB.NET or any of the other languages supported by the .NET VM. Same goes for ASP.NET (which, as I said above, is just a library).
While it does appear that Java is currently slightly higher in demand in NYC than .NET, that doesn't jive with the rest of the US overall.
Although Java-the-language has stagnated a bit (I don't know if JDK 7 will ever be complete, due to all the feature cramming), but there's been a lot of activity during the past few years on other languages that run on Java-the-platform. Groovy and Rhino (Javascript) have been available for the JVM for quite a while. JRuby is actually faster than "native" Ruby for a lot of real-world applications. The Lisp-like Clojure language has a lot of fans. IMO, Scala is the most interesting out of all of these, with a very sophisticated type system, as well as functional features that the cool OCaml and Haskell kids seem to love.
All of these alternate languages can use the wealth of libraries available for Java, generally on all platforms on which the JVM runs. For example, I know of Scala apps that can run on Andriod, which is close enough to Sun's VM.