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.
Yup see them every day
"Please don't apply if you have C# experience"
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.
Joking aside, Java is multiplatform in practice and .Net is only in theory.
839*929
It depends what the goals were.
If they wanted to completely depose Java then no, Java is still there.
If they wanted to introduce a Windows-centric alternative to re-invigorate desktop development and replace the horrors of C++ and VB with something with more modern and useful layers of abstraction and code checking that were already in Java (typed delegates, generic types, garbage collection, etc) then it seems to have done all right.
If they wanted to tear the OSS world in two with arguments over whether it .Net "teh evilz" or not then that'd be a definite yes, even thought more and more patent covenants are coming in to cover Mono (despite the fact that patent covenants shouldn't even be necessary if the legal system was sensible enough not to allow the patenting of software).
Is that so much of it wraps, and hides the complexity of, COM. I haven't had to deal with COM programming in 5 years now.
Best Slashdot Co
I was initially excited by .net when it was first released and have preferred it over Java, which as a language seemed to have stagnate. Now, I am finding C# quite a disappointment with Microsoft not investing the time and energy to ensure the features they add to the language are polished:
* Adding extension methods without also adding extension properties
* Refusing to implementing covariant return types
* Adding type inference, but disallowing it for class method return types
As so forth. Microsoft simply doesn't have the discipline to finish any feature addition to the language before moving to the next.
That doesn't mean I prefer Java either. I only use Java and C# at work out of necessity.
My language of choice is now Scala.
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 think the register is oversimplifying here. PHP, Ruby on Rails, Python, Scala... Sure Java is a complicated beast and it has become more and more difficult to sell to new customers, but .NET is not the only one eating Java's pie.
Now, I wonder: how much .NET customers have found out they overpaid for a .NET application when they could have done as good with an X language alternative?
The answer is, as always, it depends.
If you expected cure for cancer, it failed miserably.
However, if you were involved with any of the likes of MFC, ATL, Visual Basic 6 and bellow, DAO, Interop & COM (to name just a few), it is to be regarded as the second coming of Christ.
"Blah blah blah." - [citation needed]
We use both heavily in our enterprise. I tend to lean toward Java because of the wide spread use across platforms. But I agree that the underlying framework of Java is ridiculously complex. We spend a huge amount of time dealing with the JRE rather than writing and supporting actual code.
.net, visual studio, MSSQL, AD, and IIS are a seriously tight integrated platform. I've seen even our most junior devs author amazing sites using the pure Microsoft tools.
.net framework methodology. If they could pull that off Java would really start to storm our environments.
On the other hand,
Overall, I'd say I'm on the fence. I wish Sun would remove head from ass and get the JRE to a better versioning system that allows old apps to keep running along with new apps, similar to the
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...
Well of course you will. The projects on those sites are looking for cheap implementation and damn any sort of quality or maintainability. The register didn't look at those sorts of sites, they looked at recruiting sites instead, the ones businesses use. Using the slime pool that is the "Write me a twitter clone for $100" sites to say LAMP is the most popular in businesses is laughable.
I thought the article may be overstating .NET's popularity, so let's take a quick look at listings on monster.com. Here are the results of a US-wide search for each of the terms (at 9am on 2009-12-18):
C#: 2,920 .NET: 3,632
(Just)
ASP.NET: 1,714
Java: 5,000+
If we narrow it to posts in the last 7 days:
C#: 971 .NET: 1,095
(Just)
ASP.NET: 524
Java: 1,608
Or if I select my location, New York City, over the last 60 days:
C#: 223 .NET: 239
(Just)
ASP.NET: 91
Java: 591
As expected, there is a lot more demand for Java developers than C#, ASP.NET or even .NET framework itself.
(Note: I added the prefix (Just) to the .NET line as otherwise SourceForge won't let it be separated onto a new line)
Portable versions of Firefox, GIMP, LibreOffice, etc
Strange that you mentioned 10 years, because as the article claims, .Net was announced in 2001, and introduced in 2002. So even if you started using it the day it came out, the framework is still only 7 years old.
http://en.wikipedia.org/wiki/.NET_Framework#Versions
Do you by chance have one of those jobs posted circa 2004 asking for "10 years experience in .NET"?
-dZ.
Carol vs. Ghost
Of course their reasons for doing it are not benevolent, they want software designed for Windows so that users want to use Windows. Regardless, they produce extremely slick dev tools because of it. Often the things maligned by self proclaimed "real" programmers are actually quite useful dev tools in the right situations.
Visual Basic is a good example, all sorts of geeks liked to hate on VB as being stupid. While they were on to something in that VB wasn't powerful like C/C++, they missed that the reason was that VB was a managed language back before such a thing was popular. It allowed you to easily churn out UIs and things like that with minimal effort and without the need to check for the gotchas you got with something like C. Hence it was quite popular.
What MS has done real well is realized that most developers out there are NOT the hard core "Give me a text editor or give me death!" types. They are people in business trying to get something done, and get it done with minimal fuss and hassle. They also likely have to put up with management idiots who want to change the requirements every 5 minutes and thus being able to rapidly change the software is a benefit.
They really do seem to be a company that is in touch with what developers want.
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.
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.
A common trend I've noticed amongst the vast (99%) majority of PHP developers is that they are almost guaranteed to be
a) completely devoted to PHP
b) incredibly arrogant
c) mediocre developers at best