Trouble Ahead for Java 772
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."
Printable Version (Score:4, Informative)
Not likely :) (Score:2, Interesting)
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
Re:Not likely :) (Score:3, Insightful)
The actual concept of VB script isn't bad. A scripting language that can access nearly every application on an OS with minimal effort. IMO this has always been a weak point for windows, and a great strength for *nix.
Until recently VB was fairly shakey in when and if it would work. Furthermore not many power users knew about it. Furthermore those that did knew it sucked nuts. Plus it only works on windows....
Now. Replace that with a C derivative (granted, a long derivation) that could script word docs, and outlook calendars, user info, and databases seamlessly and interchangably from any client OS.
That would be a good thing (for windows, and for windows admins). It would help entrench windows in the corperate world, and boost one of it's weaknesses. Furthermore it could be something that PHB's would see as 'the next big thing'.
I could see C# pushing java off the hill if Microsoft includes it in everything *and* if it doesn't suck like Visual Basic *and* if it ran with (all, or practically all) of the functionality on non-ms OSes.
Re:Not likely :) (Score:3)
Sounds like a fantastic virus toolkit.
Re:Not likely :) (Score:4, Insightful)
Re:Not likely :) (Score:3, Informative)
Lisp OO systems are even more different, as they have no methods, but they deal with base types just fine. Instead of methods they have functions, with overloading similar to C++ -- except, unlike C++, all type checking and dispatching is done at runtime, not compiletime. In fact, this isn't that much different from other OO systems -- they all boil down to calling a normal function, where that function is determined by the type of one or more of the arguments.
The problem with Java is that it is statically typed. Whether dynamicism beyond static typing is necessary for OO is less clear, but Smalltalk is more dynamic than Java in more ways than just typing -- it also makes things like proxy classes very easy (also used heavily in Objective C). But that's just cool, I don't know if it's necessarily OO.
Re: (Score:2)
Re:Not likely :) (Score:5, Insightful)
I seriously doubt it. All major metrics such as adoption in companies, teaching in education, and adoption by programmers suggests it is continuously growing. Furthermore, the only potential competitor on the market is C# which, while not an inferior clone, is a clone. Jumping languages is a hard task. C# will capture the windows client development market and the microsoft people who never adopted Java in the first place. It is hard to see what will compell people already in the Java camp to move to C#.
The language is awkward and unexpressive; its main appeal seems to be in preventing stupid programmers from doing things their brains can't understand (like multiple inheritance). But we all know that you cannot prevent the programmer from writing bad code. OK, pointer safety and garbage collection is useful, but c'mon, practically every other language apart from C and C++ has this too, and C++ is pretty safe if you program it carefully and use the STL.
You can succesfully prevent coders from being stupid. The difference between C and Java is that you have to be an expert to write good C code; you have to be an expert to write bad Java code. What you want from a language is a language that maps well to architectural models so that your architects are making the decisions, not your immature and inexperienced code monkeys. Java is that language. C# is almost that language.
And the libraries: urgh. They all seem to be designed by committee and make QBASIC look elegant. The standard date library for example, or database access.
The libraries, in general, are actually quite well designed. Especially the database access API. The problem is, novice coders don't generally understand that there are things like non-western calendaring systems, multi-byte character sets, and alternate forms for displaying dates. These libraries make sure such novice programmers do not code a company into a box.
Java claims to be cross-platform, but it only does this by creating a whole new platform on top which has to be installed first. And the JDK is one of the least portable programs you'll find on a modern system. As for being vendor independent: don't make me laugh. Java is just as dependent on Sun as Windows is on Microsoft
There is no way to get cross-platform behavior without installing a virtual machine. Whether you call that VM a browser, an emulator, or a VM is irrelevant. And Java really has no dependence on Sun. It is much more dependent on IBM than Sun.
Java has succeeded because it solves real programming issues for large-scale software development.
Re:Not likely :) (Score:4, Insightful)
If I would metamoderate you I would say: unfair.
But the bullshit you wrote deserves a TROLL rating
I agree that Java is on the way out. The language is awkward and unexpressive;
As unexpressive as you can be with out templates (fixed in the next java releas, 1.5 will have templates) and without operator overloading(like using * for dereferencing iterators in STL).
the rest is C or C++, so why is it not expressive?
its main appeal seems to be in preventing stupid programmers from doing things their brains can't understand (like multiple inheritance).
a) how often did you use multiple inheritance?
b) are you sure it was the right thing to do in more than 50% of the cases?
c) you ever had a memory leak in C++?
d) you ever had a dangling pointer in C++?
Oh, I'm just asking, 4 things in Java can not happen
But we all know that you cannot prevent the programmer from writing bad code.
And what do you want to say with that? When you started programming you wrote perfect code from your first day I asume.
OK, pointer safety and garbage collection is useful, but c'mon, practically every other language apart from C and C++ has this too, and C++ is pretty safe if you program it carefully and use the STL.
So STL has a garbage collector? As well as Pascal has(other languages)?
But now it comes, the above is only sarcasm
And the libraries: urgh. They all seem to be designed by committee and make QBASIC look elegant. The standard date library for example, or database access.
Seems you have in depth Java programming experiance. And also QBASIC experiance. So in QBASIC it is more easy to acces a ODBC/JDBC/SQL data base than in Java JDBC(a API/library you claim is designed by commitee)?
I think only PHP and Perl are easyer in data base accessing than Java. Oops, I forgott SQL.
Java claims to be cross-platform, but it only does this by creating a whole new platform on top which has to be installed first.
And? is that a drawback or what? What does
What did the UCSD P-system? But more interesting: what would be your approach?
And the JDK is one of the least portable programs you'll find on a modern system.
This claim is very interesting as the only part of the JDK which is vendor or platform specific is the VM. The compiler and all tools are written in
As for being vendor independent: don't make me laugh. Java is just as dependent on Sun as Windows is on Microsoft. Even other people like IBM who have their own JVMs have to license the code from Sun.
What a laugh. IBM has licensed NOTHING from Sun, why should they?
Probably they have licensed the SUN standard libraries, why not? Much easyer then writing 32MB source code for your self.
The licence for J2EE seems to forbid using it for any purpose whatsoever: I don't know whether you have to 'purchase' the commercial version from Sun, but it can't be cheap.
I suggest two things:
a) reading the SUN licenses
b) downloading the stuff, its for free, as in beer.
Your customer can download it as well. And most stuff like JRE can be redistributed with your own stuff, for FREE. No special license required.
In fact Java is less vendor-neutral than Windows, since the Wine project seems to have done a better job of cloning the Win32 API than the various free Java projects have with the JDK and libraries. (Not to diss the work these projects have done: but there's just so much of it.
Well, you gave the reasons why FREE solutions failed so far. The point is: FREE is a political or ideological term. The free as in libre is simply not interesting for 90% of the java users. They only need free as in beer or free as in java community lisence.
And every new release brings another set of 'standard' APIs for which the only existing implementation is Sun's.)
Plain wrong: tomcat, JBoss, Jetty, Orion, BEA Web Logic, WebSphere, HPs XYZ, Sonys XYZ, Soniq MQ
Java has succeeded by marketing and not for technical reasons. Microsoft is better than Sun at marketing, so C# will win.
-- Ed Avis epa98@doc.ic.ac.uk
I disagree. As soon as you can call me with a mobile phone on which C# and
Regards,
angel'o'sphere
$10 prize (Score:2, Funny)
Control Freaks (Score:3, Insightful)
Re:Control Freaks (Score:2)
This is a Good Thing (Score:5, Interesting)
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.
Re:This is a Good Thing (Score:4, Insightful)
HUH? Sun has put a TON of resources into Java, gives it away freely ("costless"), provides *extensive* docs, and even lets you look at the full source. Java is an immense and diverse platform. Sun sells hardly *any* Java-based products (the only thing that comes to mind is the HotJava Bean which has been discontinued, and Forte, which there is already a free edition!)
Sun has no "services" they are trying to shove on people. They define everything as open specs, and then simply create a reference implementation that you can *choose* to use - next to being fully open source (and they've been making strides trying to be more open), there really isn't much *more* they could do for developers. I'm actually surprised that Sun is devoting this much energy to Java when there isn't much profit to be made from it, but it sure is great.
I don't see C# having anywhere near the community that Java has. Typically Microsoft communities are people who have comradery in being serfs. It's a lot different with Java.
Re:This is a Good Thing (Score:5, Insightful)
Maybe you should take a peek into the corporate world. Want to add SNMP functionality to your Java product? J. Random Hacker doesn't, but Q. Big Corporation often will, and the only way to do this is to fork out the moolah for Sun's JDMK [sun.com]. The cost? $10000 for one (1) developer seat and 50 runtime licenses [sun.com].
But Sun's basic strategy is to popularize Java (at a loss) and then sell Sun hardware for it (at a profit). The company I work for is almost entirely a Java shop. We make carrier-grade applications, and whenever possible we ask our customers to use Sun hardware, because that's what Java works best on. This is not a coincidence.
Cheers,
-j.
Re:You are misinformed (Score:3, Interesting)
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++.
Re:This is a Good Thing (Score:4, Insightful)
I really don't like MS more than anyone else but my limited knowledge of c# vs. java really seems to tell me that java programmers who decide for whatever reason to give c# an honest shot are going to love it.
I really like Java as a language but I never use it because it gives me no practical advanatage. I'm quite willing to spend lots of resources porting my c/c++ code to a million different platforms and testing it on those platforms if it means it's going to be really fast and my user's won't have to worry about installing and configuring Java and then having a program that runs slow as tar.
I'm really starting to hate Sun lately actually. I don't see them as any better than MS. They're just a big corporation trying to make their big cheif richer than he already is.
Java is an excellent language but since the actually design Sun has yet to produce anything of value.
They haven't done anything to help open source or any communities. They announced that Solaris was going to be open source (big deal. It's widely used but I don't know anyone who actually likes it). But they dropped that plan anyway.
They sure seem to be making good use of gnome but AFAIK they haven't made any contributions to the code (please correct me if I'm wrong).
And as you stated Java is getting more and more proprietary.
What we need is an open language that matches up to java and c#. Something free of patents and IP.
So hopefully MS will cause Sun to smarten up and loosen up Java a little. Then we may actually be able to see what it's really capable of.
--
Garett
Re:This is a Good Thing (Score:5, Funny)
Perl 6 [perl.org] is what I bet on.
Greedy? (Score:2)
I'd like to know how much time and millions of dollars Sun has spent developing this free language, with a wonderful API, and plenty of source code available, before I start calling them "greedy."
If anyone's greedy here in this context, I sure as hell don't think it's Sun. Shit, they could make Java proprietary today, closing off all source access, requiring people to buy the JDK, etc... and it would still be popular, and you'd still have all their current and older Java-related stuff available for free.
Re:This is a Good Thing (Score:2)
Nope, it was '95. Sun's Java press releases [sun.com] only go back to '95 and a read through the ones that are there point to a Spring 1995 release date. I also remember using the second Alpha JDK around the end of Spring 1995.
Cobol is still in demand. (Score:5, Insightful)
But as the article says it really doesn't help when people who should know better say "Java? No one is doing that now. Microsoft is no longer supporting it."
Gates has a lot to answer for.
Re:Cobol is still in demand. (Score:4, Interesting)
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.
wow, you must have interesting time sense (Score:4, Insightful)
Re:Cobol is still in demand. (Score:2, Interesting)
He asks if Java is "here to stay." In the sense of whether it will remain dominant in the coming years, maybe. Maybe not.
Java...dead from C#? (Score:4, Insightful)
Forget the fact that there's a Linux movement to port it, I don't trust the company behind the product - they'll add new features to the JVM and break with all the other JVMs. And I don't think that anyone who actually wants portability thinks that Microsoft is committed to portability.
I won't trust Microsoft until they've had five years or so of good behavior, and they haven't had one yet. Based on this, products that require portability - such as
.NET runs on FreeBSD and WinXP already. (Score:3, Interesting)
Normally I'd agree with you but considering that some of us at MSFT get along with the Mono folks [kuro5hin.org] and that MSFT has released a version of the CLI that runs on FreeBSD and Windows [kuro5hin.org] with source. I'm not sure your claim is valid.
Disclaimer: This post reflects my opinions only and does not reflect the intentions, opinions, strategies or plans of my employer.
Re:.NET runs on FreeBSD and WinXP already. (Score:3, Insightful)
two platforms != portable (Score:3, Insightful)
The problem here is that since Microsoft makes both platforms and applications they have no incentive to make their apps work on other platforms. It is nearly impossible to trust them to support other platforms because it actually isn't in their best interest. Why would they want to reduce dependency on some of their biggest selling products?
Re:.NET runs on FreeBSD and WinXP already. (Score:5, Insightful)
Knowing this well-earned reputation, for luring then abandoning Java developers, for sullying the Java marketplace [com.com], I'm going to wait a bit before getting next to seahash and dotnet, especially in the Unix context.
Why should Microsoft treat Unix developers to concurrent, product-lifetime updates of dotnet when its stated goal is the decimation of Unix? (y'know, NOISE? Netscape, Oracle, IBM, Sun and Everybody else.)
BSD is no different than Linux from M$FT's perspective. With that, I'm taking bets from all comers: I'll pay 3-to-1 that Microsoft abandons all its Unix implementations within two years, 4-to-1 that it develops a strategy which breaks compatibility with non-Windows dotnet implementations.
Re:Java...dead from C#? (Score:2, Insightful)
I think that the way M$ has been able to beat everyone is to get people to play their game. Take OS/2.It was not a better "Windows" than "Windows" when Microsoft changed their API. They will do the same thing to C#. Guess where all those C# based platforms are going to be moving to? They will move over to a platform that "supports real C#".
This is why Linux/BSDs have done so well, they refuse to be "gamed" by Microsoft.
Re:Java...dead from C#? WATCH THOSE MS PATENTS (Score:5, Insightful)
You can't stop a bulldozer with a pitchfork and you can't stop a monopoly with a piece of paper/license.
By the way, there is patented material in those
The standards org they released it to allows this.
BE WARNED, MICROSOFT DOES NOT DO ANYTHING FOR THE GOOD OF DEVELOPERS OR BUSINESS. IT DOES IT TO PROTECT IS MONOPOLY.
LoB
Re:Java...dead from C#? (Score:2)
CLR is the runtime for
ummm... heard this before... (Score:4, Interesting)
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...
Re:ummm... heard this before... (Score:2)
bull.
I won't get into a JAVA/C++ debate, but please don't go off spouting crap like that, and try to understand that which you speak out against. You make yourself out to be a damn fool.
A damn fool, is the worse kind.
I'm no expert, but... (Score:2)
Cheers,
Ethelred [grantham.de]
Re:I'm no expert, but... (Score:2)
C//
Really light article (Score:3, Insightful)
It basically is saying that since Microsoft doesn't support Java, Java will die. I'd like to hope that's not the case. Java has some things
As an example, I just started working with JavaMail a few days ago. Within 20 minutes I was reading emails and sending them. Talk about productive!
The only thing for me that
Re:Really light article (Score:2)
Careful, there.
C//
Like Cobol is dead... (Score:2)
I'm amazed at the amount of OS/2 crap that I still see, and OS/2 has supposedly been dead for years.
Somewhat premature (Score:2, Interesting)
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.
server seems to be dying (Score:3, Informative)
There May Be Trouble Ahead
by Alan Williamson
As Nat King Cole famously sang, we have to "face the music and dance..." This month's editorial is coming to you with a reader beware warning!
I've been engaged in some great debates over the last month on a variety of topics, but the one that has caught my interest is the old chestnut regarding the longevity of Java. Is it here to stay? If not, how long do we have? Quite rightly, it's being talked about and I've had the good fortune to brush shoulders with a number of big names in our industry who have given me their perspectives on the whole debate. I have my own feelings about where Java is headed and I do believe that if, as a community, we don't get our act together, we may have only five years left at the most. After talking to my counterparts, it would appear I'm being overly generous with five years.
What's happening? Well, it's our old friend C# and its relentless march toward the development community. Setting aside the old argument that due to Microsoft's dominance it may well win the day, it's interesting to look at other reasons why C# may win the battle. Let's blow away some misconceptions that you may or may not be aware of regarding this new kid.
Myth #1: C# is a Windows-only technology. .NET services alongside Apache on a Redhat box, seamlessly integrating into the rest of the network. This alone would be a major blow to server-side Java. It's also a subtle way for Microsoft to unofficially support the growing number of Linux seats without losing face (read www.halcyonsoft.com/news/iNET_PR.asp [halcyonsoft.com]).
You could be excused for believing that, but did you know there's a major movement in the open source world to port the CLR (Common Language Runtime, i.e., their JVM!) to operating systems other than MS Windows? Linux, to name one. Imagine for a moment being able to run your
Myth #2: C# is an inferior Java clone.
This is the most dangerous one and the one you probably tell yourself in order to keep the scales tipped in Java's favor. The truth is, it's not an inferior clone; it's a different clone, with many arguing that the differences are minute to the majority of the developer community. It will be frighteningly easy for Java developers to move over to C# with no real headaches to contend with. I suspect this was always on Microsoft's mind when developing the language (read www.prism.gatech.edu/~gte855q/CsharpVsJava.html [gatech.edu]).
Myth #3: C# is for developing Web services only.
Most definitely not, and I have heard this one retorted back to me on a number of occasions. Ironically, this is the one area that could really hurt Java Ð on the client. As you know, Java has not made any significant headway in this space due mainly to its awfully slow Swing implementation. While the recent release of JDK1.4 has brought significant performance gains, it's still nowhere near the speed of its native Windows applications with respect to fast, snappy responses (although it must be said, the speed of a Swing application on a Mac OS-X does show what could be achieved). C# is the new building block for Windows applications, the next VB! And we know how many applications popped up when VB hit the market (read www.c-sharpcorner.com/WinForms.asp [c-sharpcorner.com]).
Okay, how many of you think I've abandoned all hope for Java and have gone to the dark side? I suspect some of you are questioning my loyalties at this precise moment, wondering if I'm fit to occupy my role as EIC. Well, don't panic, I'm merely being a realist and looking at it from all angles. You'd be the first ones to complain if I buried my head in the sand and just ignored the threat. We have to look at this together and come up with a strategy that will enable us to effectively take on C#. We'll be getting a lot of heat from all over and we need to be armed with the information and prepared to go back to the drawing board and reeducate the masses. Sadly, they are being led a merry dance by Pied Piper Gates.
Allow me to cite you an example of such blind ignorance and if this doesn't scare you, then I don't know what will. I was recently involved with the Scottish government, discussing technology and what have you, where naturally the topic of Microsoft was high on the agenda. Excusing the fact that these people took a certain pride in believing they knew what was going on and loved name-dropping, the phrase that caught me off guard was the following: "Java? No one is doing that now. Microsoft is no longer supporting it."
Wow! Talk about a major miscommunication. And this from someone who controls budgets for the technology sector in Scotland. Ironically, I believe he really thinks he has his finger on the pulse of technology. It's sheer ignorance like this that scares me the most. Microsoft has successfully planted and nurtured the seed in people's heads that just because it isn't supporting Java in Windows XP, Java is dead. I have to admit I was taken aback and quite flabbergasted when I heard that retort. I really didn't know where to go with that. So much background information was obviously missing that I wasn't too sure if I would come over as patronizing and whether, ultimately, they would understand.
Sadly, this is not an isolated incident. Ever since I started writing about this topic in my editorials, I've been hearing stories from you regarding similar misconceptions and it scares me. 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?
You do realize we need an anthem. All great causes have an anthem. Something for us to get behind and sing!!! Suggestions gratefully received. We need a Java song!
Until next month...
Author Bio
Alan Williamson is editor-in-chief of Java Developer's Journal. During the day he holds the post of chief technical officer at n-ary (consulting) Ltd, one of the first companies in the UK to specialize in Java at the server side. Rumor has it he welcomes all suggestions and comments.
Didn't they say this about Java and C++ (Score:2, Insightful)
It seems like we here this a lot. Now that we have language X, no one will program in language Y anymore. Time after time, this proves to be incorrect. There are many reasons to stay with an old language, even if a better one has come along. This includes finding programmers who have the requisite years of experience, the added development cost of doing multi-language development, programmer preference, etc.
C# will definitely become a major player in the field. Both due to the fact that it is a well reasonably well designed language (Anders Hejlsberg did a good job) and that Microsoft is going to put its weight behind it. But just because C# becomes big, doesn't mean that Java will disappear.
Valid points, not conclusion (Score:5, Insightful)
But the key thing not mentioned is the fact that Big Blue and the rest of the industry is quite determined on Java. Sure, IBM and Microsoft [slashdot.org] are working together on Web Services, but I think IBM is unlikely to start supporting
Java has shortcomings, but it has become a success despite this, and due to a vast support from professionals ranging from programmers to computer scientists. To say that all this will be gone in 5 years is more than bold, when in fact the amount of existing Java code are probably more than can be replaced in 5 years.
Of course, languages and platforms come and go, but since C# doesn't drastically change the way application development is done - which is what Java did, in several ways - I don't think it'll start a revolution in the way that the article suggests.
Heck Yes! (Score:3, Insightful)
C# really is a standard. Microsoft's decision to go the standards route really validates the competitive advantage true open standards generate.
The HUGE question is if Microsoft will try and pull some patent / IP protection / royalty stunt with C#. We need to have some lawyer go over the C# license, standards doc, patent agreement to see if Microsoft has given up it's rights to sue for patent infrignment if people develop competing implementations.
My feeling is that if it becomes clear that C# is a truely open standard, that it will be suprisingly succesfull. Despite what Java zealots like to claim, the underlying technology is good. And while I initially was a member of the Java lobby, their eternal harping on the "eventual" standardization of Java turned me off. Java is not an open standard, and for an underlying technology that every company can feel comfortable going with (including Microsoft) that fact is problamatic. And Sun has already pulled a couple of students with Java and royalties on the enterprise level etc. We're getting competing implementations already with go-mono.net for C#.
The problem Microsoft faces is that they really need to totally convince folks (aka with binding legal agreements) that they are making this a real open standard and aren't going to pull a patent protection bogosity on anyone. They face in this case the facts of their history, which is horrible. I'm frankly concerned a bit less about the embrace and extend side of things, though it would be nice if they didn't pull stunts in that area either.
Anyways, if Microsoft does it well, C# could really take off. The key is schools. Java is the it language now, and that matters more than people think. If you start with java you become familiar with Java IDE's, you become familiar with other Java projects, and when the time comes to whip up your first website you'll pick java which means when you deceide to make a big website, you'll probably choose Java as well. People will choose whats comfortable, not what is necessarily technically superior and the decisive moment for comfort is what you are forced to learn in high school and college.
XP quote and more (Score:4, Insightful)
I don't think MS had much to do with it. Sun and a seemingly large segment of the Java community and many industry pundits made a big stink about XP not including Java. I don't recall MS saying much one way or the other except saying you could download a JVM from their site. The Java community themselves planted this seed of doubt.
"As you know, Java has not made any significant headway in this space due mainly to its awfully slow Swing implementation. While the recent release of JDK1.4 has brought significant performance gains, it's still nowhere near the speed of its native Windows applications with respect to fast, snappy responses"
I'm not going to say Sun should open source Java, but for heaven's sake, make a GUI toolkit that doesn't suck. You can't cite Java's 'newness' as an excuse anymore.
However little you think of VB (especially VBScript) MS has provided a huge number of tools to make development easy and painless - and the results are often decent. I remember being able to put together *simple* VB data collection forms back in 94-95 without having too much idea what the hell I was actually doing. There STILL nothing like that for Java. - Go ahead, flame away. I'm not a hardcore Java guy, but someone else here at the office is, and we constantly see shortcomings. That's not to say there's not strengths too, but still shortcomings. Open sourcing Java *MIGHT* help overcome many of those shortcomings (especially in the GUI toolkit area).
I keep repeating this on various boards - if Sun was serious about getting Java to the masses, they'd carpet bomb the hell out of the US with CDs ala AOL with the latest JVM for multiple platforms. That they DON'T do this speaks volumes. Better yet - get AOL to bundle it on their CDs and have an installer with lots of nice Java packages - an 'intro to Java' for the common man. Explain the cross-platform benefits, etc. - something my mom could understand.
Re:XP quote and more (Score:3, Interesting)
I installed the latest version of Eclipse [eclipse.org] 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.
Re:XP quote and more (Score:3, Insightful)
Try SWT, it run circles around AWT/Swing. Sure it breaks platform independence to a degree; you'll have to distribute the appropriate dll/so along with your app, but who cares? That is a very small price to pay for a good java GUI.
API javadoc [eclipse.org]
-tim
Re:XP quote and more (Score:2)
I love hearing this argument. Yeah Java's AWT is somewhat heavyweight. But it is old, it's been around since JDK 1.0. JDK 1.2 Swing still has a ways to go but has made some significant improvements. However the problem that people neglect is that these Windowing toolkits are cross platform. I guarantee that my Java applications will out perform your VB, with the exception on Win32, on every other platform. Java gives people choice of where you can run those applications.
However with the advent of
Re:XP quote and more (Score:2)
That's right - when you can't compete, leave the arena.
I'd guarantee my QT app (or wxwindows, or even GTK) would run circles around your Java Swing app and run on multiple platforms.
soon you will see more
OK - "soon". I was thinking 2 years ago when I heard 'soon' back then too. JAVA IS NOT NEW. Sun needs to have delivered stuff years ago. They can't get out of promise mode. The guy below was right - IBM has done more for Java than Sun *ever* has, except for write API definitions.
Re:XP quote and more (Score:3, Insightful)
Actually, AOL spent billions of dollars shipping out the CD's, and they had a way to quickly make money off them: charge $x for dial-up access.
Sun could spend billions of dollars shipping out Java CD's, but how will they make money from this platform? There are three ways: 1) make money from licensing the platform implementation (i.e. like a Windows license fee) 2) make money from add-on software (i.e. like Office over windows) 3) make money from hardware.
The thing is, they can't make money from #1 they've already licensed JVM's for dirt cheap. Spending billions won't give them any real advantage over IBM or Dell on #3. That is one reason why Sun is losing marketshare to both.
Then there is #2. But this doesn't make sense unless Sun already has software that people are willing to spend money on.
And since their blitz campaign will cost billions, they better have software that people will spend billions on.
They just don't have this. That's why they don't blitz.
Re:XP quote and more (Score:2)
The problem is its hard to get people to adopt these other toolkits with Sun standing firmly behind Swing, which as the article mentioned is almost so slow as to be unusable on every Java implementation except the OS X one.
Re:XP quote and more (Score:3, Informative)
Re:XP quote and more (Score:3, Insightful)
Yeah, as a result VB is the number one favorite coding vehicle for worm and virus writers. Great recommendation BTW. WHen is VB gign to be open-soruce along with all the tied-in Windows APIs? (never of course). LOL
I keep repeating this on various boards - if Sun was serious about getting Java to the masses, they'd carpet bomb the hell out of the US with CDs ala AOL with the latest JVM for multiple platforms. That they DON'T do this speaks volumes. Better yet - get AOL to bundle it on their CDs and have an installer with lots of nice Java packages - an 'intro to Java' for the common man. Explain the cross-platform benefits, etc. - something my mom could understand.
Yeah right. That's how C, C++ and Lisp became popular huh? Lame.
Anyone notice the rapid incrase of M$ supporters on
Sounds like a big deal to me... (Score:3, Insightful)
Yeah, but the friggen Java download is 6 MB's! (So I've heard.) That's nothing for corporate users on broadband connections, but when you're trying to appeal to Joe Consumer surfing the web with his modem at home, with an attention span of maybe 20 seconds, he's not going to be patient enough to sit through a 30 minute download just so he can view your site. More than likely, he's gonna keep on surfing.
If broadband had 80% saturation with consumers, then maybe it wouldn't be a big deal. But I'd bet large amounts of money that this is Micros~1's plan, to push Java into irrelevancy by making it difficult to use. They couldn't own it via their embrace and extend strategy, so they're attacking it by slieghting it.
Karma mirror (Score:3, Informative)
JAVA Rules (Score:2)
As a CS major, i've used quite a variety of programming languages. Among those, Java is by far the smoothest, easiest to understand and most elegant.
C is outdated, C++ is the standard and is much more refined than C, but still has it's quirks and rough edges.
Java offers very well documented classes and easy ways to do EVERYTHING. This alone makes Java superior, but also, Java enforces object orientation. While some people don't like this about a language(especially when you want to just write a 3 or 4 line mini-app), most people won't argue that once you have learned what classes, objects and methods are, OO makes things SO much easier to understand. It's a lot nicer way to think.
C# will never replace Java, it's just too cool.
Re: (Score:3, Insightful)
Myths #6, #7, #8 (Score:3, Interesting)
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.
Re:Myths #6, #7, #8 (Score:2, Informative)
Try looking at the language spec for C# before you make comments like this. If you mark your code as unsafe, you can use all the pointers you like...you can create stack-arrays...just about anything you want.
Re:Myths #6, #7, #8 (Score:2)
The point was - the whole thing about .Net supporting multiple languages is a farce. Whatever language you use has to interface with the CLR. .Net's "multiple languages" are really the same language with different syntax. I predict we will soon see several language translators for the different languages for .net. They will not be very hard to write.
While I'm at it, allow me to predict that the one language .Net will kill is Visual Basic. You can't easily port a VB6 project to .net - it takes a significant rewrite. Microsoft basically screwed over their own developers and sabotaged the most popular programming language in the world.
What C# gives you that Java does not: (Score:3)
Microsoft benefits in two big ways: the hoards of Windows application developers will make the switch from Visual C++ to C#.NET, because of C#'s incredible versitility and cross-platform capabilities. Non-Windows developers (both C++ and Java) will start using C#, because it can do everything that C++ and Java could do, with the added bonus of being very Windows-friendly. Microsoft's third-party developer base expands. They gain further entry into the internet services world that they very much want to take over.
Interestingly enough, as good as this is for Microsoft, C# and .NET may (perhaps) be a blessing in general to the world of computing by introducing the first *truly* write-once-run-anywhere development platform.
Java will outlive C# (Score:5, Interesting)
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!).
Re:Java will outlive C# (Score:2)
Coupled with a native compiler like gcj or JET [excelsior-usa.com](free for personal use) and you have a winning combination. I pulled together a quick SWT app that was running IE inside of it (using SWT's Window binding which includes OLE) and compiled it native. It took about 12 lines of code to do this and it started up and ran very fast.
-tim
Re:no-GUI == platform-neutral ? (Score:3, Insightful)
Incliding Java (Score:2)
Not a chance. (Score:2)
Not a chance that Java will die in 5 years. The author is completely out of his mind. He cites some myths and things that for the most part well thought out an argued but this one get me to the most...
Allow me to cite you an example of such blind ignorance and if this doesn't scare you, then I don't know what will. I was recently involved with the Scottish government, discussing technology and what have you, where naturally the topic of Microsoft was high on the agenda. Excusing the fact that these people took a certain pride in believing they knew what was going on and loved name-dropping, the phrase that caught me off guard was the following: "Java? No one is doing that now. Microsoft is no longer supporting it."
The fact that some guy in government technology doesn't think that a language is being used doesn't mean a thing.
Thats about the same thing as hearing somebody in a pro-ms shop tell me that apache is dead because it isn't supported by microsoft. It's total bull. There are some many markets out there for all different languages, and platforms...
Java has so much going for it. From J2EE (EJB et al) all the way down to J2ME for embedded devices. Java is a very, very powerful language and the J2EE platform is very, very powerful.
Not to mention support from Sun, IBM, HP, Rational, Intel etc... Java is huge. De-throwning something with the size and velocity of Java is not going to be an easy task. MS may have there way with the hoards of VB developers and the windows platform. But for Enterprise level development and integration (read: where the money is), Java is not going away anytime soon....
-ryanLanguage Fundamentalism (Score:5, Interesting)
C# is here, so Java will go away.
Java is here, so C will go away.
This has nothing to do with real programming, real programmers and how they behave. This is all hype generated by the marketing departments of corporations that are attempting to capture market share with proprietary languages.
Myself, I've programmed in Basic, Pascal, Forth, C, Perl, PHP, Java, a couple flavors of assembly language
When I learned C back around 1987, it wasn't because Pascal was going to disappear off the face of the earth and I felt some kind of aching need to jump to the Next Big Thing. C was popular because it was a structured programming language that ran fast and offered much of the flexibility of machine code. I still like C
I just do not understand this desire a lot of people seem to have to know that they're programming in the One True Language. WHY? Do they want to be sure they're wearing the right O'Reilly Conference T-shirt when they leave the house tomorrow morning, so they won't be laughed at by their peers?
On the other hand, it does make some sense for the editor of a Java magazine to get fidgety when he hears about competitors to Java. It's his job, after all.
Re:Language Fundamentalism (Score:5, Insightful)
Its just human nature, and not restricted to programming...I've seen tons of XBOX vs PS2 vs GameCube flamewars where people suggest those who dont buy the console they own are morons for half-baked reasons X, Y and Z...And that's just one example..the IBM/MAC debate was similar (when the Mac had enough marketshare that the debate made sense) as was the Amiga/Atari ST, C64/Apple II, etc... And its not even limited to computer users..Plenty, you see the same thing with car owners, audiophiles, etc...
And of course then there's the mother of them all, religions. Its just human nature to draw lines of division and to label those 'not with us as against us'.
Re:Language Fundamentalism (Score:3, Insightful)
Corporations are tired of Java (Score:2, Interesting)
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==
Too bad you can't moderate the main message! (Score:2)
-1 Troll
C//
Beyond the Java vs. Anything debate (Score:3, Interesting)
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).
Re:Beyond the Java vs. Anything debate (Score:4, Funny)
Don't date that C# slut! Next thing you know, she'll be knocked up, and you'll be gettin' married whether you love her or not, because Bill Gates will be pointing a shotgun at your back.
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.
Just try to leave her, and Bill will hunt you down. Stay away from her - she's trouble!
5 years? Sigh. More pundits "killing" more things (Score:2)
Java seems to be in the damned near forever category. There is a lot to recommend it, but, more importantly, there is already a lot of java code out in corporate infrastructures and corporations don't like to rewrite from the ground up.
That's not to say java won't shrink in terms of overall importance. That seems a likely outcome of more competition, especially given the poor experiences many people have had trying to implement java-based solutions.
C# is only one -- though a signficant one. Off in the weeds, python use is slowly growing, and python can fill many of the same purposes served by java. With Mozilla finally biting the bullet and declaring an API-frozen 1.0, some of its tools might also find a spot.
Java is like every other technology that ever existed: sooner or later something or some things come along to displace it. Not kill it necessarily, but displace it.
Song (Score:2)
Well, another song product, Open Firmware, has a song [sun.com] (though it's not a programming language... but it does use Forth!)
a quote (Score:2)
Java has some really nice features but I find it more useful in the learning situation. In real life I found C and C++ much more useful.
It Java DEAD? (Score:2)
Absolutely!
But then, so is Unix. NT is going to absolutely destroy it.
It's the tools (Score:2, Troll)
.NET isn't bundled with XP (Score:2)
Why .net will really win over java (Score:5, Insightful)
Re:Why .net will really win over java (Score:2, Funny)
".CLASS" files sound pretty classy, so I think I'll stick with Java.
It is about the development Environment and tools (Score:2, Interesting)
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.
Why care? (Score:2, Insightful)
Bottom line Java isn't going to go away, if you like it keep using it. You will have plenty of work for years to come. C#/J# (they all compile down to CRL anyway) are new and cool and people will use them.
Be happy, you got Java because Sun thought they had a better tool than C++ with MFC or OWL or whatever library. MS has upped the ante in order to compete and came out with the CLR and C# and other languages CLR will support. Now its Sun's or anyone elses turn to come out with something better. It called evolution and we all benefit from it.
If that bothers you... (Score:2)
I'm serious.
I'm beginning to think... (Score:5, Informative)
By Way Of Example: This article, the strangely prophesied Unix Isn't Dead [slashdot.org], and this booster [slashdot.org] for the next version of Windows.
Although I might be paranoid to wonder about this, it would be a pretty impressive use of grassroots resources. It seems like what they're doing is writing articles that cast doubt on the official Microsoft position. These articles naturally become (in a free spirited discussion site) a thread with some people defending MS and some people attacking it, which provides an excellent position for posting Microsoft's stronger arguments which then reach open-minded developers.
Anyways, it's an amusing thought. :)
Re:Operating Systems That Are DYING! (Score:2)
Re:Yuck (Score:2, Informative)
Re:Personally who cares? (Score:2, Insightful)
I'm a Java developer, and I know quite a few other Java developers and none of us develop applets. It's all server-side application programming or desktop application programming.
Both these languages are nice general purpose tools for getting all sorts of things done, not just doing lame Javaduke animations in your browser.
So, fine, turn it off in your browser
Re:Personally who cares? (Score:2)
FYI C# is a language NOT a runtime. You cannot "Turn off" C# any more than you could "Turn off" C or C++ on your computer. You're probably confused because "Java" is a language AND a runtime. When you say your turning off Java, you mean your disabling the Java runtime environment.
Re:Why He Might Be Right (Score:2, Informative)
Maybe you mean to native code, but, well... what do you think gcj does?
I love how whenever slashdot posts a Java story all the morons seem to want to post first...
Re:Or not (Score:2)
C# is new, and so it has a less established user base. Never assume that that means it will be a smaller user base for long.
Re:Or not (Score:3, Insightful)
In 1995 Java had substantial advantages over the then-dominant languages. Today I see no compelling reasons for Java developers to jump ship to C#/.NET (and one big reason not to).
Re:Or not (Score:4, Funny)
Excluding spell checking APIs, that is
Not a beta, -1 wrong (Score:5, Informative)
You can get a copy of the source to a CLI implementation which also includes a C# compiler that can run on XP and FreeBSD, here [microsoft.com].
From the link:
-c
Re:Or not (Score:3, Informative)
Re:Or not (Score:2, Interesting)
API's? I think you forget Microsoft is a huge company. What's to stop you from using the Microsoft Speech component from C#? Nothing. In fact, C# is meant to take advantage of exisiting components. And though Java zealots hate to admit it, that means that there are more than zero API's that C# can use.
Every time a read a Java zealots arguments I'm struck by how FACTUALLY wrong they are, and how STUPID they like to think Microsoft is. You call C# a bet.
Visual Studio
The point of the article is that Java zealots like to ignore the facts, and that that may come back to bite them. I think your note proves the point.
Re:Or not (Score:2, Insightful)
Also people are saying 'When Microsoft's API is as big as Javas...etc.'
The size of the API doesn't matter as much as you think. Microsoft achieves the same stuff, from j2ee capabilities down through graphics, mathematics, etc on a full api. It also supports checked and unchecked arithmetic, as well as automatic marshalling between primitive and object types (no more of that Double() and Integer() bullcrap)
Thats why Java should be scared, and that's why Java really needs to update their bytecode to make it more optimizable from an algorithims standpoint. If they dont they will be hurting.
Re:Java vs C# (Score:3, Informative)
there are lots of jobs that don't require MS, granted there are more that do, but its not absolute.
Re:Where are the apps (Score:2)
Because if we didn't mess with it, we'd be programming with 8 switches on an Altair. Also, how would Freenet be more useful if it were written in C? You just state this and then go on to your argument that if something works it should under no circumstances be improved upon. Does C have some magical functionality that remains wholly unavailable in Java?
Re:Not likely (Score:4, Insightful)
Some of us prefer to code in whatever language keeps us employed. Idealism is a lot of fun until all your friends are getting laid off, and you can go with them or start learning Visual Crap++.
Maybe next time I will have to learn Visual Crap#