Trouble Ahead for Java
Jeremy Geelan writes "The editor-in-chief of the world's largest journal devoted to Java wonders whether, with the arrival of Microsoft's C# programming language on the scene, Java perhaps has only 5 years or so left to live. Javaland has erupted! This is a little like Bill Gates wondering out loud whether to send Scott McNealy a Christmas card. But is Alan Williamson right? Read this short article and decide for yourself."
Java is popular because the programmers like it. Java may or may not be long for this world, but I can guarentee you that C# is not going to be what pushes it off the hill.
It's really a funny idea
Des
Give me a break. Java has over 1 million programmers (quoted off of the sun site) if not more in its user base. Its been embraced by more than one industry. It has APIs for everything from speach to distributed computing. What does C# have? Nothing yet but a BETA. Microsoft simply took java and modified it with some psuedo-new ideas and called it C#. Until they have the APIs and industry support, not to mention write once run anywhere, then, THEN perhaps they can start to challange Java. Until then, C# is nothing more than a new microsoft tool.
Microsoft's C# entry will only cause more competition in the market, and the consumers and programmers are the ones who will benefit. I'd love to see Sun loosen some of their restrictive Java liscensing practices in response to C#, and I think that is just what will happen. Open source wins the day yet again.
-atrowe: Card-carrying Mensa member. I have no toleranse for stupidity.
haven't they said something like this before?
the problem with C++ was that exactly zero of code was reused, even though it was supposed to be made simpler. Java code actually reuses itself pretty darn well, and last I checked J2EE library just keeps growing and growing, and largely its success is in that.
as for C#, i doubt anyone except Microsoft is interested in seeing more packages of it. it becomes pointless to have non-object code in C# if you are planning to devise a framework for other people to work with.
anyways, if Java only has five years life in it, why would you stake your life on C# of all things? wouldn't you expect that in five years people would be switching to something newer than the love-child of Java and Microsoft that didn't overtake its predecessor and hardly had any advantages except probably back-doors into the Windows kernel?
just my two cents...
I was thinking of how to intentionally fail my drug test... It would make a good memoir story someday.
I think you'll find even COBOL programs are still be developed commercially, so to say Java will be dead within 5 years is flamebait.
.Net via C# but I doubt even Microsoft think it will usurp Java itself.
.Net stategy (with C# a small part of their plan)
With C# Microsoft have taken ideas from Java, but C# is isn't Java.
C# is designed to kill of Visual J++, by migrating users to the
Sure Microsoft are trying their best to stifle Java, thats because they feel threatened like some sort of wounded animal.
Microsoft can't rely on Windows and Office anymore as being their core business longterm, hence their
Java probaly will die eventually, but I'm sure it won't be C# that does it.
Nowadays, it pays to always suspect propoganda first. The press isn't in the information business, it's in the money business.
I smell a rat when the editor of a bloody Java magazine sets the timetable of death for Java. He's either nuts, or he's bought. No other alternative.
Myth #6.
Despite the hoopla over Mono, its not likely that
Myth #7 Java needs the desktop to succeed
Not so. Java's greatest success to date has been on the server, powering servlets and
Myth #8.
Um, well yeah, as long as they are singly-inherited languages that don't have pointers and don't support any unique features, I guess that statement is true. Otherwise you are really looking at a bunch of languages whose features are the same and only differ by syntax(unless they don't support all of
Java is five years ahead in this game, has widespread corporate acceptance, and the deciding factor is the server, where Microsoft is still way behind. If this is a horse race, my money is on Java.
No, Thursday's out. How about never - is never good for you?
One example of the author's cluelessness is that he touts the Halcyon solution - which is implemented in Java. This is supposed to show Java's vulnerability how?
The rest of his "myths" are just as insightful..i.e. a bunch of crap. ;-)
Where was SWT in this discussion for instance? Where was the discussion regarding millions of Java-enabled devices in the marketplace? Where was the discussion of Javas total dominance in application servers right now (perhaps .Net will make a dent, but it remains to be seen).
Then the author gives forth with:
"We have a beautiful language here in Java; it has achieved industry-wide support and is pushing forward with great velocity. What can we do to support it?"
For a start, perhaps NOT writing clueless, FUD-filled articles that completely exaggerate the threat of C# to Java... Many, many Java users are going to be very slow to move to a Microsoft proprietary solution...and make no mistake about it, .Net is Microsoft proprietary. Only the C# language and the CLR runtime have been submitted to ECMA and those make up a tiny subset of .Nyet (sorry, couldn't resist doing that at least once!).
Galileo: "The Earth revolves around the Sun!"
Score: -1 100% Flamebait
Produced? Yes... supported? Maybe... I wonder what percentage of the Java code written in the last five years died with the series of dot com failures we've witnessed.
That said, of course you're correct: COBOL is still in use, and Java will last much longer than five years.
But the language of choice may be something else in five years. Java hasn't been around that long, and scads of people were saying it would never overtake C or C++ when it was first released. And really, C hadn't been around that long when Java was first introduced.
He looked at me and said, "Kid, we don't like your kind, and we're gonna send your fingerprints off to Washington."
IBM has done a LOT more for Java GUIs than Sun ever has IMO.
I installed the latest version of Eclipse and I was amazed at how fast the GUI ran. It is the first Java application that I've ran that didn't frustrate the hell out of me by running slowly. Sun should incorporate whatever GUI widgets IBM made into the next JDK.
"For a successful technology, honesty must take precedence over public relations for nature cannot be fooled." -Feynman
As a sideline observer, I have seen Java rise and CRASH. At more than 18 customer sites, Java was regarded as amateur. Java is a great cross platform language, but it never did fulfill it's promise of a THIN Solution to bandwidth problems.
Our company spent Millions coding in Java, only to replace it with Native C 2 years later. Guess what? 55% increase in speed, 45% reduction in size, and before you knock the programmers, they're completely competant.
I know of 2 companies who put their faith completely in Java, had a great product, but somehow corporations kept waiting and waiting til Java "matured" and these comanies both went bankrupt waiting.
-YoGrark
==The opinions expressed in this opinion are not necessarily based on fact, are not necessarily reprentative of the poster==
Canadian Bred with American Buttering
I started learning Java during the great Java hype (1997). Then I went back to school to learn C. My initial impression was, why would anyone want to program in this unweildy language where your executables crash with weird errors like "Segmentation Fault" and "Core Dumped". I did not like all that pointer crap and the fact that you hade to declare your variables before you did anything else.
... each have their own attractions and turn offs. C# is something I haven't approached yet. But like dating, it just broadens your outlook (not to mention the fact that it is fun).
Four years of college and several programming languages later Java is still my best girl. But I have learned to appreciate the beauty of C and its need to be a control freak in some cases.
To solve the debate, I am going to quote the words of one of my professors. "A programming language is a tool in a tool box". There are several things wrong with that analogy. I tend to think that a programming language is like a woman and learning one is like dating.
Im my 5 year 'dating' life I dated more languages than girls. Perl, Python, Tcl, C
There should be not be fear of a new programming language. It is the new girl in town. It is true that one has to be wary that C# is a Microsoft baby. If it turns out that you cannot use C# without paying MS big bucks and the returns are not justifiable there are always other alternatives to look to.
When I was a sophomore, I was scared when some senior started talking about C++. I thought, another language. Oh no. But once you have mastered the basics of what I referer to as the dating game, you can romance almost any girl. Even if it was the girl with red hair and pierced ears (Perl) or the one that you can't take your eyes off of (Scheme).
I hear Cobol programmers get paid fairly well these days. Why? Because there aren't that many of them. While I certainly do not believe Java will be killed off by C#, I do see the author making an good point.
He asks if Java is "here to stay." In the sense of whether it will remain dominant in the coming years, maybe. Maybe not.
-- Kircle
The problem with the Java Environment is the integration of the tools. Even beta 2 of .net I was amazed at the productivity gains. Even thou I hate the beast they do have very good tools. The tools will make the difference. They did in the early 90's with VB. People bitch about performance that is not the case. If you look at VB It had performance problems compared to C MFC apps but it was highly adopted because a lot of people could easily churn out code. Even people that should not ever write code.
.conf file and figuring out where my classpath is pointing too and why my servlet is not making its JDBC call the .Net guy has already deployed their app and is fetching XML records from SQL Server.
/Java person that can be as productive as a .NET / VB business analyst will cost a company more.
C# as a language does not matter it is very similar to java. It is about the tools and can you get a business analyst that churns out VB code who has never used a command line to adopt your environment.
Jbuilder is a nice IDE and ANT is nice for makes but while I am vi ing an apache
Which one will they adopt and why? A nerdy UNIX
I hope the beast does win but it is about the tools!!!! History repeats itself.
Well, if we're going by revenue:
Microsoft: $25,296M
Sun: $18,250M
IBM: $85,866M
So, with a little math (25296/18250) its actually 1.4 times smaller, while MS is 3.4 times smaller than IBM.
no comment
No disrespect intended at all but java lowered the benchmark. In the bad old days you need to know about different platforms, you needed to know how OSes and processors worked to be a really really good software engineer. Not that those skills are what define a programmer or what make someone useful in this industry but that's how it was. Java steps in and you don't need to know about hardware or anything like that to be an effective programmer. Plus it's insanely easy to do a lot of stuff, you can just churn out code that does the job correctly in it. Now it's going to take a super computer to run on and your apps are going to have a slightly different look and feel and there is this huge JRE image you have to transport with your apps but you can make apps faster and you can use people with less knowledge to do it and that's probably a lot more valuble than a few cycles and a few megabytes of RAM. (BTW, I've always felt that lowering the benchmark was my duty as a guy with the CS degrees and the knowledge about how all the low level stuff works, the job of us is to make it possible for non-computer people to do useful things with computers.) Java lowered that benchmark in a radical way and then heavy weights like IBM, Sun, and even MS at the beginning were touting it as the future, the new VB, the future of software.. There is a lot of legitimacy to using tools like that, it shouldn't take a genius to write most of the code that needs to be written. Java is an insanely good tool because it does lower the benchmark and it allows people to focus more on solving problems than bits and bytes.
Now that's a prime tool for followers to use, it's easy, it has support from big players. Lot's of the people who are in the java game are people who follow, not all of them but a lot of them. They saw that as the skill to put on the resume, plus it's easy and fun to use, so they move in and start coding up java. Now MS is trying to piss on their parade, java doesn't come with XP (big f---ing deal because anyone serious about java application development was only supporting a specific JDK or two anyways and you probably put it on the CD with your app, that how we do it at IBM and both IBM and Sun have pretty liberal licenses for redistributing their JREs) and they've got this great new C# technology that's just as easy and not too many people have been fired for picking MS solutions. That's another prime environment for the followers. Of course there will be people who flock to it. It's all FUD and hype but it works. The thing to recognize is that those people who moved to java and are going to move to C# will move to whatever the next thing is too, it's not like they're really loyal or something, as long as it's profitable to use and there isn't something more profitable they'll use something.
I think the reality is that a ton of code has been done in java and some of the big boys have committed enough that it's not going to be easy to move completely to C#. Java is going to die just like C and C++ did... oh wait. The fact that C# exists at all is proof of how good a tool the java is because MS is trying to knock it off and lock their followers in to their platform. It's also proof that these kinds of tools are needed and desired.
Java won't go away but I think there is a lot to be said for watching this tide of followers move. The Free software community can benefit from it largely. Maybe we build our own Java/C# for Linux and BSD. There are plenty of tools that already exist for it. I think you could make a standard distribution of Python with a select group of modules, document it, brand it, rally some support for it and you have something similar. If we want to start to really move over to that next level we should start trying to build that benchmark lowering tool for the opensource world. Simply copying or porting those kinds of tools is enough to give Linux and free software some a fair amount of credibility but to take it up a notch we should lead and create our own tools like that, the best you can do while Sun and MS are leading is suck hind tit, you still get some milk but you might not get your hunger satisfied.
Riding home on the train last week, I was listening to two "software guys" talk about the issue. The summary, "Wow! Microsoft! .NET! Java is dead." "Do you know any Java?" "Yeah I took a course."
The guy took one course as a "programmer" and is an instant expert. Microsoft LOVES the instant expert, and books devoted to the programming shaman are dedicated to stroke their egos before the technologies are publically released.
My point is that its not just the high end decision makers that M$ buys, but also the low end technoweenie.
(The conversation proceeded to Oracle is dead 'cause its over priced, SQLServer rules the world - at which point I wanted to YELL M$ IS PAGE RECORD LOCKING F**KHEAD - then I realized that saying that I'd likely get the same blank stare as my mother gives me when I talk computer talk.)
/\/\icro/\/\uncher
That is a matter of preference. You can easily provide very similar appearance for Java applications as well. Try to check Eclipse (the first example that came to mind, possibly because I use it every day :) - it uses a "launcher" which is seen by people as eclipse.exe file. The rest are plug-ins, which are .jars, though as an IDE user you couldn't care less about it. In other words, this Java application has the same appearance, as any .NET application. And though Java's method to achieve this is different from .NET's, "people percieving a platform" will not notice anything.
Actually, I'm not so sure I buy into this. From where I'm standing, it is still very hard to get clients updated quickly to the latest bleeding edge Java (no thanks to Microsoft's desktop dominance), so I don't see how Java is not moving as fast as it could be. Are you keeping track of all the specs and extensions they churn out? RMI, EJB, CORBA, JDBC, XML support, Servlets and JSP, JDO, Mail libraries, JNDI libraries, LDAP libraries, 3D graphics support, now they even have a serious Java Gaming push! Java seems to be moving very fast to me.
Just wanted to quote that because I wholeheartedly agree. C# is primarily a migration path for *MS developers* to step into a world which until now J2EE has been the sole citizen. Of course MS is going to hype it if it can detract from Java, but that's just extra. And frankly, I'd rather see MS software written in C#/CLR (which is actually a decent architecture, with security, etc.) than C and C++.
It's 10 PM. Do you know if you're un-American?
Well, i am on a win2k pro workstation right now. I have a highly modified distribution of RedHat 7.2 with latest stable kernel from kernel.org. I'm a Java developer (among other languages). I installed visual studio .NET the other day... and learned the language (syntax and some libraries) in a matter of hours... it's ALMOST exactly like Java, syntax wise. I thought it was cool beacuse the GUI type stuff was faster than Java's Swing/AWT stuff... but then realized, how often am i making GUI stuff in java?... never. o well. As i browsed through the API, i started noticing stuff for accessing the windows registry... i saw stuff for loading DLL's... I saw a multitude of other things that were specific to windows. Now i ask you, how the hell will they port .NET to *n?x (that's unix) based operating systems if a good portion (about 20%) of thier APIs are specific to windows? How is that cross compatible? And what god awful software am i going to have to install on my Linux box to make it ".NET compatible". Are they going to force me to install a "registry emulator"? I hardly see C# taking over java. For one thing, I can't imagine any UNIX admin allowing microsoft software to run on his servers... eh... who cares... I'll still write java code when i want to write quick and easy OO code.
Oh yeah, and my bigest concern about the whole .NET thing is this:
Everything compiled under .NET (C/C++, C#, VB, etc) is ran through the CLR, and will run the same speed, no matter what language it was writen in. I've heard you can compile "nativley" but you loose a huge percentage of the .NET APIs.
With that said, why would i ever use C++.NET? If i'm gunna spend time writing C++ code i want it to run natively!!!!
I'm not drunk, I'm just in touch with pi.