If you're going to bet the farm on a technology, Microsoft isn't where I'd lay my money down. Aside from the grief they're having convincing people to stay on the Windows treadmill, the primary reason I dropped out of the Microsoft world was that they have no concept of long-term.
Ironic, when you have people saying that ".Net has a future and Java doesn't", but the final straw was when I was working on a SOAP-based interface between an Excel spreadsheet and they basically abandoned the whole API right in the middle of my development and replaced it with a new, incompatible API. Any project over 6 months old based on Microsoft technology was prone not to even be compilable anymore, and while I gave up before .Net took over, I'm not sure I can expect better there. I seem to recall that the early .Net went through some wrenching changes, too.
Java has its ugly side, just like IBM mainframe COBOL. But like IBM mainframe COBOL, you can expect even antique code to build and run. It's part of the basic philosphy.
Besides, if you want to simply chase today's hottest tech, scripting languages are what's in.
Science is the process of replacing what we "know" with what is TRUE. Politics, alas, often prefers to be the opposite.
Tim Holloway wrote:Besides, if you want to simply chase today's hottest tech, scripting languages are what's in.
Like PHP? I see quite a few openings in job search site for that lately.
But you must also take into account one other thing: How ever crappy microsoft technology might be, since they have a big marketing and loads of cash behind it, it will be a leading technology. What is leading, what becomes common, what becomes wanted in the job search market, is not solely decided by the technical quality of the product of concept. Also I do not think .NET is that crappy.
So the question is, what is your goal? Do you want to work with the most advanced technology, or do you want to study the stuff then could get you the best position in a company. The first not excluding the second by the way.
In my opinion, if this question is related to the type of tools being used, how easy it is to debug, etc. etc., then I guess a .NET vs J2ee is a good discussion.
In terms of a career, I don't it will make much difference. In your career, you will probably learn, use, and then move on, to over a dozen languages, and even more frameworks. You skills is less the languages that you know, and more of the experience that you do with those languages. Those skills will go with you, even when you change languages, and frameworks.
Oh, it is definitely *NOT* crappy. It is far from it.
But I don't think Tim is saying that .NET is crappy either. I think he is saying that Microsoft support for it is crappy -- meaning they tend to just change the API from version to version (with little concern for backward compatibility), and not provide any EOL cycle for the older releases.
For some context, consider how Microsoft abandoned classic VB and in general, is making COM obsolete.
Yet there are billions of lines of code that still rely on the technology and so companies are stranded.
As for .NET...each framework is effectively its own beast. If the design concept is the same as Java's, Microsoft's idea of production support is not.
Please do not shoot the fish in this barrel. But you can shoot at this tiny ad: