The Joel on Software Discussion Group (CLOSED)

A place to discuss Joel on Software. Now closed.

This community works best when people use their real names. Please register for a free account.

Other Groups:
Joel on Software
Business of Software
Design of Software (CLOSED)
.NET Questions (CLOSED)
Fog Creek Copilot

The Old Forum

Your hosts:
Albert D. Kallal
Li-Fan Chen
Stephen Jones

Why so much doom and gloom RE. Java?

As a casual observer to IT threads and blogs over the past couple of years it seems that Java gets an incredibly hard time. Everyone talks about the imminent doom and fall of Java while when I read further they present very little to back it up. There also seems to be an attitude that the world is moving towards C# and other .NET languages - again nobody ever presents much evidence of this and people who attempt to rank the languages in order of popularity (possibly through keyword searches or other statistics) consistently place Java, C and C++ in the top positions. The chart I'm looking at places C# at #8 with what I'm assuming is VB6 at #5. Now I'm probably boring people.

My question is WHY is Java going to go belly up in the not so distant future? And why do people always imply that it will be .NET that does it?
silvermonkey Send private email
Wednesday, June 18, 2008
Its not and most of the anti-Java rhetoric is fairly naive.

C# may be a fine language, but being tied to Microsoft is a double-edged sword. Its enough of one that unless Microsoft is willing to free it, C#/.NET will never become dominant.

There are flaws in Java and its not the perfect language for every task. Sun has finally admitted that, after years of hyping otherwise. Many in the Java community still enjoy the language, but are looking forward to a multi-tenet VM where others are first-class citizens. The ability to use the right language for a task, but still play well in a large ecosystem, is a very exciting prospect.

Just ignore most doomsday remarks and focus on what makes programming interesting. All the BS spouted is just ego tripping by people trying to avoid work, but sound competent.

Friday, June 20, 2008
"C#/.NET will never become dominant"

It already is among those that prefer to be paid for their work.
resume your fantasy
Friday, June 20, 2008
"It already is among those that prefer to be paid for their work."

+1 for that. I never really saw the point of Java. The whole "write once, run anywhere" malarkey was obviously just marketing BS. In any case, we already had C for that.

Perhaps someone should just create Java for .NET then all these silly arguments can cease ;-)
Odysseus Send private email
Friday, June 20, 2008
Can you provide couple of links with doom predictions for java?
Friday, June 20, 2008
They probably cannot create for they would be sued by Sun into oblivion.
Friday, June 20, 2008
They could have called it Java if the implementation passes the compatibility suite.

Very simple.

Otherwise call it Flava :)
Rick Tang
Friday, June 20, 2008
I wonder, stats of popularity by searching keywords, how does it distinct Java coffee, Java island, and SUN Java?
java language 8,940,000
java          437,000,000
Panda Send private email
Friday, June 20, 2008
"It already is among those that prefer to be paid for their work."

Shush. I'm at one of those few companies that's still paying us Java people. These idiots run their servers on Linux - they don't even use IIS! Please don't let them know that we don't prefer to be paid or millions of us will go hungry!
A starving Java developer
Friday, June 20, 2008
Up to a fairly significant point, .NET performs similarly to Java with a lower total cost of ownership. Financial places run Java, banks, credit card companies, on expensive Sun hardware for the ultra-ultra-ultra high transaction load capability.

For the other 98% of the world, .NET offers cheaper enterprise performance, and is much more accessible to entry level programmers as well.

Java isn't going away, but .NET is certainly gaining in significance, IMO. That said, at least one Albany-area recruiter tells me that, while he's seen a good increase in .NET jobs the past couple years, he wouldn't say it's disproportionate to the gain in Java jobs. That may be just his perspective, or just this market -- I'm pretty certain .NET is gaining on Java. Its community footprint is growing.
Andrew Badera Send private email
Friday, June 20, 2008
I can't find the site anymore that put Java ontop but this certainly puts across what I'm getting at: .

I'm paying close attention to this stuff now since I'm about to graduate with a degree in CS and seeing as I've done Java all the way through I would like to get a job with something I know. I've done some .NET before however while it does sound stupid I don't know if I could bring myself to be coding exclusively on a Microsoft platform coming from a Linux background.
silvermonkey Send private email
Friday, June 20, 2008
silvermonkey -

If you're about to graduate, and say you can't bring yourself to program on a platform that will lock you nearly exclusively to Windows, then don't do it. Choosing to develop in MS technologies at this stage in your career could prove extremely limiting depending on where you want to go. Several interesting (and lucrative) opportunities exist where MS tools are verboten, and your experience with them would be seen as having limited benefit.

Java isn't going away anytime soon, as the platform as a whole provides an awful lot. Further, the recent trend in porting languages to run on the JVM gives Java a lot more room to grow, and gives companies an incentive to try new things since it doesn't mean a drastic break from existing codebases. I think that the potential for these sorts of efforts as well as the greater flexibility of Java (compared to .NET) far outweigh any of the minor linguistic niceties offered by C#.

If I were you, I'd look to stick with Java for the time being. I doubt its market share will decline suddenly, which will give you plenty of time to take stock of where you are, where you want to go next, and what you need to do to get there.
BrotherBeal Send private email
Friday, June 20, 2008
thesshhhh... the sound I made when I pasted here!
Mr. Smith Send private email
Friday, June 20, 2008
The problem that Java has is that companies like IBM and Oracle use it as a lever to peddle outrageously overpriced suites of software and services.

The problem with .Net is that the languages are completely controlled by Microsoft, so you're committing your company to Microsoft for an extended period whether you realize it or not. Most of the time Microsoft is a good company to bet on, but they have their Vistas and VB issues too.

The whole Java vs. .Net argument is a great example of Microsoft wanting to control too much. If Visual Studio supported Java, lots of developers would be running it.

IMO a language is a language. Java wins in my book because you have a choice of implementations and a competitive tools market.
Duff Send private email
Friday, June 20, 2008

C# is an ECMA standard - just like C/C++, so anybody can produce a compiler for any platform for it. Java, on the other hand, is completely controlled by Sun.

Tied to Windows? I don't think so, for there are multiple projects that bring .net and c# to other platforms - Mono being the prime example.

IMHO, java will eventually loose a lot of ground for two reasons:
1) it's the slowest runtime and ide compared to others even on multicore machines with plenty of ram
2) some early language design decisions (like treating basic types differently from custom ones) haunt java right now and make some language improvements hard if not impossible. I'm still waiting to see java's version of LINQ.
Friday, June 20, 2008
"The problem that Java has is that companies like IBM and Oracle use it as a lever to peddle outrageously overpriced suites of software and services."

You're not paying that high price just for the software... You're also helping to pay for bug fixes, someone to talk too when you have a problem, future enhancements... 

Big companies don't value google searches as a means of support.  Big companies what a throat to grab when their business critical financial application has performance issues, fails, etc...

I think Java is ahead of .NET.  SOAP Exceptions, Schema Validation, Message Queueing were in Java years before .NET had them.  And from where I sit, Java tends to be the language of choice in large (fortune-5) corporations.

Don't worry to much about who's winning, however.  You'll always have work if you know .NET or Java!  What's just as important is the tools and frameworks that are available for Java and .NET... For example, Hibernate & NHibernate and knowing how to eek out performance with it.
Friday, June 20, 2008
Yes despite what people may say about Java I'll be sticking with it. I honestly have no problem with it and use it for my own projects. However I'll probably have to get up to speed on JEE. I've only briefly touched on JAXB which I'm guessing is only a small part of the enterprise stack.
silvermonkey Send private email
Saturday, June 21, 2008
Java is both a platform and a language.

I think its role as a platform for large companies to run enterprise systems is pretty firmly entrenched.

The language is OK.  There continue to be improvements that make Java code better (generics, autoboxing, new for loop sytax, annotations, etc).

The popular tools are arguably bloated and over-engineered.  Developing a web application in Java is particularly painful.  Lots of unnecessary structure, XML files to edit, leaky abstractions and anti-patterns.

Dealing with proprietary application servers and EJB' is also painful.

Terracotta is a promising development that should undermine the leverage of proprietary application server vendors.

JVM-based languages (Groovy, Scala) make for interesting possibilities (like Grails).  Java infrastructure code moves into the platform and a less verbose language can be used for scripting, web apps, etc.

So, it's not all doom and gloom.  Some interesting and promising things are happening with Java.
NPR Send private email
Saturday, June 21, 2008
Duff: "The problem with .Net is that the languages are completely controlled by Microsoft, so you're committing your company to Microsoft for an extended period whether you realize it or not."

I'd rather be 'committing my company' to Microsoft, who controls .NET than Sun who controls Java.

I think there is a good chance that Microsoft will still be around and strong in ten years time. Can you say the same thing about Sun? They have spent the last ten years clinging on by their fingernails. Surely, there won't be another decade of that.

I'm happy and content to say that I am committed to Microsoft. My business is creating web applications using ASP.NET (C#), SQL Server, IIS, etc.

Years ago I used to use Oracle on Unix (and VB for the client), because SQL Server was so useless in comparison. Now, I'm happy to specify SQL Server and haven't had any problem with it in years.
Odysseus Send private email
Sunday, June 22, 2008
@Odysseus -

My issue with Microsoft is that every product exists to sell and obfuscate the cost of other products in the MS ecosystem, so you end up making bad decisions because it's easier to do so. IBM shops did the same thing for years, customers got schnookered intobuying overpriced hardware and shitty software because the salesmen dropped by every six weeks anyway.

Most bigger companies are now spending over $300 for Microsoft's XP/Vista entitlement, CALs and Office on a $400 piece of hardware. In the server room, the people building or buying business systems and producing webpages that only work with IE6 or whatever tout the "low cost" of the solutions... nobody makes the connection that you're spending $300,000 for every 1,000 PCs every 3 years.
Duff Send private email
Sunday, June 22, 2008
Just try to build a comfortable experience in both Java and C#. Spend 2 years in Company X doing Java and 2 years in Company Y doing C# and you're insured. In the end, it all boils down to whether you want to use:-

1) Eclipse/NetBeans, JBoss/Tomcat/Websphere/Weblogic, JSP, Linux/Windows, MySQL/Oracle, Hibernate/EJB/Spring/Struts


2) Visual Studio, .NET, ASP.NET, IIS and SQLServer

to do web development...I prefer the former.

As for desktop development, Microsoft still wins hands-down.
Sunday, June 22, 2008
Spending $300 on software to run on a $400 PC does seem out of balance, at first sight. However, it is the software that makes that box useful.

Also, it is not always helpful to look at just the cost side of the equation. The added value needs to be considered too.

For the average office worker on say $50,000 (UK average salary), $300 every three years, as you state, gets lost in the rounding errors.

The true cost of IT for business is not the "Microsoft Tax", it is the people costs in supporting the business, from LAN support (1st, 2nd, 3rd line), to helpdesk, to developers creating business applications, business analysts, project managers, IT managers, architects, etc, etc.

Once you think about those costs, $100 a year is completely irrelevant.

That is why Microsoft can charge $300 for the software that runs on a $400 PC.

It is also why it is so hard for OSS "free" solutions to gain traction. When you consider all the real costs, who wants to go through the pain of upheaval, for a measly $100.

A good example is Open Office vs. MS Office. If it was an exact clone, so the support costs of changing would be zero per user, then it would make sense. But, you wouldn't need many calls to the helpdesk about formatting issues, printing problems, where is the widget option to annihilate any "savings".
Odysseus Send private email
Monday, June 23, 2008
> 1) it's the slowest runtime and ide compared to others
> even on multicore machines with plenty of ram

All IDEs are fast enough, don't be silly.

As for the runtime, care to cite a source?  Java is always near the top in the language shootout. 

C# doesn't even compete with Java in the large scale, high performance space; see Azul's 768 core Java appliance.
Hockey Player Send private email
Monday, June 23, 2008
"while it does sound stupid I don't know if I could bring myself to be coding exclusively on a Microsoft platform"

That is really stupid. You should be looking to get into the technology that has the best career potential. I don't know which technology that is, but you really do NOT want to gain 5 years of experience in a technology that then becomes discontinued. That's a big career killer.

My hunch is that .NET is a safe choice. Microsoft isn't going anywhere.
Grumpy .NET programmer
Friday, June 27, 2008

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz