Sun is still seeking ways to ensure that it remains relevant — and not only in terms of quantity of users, developers and applications. “What’s good about the model that exists now is that Sun, being the custodian, enforces compatibility,” says IDC analyst Stephen Hendrick.
Sun seems only interested in the server world. They really don’t care if Java is unsuited to running desktop products. Microsoft is going after both desktop and server developers with .Net
Personally I’d like to see Sun offer a vm that doesn’t make slow miserable applications. Given the incompatibilities between various Java releases, what would be so bad about releasing a “Java Lite” that is blazingly fast for desktop users and developers
As it stands, .Net apps load faster and look better. OK, you may argue that the 2% of desktops that don’t have Windows will never benefit from this but I’d argue that if 98% of desktop users prefer .Net apps, Java will simply die of neglect on both desktop AND server.
Quote: “Sun, being the custodian, enforces compatibility” – LOL. Clearly this poor man has read the brochure but never actually used Java. Each new version of the VM breaks existing apps.
“Each new version of the VM breaks existing apps.”
That happens with every language. I would like to add though that I have a Java client/server application that was coded in the 1.1 years and still runs without hitch.
The article questions whether Sun will ever able to make Java a profit center for the company. My question is whether Sun can ever have a ROI from Java. I doubt it.
McNealy
Java is heavily used in mission critical, real world applications. A *lot* of developers are making big money writing Java code, and are having fun doing it. Whenever Java is successful on the average “31337 windows user” desktop is irrelevant; after all, these people use IE, send out hundreds of e-mail viruses a day, and do nothing but play games. They are not at the forefront of technology and will always be happy with whatever scraps Microsoft throws them.
From http://en.wikipedia.org/wiki/.NET#Standardization_and_Open_Source “Microsoft has submitted a part of the specifications of .NET to ECMA and ISO for standardization. This is a calculated risk, but it may encourage standards-compliant implementations, to provide an ongoing bridge for non-Windows software to be converted to Microsoft .NET.
An open source implementation of the .NET architecture is in progress. It is targeted at UNIX/Linux variants. It has been dubbed Mono, and development is sponsored by Ximian which is now part of Novell. There is also another Linux implementation of .NET that is part of the dotGNU project known as Portable.NET. “
I guess my point is that Microsoft isn’t as averse to Open Standards as a lot of people think, even if it’s because they see them as inevitable. Microsoft did this with the Internet in the 90’s and now they’re getting into the search engine business. MS isn’t nimble but they’re not stupid either.
Nice touch on the preview button by the way but maybe you can add a tags so we can link from words.
thanks for the preview
I ask this because it seems that the JVM is really only good for Java. Yeah, there are other languages that target java bytecode, but it seems to be a big pain compared to MSIL. The thing is, Java(the language) was designed before the JVM, where the runtime and MSIL were designed expressly for multi-language. Maybe it’s time Sun changed the bytecode so that other languages can target it more effectively.
…are condemned to repeat it.
The resultant effect of this catastrophe is that open source developers will focus on a framework that is open and exclaim that Java was given a chance, but SUN foiled it. On Unix alone, the probable success of Mono, is the potential downfall of Java. What makes matters worst is that Java isn’t revered as a desktop application language on Unix.
As someone above already pointed, SUN was approached by open source developers to open NeWs at a time when NeWs was infinitely superior to any other window system. Unsurprisingly, SUN declined. Today, compare and contrast the success of Xfree and NeWs. Need I say more?
Mono, serves to do to Java what Xfree did to NeWs. Mono might not be as advanced as Java is today. But give it another 7 to 10 years and hopefully more developer interest. If I’m alive then, I hope I never have to give yet another example of SUN’s bullheaded attitude.
I normally don’t response to dribble about Java or any other language being slow, maybe I’m having a bad day, but I’m sick of hearing this.
I’ve seen plenty of slow, miserable applications written by every language you can point at. I attibute it to the DEVELOPER, not the language. Have you ever used MS Word, edited a file and have it crash?, corrupt your document?, just plain take a long time to do its initial load? Pretty good example of a poor quality app, but everyone just keeps using it.
As for Java Swing applications performing badly, I’ll grant you that the initial load time is a bit long, but do you realize what’s going on when that thing loads? It’s doing security checks, byte code verification checks, etc… all with the idea of creating a stable, secure environment to run the application. Once launched, a properly written Java Swing app performs just as well as any other properly written app. If your trying to run it on a celeron 400 with minimal ram (64mb) your going to have problems, but you’ll have problems running most current applications with that setup.
How many viruses have there been to exploit a running Java application that’s not launched from a browser? I don’t personally know of any. Hows MS Outlook doing this week for viruses?
Poor performance for desktop applications generally boils down to poorly skilled developers. How many of you actually know how to write a multi-threaded GUI application properly? Not many. In the 12 years I’ve been writing code, I’ve only meet a handful of people who truly understand the underlying issues surrounding multi-threaded code.
If you can’t get an application to perform adequately in any language that allows you to create a desktop application its YOUR fault for being such a poor developer, not the languages.
Oh yeah, I’m not sure if most of you know this, but John Carmak (you know id) considered using Java for id’s latest engine, the reason he didn’t use it? Not a performance issue, he was concerned about the DirectX and Open GL bindings for Java3d not being muture enough.
I normally don’t response to dribble about Java or any other language being slow, maybe I’m having a bad day, but I’m sick of hearing this.
I’ve seen plenty of slow, miserable applications …
Netbeans is slow
Why does Java need a JVM on the server? Why not a compiler to make things fast. On the desktop what if Netbeans was a compiled application wouldn’t it be faster. Look at this page it has a couple of links for write once run anywhere code.
http://www.netbeans.org/downloads/ide/index.html
I do not know the architecture of Netbeans, does it use the same class files and only the installer is platform specific?
Anyway I have never seen fast Java code.
BTW thanks Eugenia for the message preview button
Oh yeah, I’m not sure if most of you know this, but John Carmak (you know id) considered using Java for id’s latest engine, the reason he didn’t use it? Not a performance issue, he was concerned about the DirectX and Open GL bindings for Java3d not being muture enough.
Not even close. Java was never even close to being considered for writing Doom III or Quake 3. Java is not even close to the performance level that is needed for those type of applications. Either is .NET for that matter
What was considered at one time was having the game code(not the engine) of Quake3 use Java. It has nothing to do with Opengl DirectX bindings since game code doesn’t even touch those facilities. It was decided to use a C language VM for reasons i’m not aware of. It was rumored that mod authors weren’t to happy about having to use Java – having used c and c++ for the game code in previous versions of quake.
I’m not positive, but I’ve heard Doom3 will go back to using native dll for game code, but this time will be using C++ instead of straight C.
The one thing I’ll agree with you is on the constant harping of Java being too slow for normal applications. It’s not, but the myth is still there. Memory issues are another matter though. The biggest blunder Sun probably did was thinking that one Look-n-Feel was a good thing.
There is no office suite written in Java.Nor is there a
web browser or media player.All those things are
needed if java wants to succeed on the desktop.Sun is focused on the server and the days of dot boom are over.
There is no easy money to be made.Sun needs to take care of
the little guy if it wants to succeed.Microsoft did it
initially and it became what it is today.So Sun should stop
complaining.
Who cares about office suites and web browsers and media players? These have been redone hundreds of times. On the other hand, a lot of truly innovative work is being done in Java. 31337 windows users who like IE and playing games on thier overclocked Athlons need not apply.
“That happens with every language. I would like to add though that I have a Java client/server application that was coded in the 1.1 years and still runs without hitch.”
Btw, I have a HELLO WORLD running perfectly. One program using only a small subset of the features doesn’t mean anything.
A “hello world” program is not exactly a client/server program. But since you know nothing about Java or client/server programming (which is obvious from your remark) I should have probably ignored your post. Nah…
office suite
http://www.thinkfree.com/
webbrowser
http://java.sun.com/products/hotjava/3.0/
media player
http://www.research.ibm.com/mpeg4/Projects/player.htm
please be quiet
Do you mean Model 2? I do know it. I’m sorry that I disappointed you. But you don’t get the point.
java is quite good in performance wise. i dont know what is wrong with people. Just because early java swing applications did not use hardware acceleration for UI people thinks java is slow. stupid.
To me, java is generally faster than .Net, close or equal to C++, and much faster than scripting languages in many types of applications.
And, performance itself is usually irrelevant. modularity, development speed and managebility, portability, availibilty of tools and choices matter especially in big applications. java, povides all of them well.
Do you really think Java is quite good in performance wise? If so, please email the good news to Sun who can’t even persuade their own employees that Java is usable.
Check out this Sun memo:
http://www.internalmemos.com/memos/memodetails.php?memo_id=1321
The resultant effect of this catastrophe is that open source developers will focus on a framework that is open and exclaim that Java was given a chance, but SUN foiled it. On Unix alone, the probable success of Mono, is the potential downfall of Java. What makes matters worst is that Java isn’t revered as a desktop application language on Unix.
This is hardly catastrophic. I’ve personally been surprised about the amount of drama and hand-wringing that has gone on here about this. Java is way ahead of C# right now, and in a best-case assessment, C#/.NET would attain parity with Java. I don’t see how Mono’s success comes at the expense of Java. I think it’s naive and pedantic to suggest such things are a zero-sum game. It is perfectly reasonable to expect that both Java and C#/.NET/Mono are here to stay. I think it is much more interesting to speculate about what they might be used for, and what other techonolgies they might enable developers to leverage.
Mono, serves to do to Java what Xfree did to NeWs. Mono might not be as advanced as Java is today. But give it another 7 to 10 years and hopefully more developer interest. If I’m alive then, I hope I never have to give yet another example of SUN’s bullheaded attitude.
This isn’t even a realsitic comparison. NeWs wasn’t a standardized technology, and as far as I can tell, only CDE is standardized with respect to UNIX environments.
I still see no reason why Java would lose share to Mono. These are two seperate technologies that have been standardized by different bodies. (ECMA vs. JCP) Microsoft has really only opened a little bit of its code for use by the Mono developers and most of the work done on Mono has been an independent effort by the Mono developers to produce a tool that is comaptible with C#/.NET. Java is an open standard and there is ABSOLUTELY NOTHING stopping independent work under an open-source license on a Java(tm) compliant implementation. Sun has released it’s certification toolkit, so it is possible for open-source implementations to certify to the JCP standards.
I think the hysteria about this is rediculous. Nobody complains bitterly that Sun hasn’t opened their Forte C/C++ compilers, or that Microsoft hasn’t released the source code to Visual Studio. Well defined standards exist for C and C++. The open-souce community has taken pride in developing their own standards-compliant tools for other technologies. There should be no reason for Java to be any different.
…and in a best-case assessment, C#/.NET would attain parity with Java
How do you figure? C# is already a better language than Java. MSIL is much better suited to multiple languages than Java bytecode. Or maybe you are talking about popularity or something. In any case, you’re not Kreskin so I don’t know how you can claim “in a best case scenario”. Face it, Java should have had things like variable-length arguments, a foreach mechanism, easy Pinvoke mechanism, and a whole host of other useful programming constructs years ago, but it takes Microsoft and .NET to get them motivated. They still don’t have user defined types on the stack which makes certain types of performance problems for Java. Delegates are a helluva lot more elegant solution for callbacks than interfaces and adapter classes.
The funny thing is, I completely agree with you on the freaking out of certain people that use open source. They are clueless zombies who think anything that is handed over to GNU is immediately a good thing.
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html
If you read the above article it proves that java is evolving fast and truely is a powerful platform.
You’re a hell of an MS apologist. And clearly speaking out of your ass re: java. The Java VM is as able for multi-language use as is the CLR. Witness Jython , Groovy and JRuby (among many others). the CLR and C# go hand-in-hand as Java/JVM do. Other languages that interoperate are a possibility on both.
That is an old link. Version 1.4.2 is actually pretty snappy and 1.5 is fast. I do most of my development with 1.4.2 but I use 1.5 as the startup JVM for my applications because it just plain rocks.
Java has turned into the BRAND X of programming languages. To those program managers who let external authorities/salemen/consultants tell them what language to choose, Java is probably it.
For program managers who are not easily duped by marketing and who know the task and the tools in great detail, I suspect it is chosen much less often.
Java is the server side VB. Its going to be the most popular language in history and you still won’t want to touch it.
streaming music with JOrbisPlayer (Java applet)
http://www.jcraft.com/jorbis/player/JOrbisPlayer.php?codebase=http:…
You’re a hell of an MS apologist.
Why would I apologize. C# is clearly better than Java. The CLR is clearly easier to target then the JVM. Maybe you should ask Sun to apologize for taking so long for much overdo language features. But they couldn’t even be bothered to change their runtime to support generics correctly. Hint, it’s still just objects under the hood, so no performance improvements from not having to unbox and no ability to reconstruct types with reflection. Oh, but let me guess. You’re one of those java developers ranting that there was no need for generics until Sun put them in. Then it was the greatest thing since sliced bread. If it wasn’t for MS and .NET Java would still be stagnating. I guess variable length arguments are something that wasn’t needed until Gosling gave his blessing. Java finally gets a proper printf after, what, 8 years? Give me a break
Howdy
Ok i think i know of 1 way of settling this and as in linux development “Code talks and bullsh!t walks“.
Now http://www.topcoder.com has basically a coding competition that you can use Java, C# or C++, now i propose all those people who can`t comprehend the phrase “best tool for the job” a little competition.
Each of the zealots simply go there as a guest and code the test problems that are freely available, now the one part that might be tricky is we need maybe half a dozen impartial (read non zealot) judges for code quality and also the time it took mr and ms/mrs/mz zealot to finish the problems.
This would be one great big ball of fun if we could organise it so come on all you so called experts out there this will give you bragging rights and when you slam Java, C# or C++ you will be able to PROVE IT!
p.s. sorry about the plug Eugenia but i`m sure every level headed geek is sick of flame bait and outrageous claims (i know i am).
I don’t understand why the OSS community doesn’t just creat their own java-like programming language except improved for programming both for the desktop and server. IMHO Mono doesn’t quite count because thats just an implementation of Microsoft’s dotNet for Linux. Then again maybe the OSS community doesn’t really need such a programming language bad enough as they already have lots of scripting and programming languages that work fine, but then why all the fuss over Java not going open source?
one word: resources
time resources
developer resources
Think about it. The way that open source moves it would be years before a design was even finalized and then another 10 before the language, the VM, class libraries, compilers, and other assorted infrastructure was put in place to compete with present day .NET or Java. Look at something like Parrot. Parrot isn’t even inventing a new language and its years(if ever) away from something production quality. So Mono doesn’t count because it’s an implementation of ECMA specs and some APIs that happen to be invented by Microsoft? That’s not very logical.
Basically there is no fuss about Java going open source except for a few malcontents that believe everything that is under GNU is holy.
The biggest chance for mono is to be the basement for a GNUhorn Operating System. The idea to run a OS on secure, managed code is truly compelling. To be a serios competitor to longhorn we need a open source CLR for this OS. you wouldnt implement it in Java because it isn’t free as in freedom.
I think Zend studio is an example of a java app that is very popular in its segment.
Regarding Visual Studio vs Java IDE comparisons. I think the VS.net fans are the kind who generally only know the MS way. They may have spent a day or two trying something different and given up. It is sad but because they can’t use anything else effectively they conclude that anything else is junk when it is actually there own shortcomings (lack of ability to adapt) which prevents them from using anything else.
Well, I have watched the Real video feed of Miguel de Icaza’s MonoDevelop presentation at Novell’s Brainshare event on Mar 26:
http://primates.ximian.com/~miguel/activity-log.php
http://www.novell.com/brainshare/keynotes2004.html
(Check out Mar 26, Friday video for the Mono presentation)
I hate to say it, but what .NET and C# will be able to provide, at least on the desktop, is very, very impressive. The presentation showed how Miguel embedded Gecko (the mozilla browser engine) in a simple GUI app in Mono under Linux, for just a few edit plus drag and drop from the MonoDevelop GUI Designer. And the Mono binary is instantly usable on Windows platform (that is, the seemless switch of widget from GTK# to Win32 GUI).
I think Miguel’s presentation starts somewhere around 01:00:00-01:15:00, worthy check it out.
On the client side, Java is dead. Aside from one or two apps (Limewire is the only major one I can think of), Java has made absolutely no inroads on the desktop. Most developers I’ve met who have worked with Swing in any major way hate it; the SmallTalk MVC model *sounds* great, but it’s a pain in the ass here in the real world. Swing was introduced as a fix to the horrible original AWT in 1998, and here it is almost six years later and it’s still almost unused by anyone except IDEs (and even Eclipse uses SWT).
J2EE is in the same boat: overengineered, bloated, and too complicated for anything save huge projects.
Even as a language Java lacks a lot of features. In this sense, C# “fixes” java by adding true enums and value-types. And don’t discount the value of value-types — one of the reasons that Java is slow on large data-sets is because everything must be heap-allocated and garbage-collected; only intrinsic types are stack allocated. (Paramterized classes — templates — are gross, and I’m sorry to hear that both Java and C# have fallen into this trap.) Where the true value of .NET comes in is in the ADO.NET and ASP.NET frameworks — ADO.NET spanks JDBC/JDO so badly it’s not even worth mentioning. To get even a simulacrum of ADO.NET’s features in Java, you have to go to third party tools (like Hibernate) that are not standards and are not supported by Sun.
The complexity of Java deployments are another headache. It doesn’t reflect well on Java that a entire meta-tool had to be developed (XDoclet) to take care of the donkey-work of boilerplate Java programming. In many ways, it’s simpler to use C++/CORBA than Java/J2EE, and that’s just sad.
Developers are voting with their feet, and they’re moving to .NET in droves.
Well, I have watched the Real video feed of Miguel de Icaza’s MonoDevelop presentation at Novell’s Brainshare event on Mar 26:
I must admit I haven’t seen the presentation, but from your description, it sounds like Gecko has a great API. It doesn’t tell me anything about mono or net, though… FYI, you can do the same thing in a few lines of code with KHTML and c++, or with KDE’s language bindings for java, python, perl, ruby and c#.
My point here, is that the language doesn’t really matter. What _does_ matter are APIs (and the standard java APIs are damn good).
> My point here, is that the language doesn’t really matter.
> What _does_ matter are APIs (and the standard java APIs are
> damn good).
Well, you miss another important point, Java and .NET bytecode binaries can run across another platform (where VM exists) without re-compilation. That is one of the real strength for developers.
Technically, you can write C++ for both Win32 and GNU/Linux, but the difference in platform/libray issue prevent it from competing with Java or .NET in their cross-platform capability.
I do not know, however, how Mozilla’s XUL did in this regard. Basically MonoDevelop is a very slick IDE for creating GUI interface. Another thing is the performance of execution of the bytecode. That presentation didn’t show much since the application is so simple, but that will also be an issue to consider.
It totally agree. Portability is important. Actually, my job involves creating code that is supposed to run on windows, linux, aix, solaris and hpux. There is just nothing that comes close to java if you care about portability.
This is one reason why I think java will be very important for a lot of people for a very long time. I just don’t think .net will be able to compete with java’s cross-platform capabilities. At least, it will not happen as long as microsoft isn’t interested in making it a cross platform development platform.
I think anybody with half-a-clue that uses VS.NET and tried out Eclipse or IDEA would be thourougly impressed. The problem is that they only do Java well. Yeah, there are plugins for other languages, but I stand by my previous statement. The eclipse c/c++ plugin might be worthy one day, but not today.
If you download MonoDevelop, that sample app that Miguel used might be the same one that is in the /samples directory in Monodevelop. It’s completely trivial to use the gecko-sharp.dll in a Gtk# window. Monodevelop is moving along fast.
Monodevelop does not have a Gui developer right now. Everybody just uses Glade. This will most likely not be embedded in Monodevelop ever. There’s something new coming down the pipe, but I just don’t know that much about it and it supposedly won’t start getting developed until June. But it’s trivial to just have Glade spit out an xml file and and you just wire up some events in MonoDevelop.
java is fine. before looking at all that j2ee stuff i used to wonder what it was all about. j2ee is really what java should exist for. it really is a very powerful and very useful framework. and is deployed in a large manner.
java as a programming language is taught wdely in academic as it is not a bad language at all. a leading university n the UK proactively discourages C++ as it does not encourage the student to think properly about problems. its too distracting and not very clean.
and as far as i could see, many cutting edge and research concepts are usually frst implemented in java, simply becase other suitable languages (like python) are not known of.
so sun need not worry – there is a place for java… sun should make sure they do’t kill it with their corporate revenue driven thinking. make it even wider for example, gie out jvms for netbsd and freebsd… that’s where there’s a thirst for it to be used… as these are the OSes that people trust in the server space
The winner for most tragically hilarious quote:
“What’s good about the model that exists now is that Sun, being the custodian, enforces compatibility,”
Compatibility with what?
My company does Java software. We have to ship a specific verison of the runtime with out application because each version of Java is different and has different bugs we need to work around in different ways. Java 1.1 code isn’t even compatible with Java 1.4 runtimes.
Changes between “minor” Java releases have been incredibly poorly managed, especially when it comes to the class libraries.
Add salt though, it’s a well-known fact that I hate Java. Then again, the fact that I seem to have at least five Java runtimes installed on my system, four of them installed by applications, seems to suggest that I’m not making this up…
– chrish
Why would I apologize. C# is clearly better than Java.
How so? Because it satisfies the C++ programmer switching to another language? I do believe they made some improvements over Java. I would hope they would considering how long Java has been around.
The CLR is clearly easier to target then the JVM.
How exactly is it clear? Would you like to provide a technical explanation instead of an opinion? I don’t see it being that clear at all. The existance of Python and Ruby on the JVM shows me clearly enough that the JVM is ready for multi-language use.
Maybe you should ask Sun to apologize for taking so long for much overdo language features.
Overdo accorrding to whom? Most of the crap they added seems to only be valuable to C++ programmers moving to Java. The Java-only guys I know aren’t all that happy about the language changes. I don’t want another C++. Nor do the other Java programmers I know.
But they couldn’t even be bothered to change their runtime to support generics correctly. Hint, it’s still just objects under the hood
Of course its still objects under the hood. The loss in performance is from using native types (ie: int, char) in containters. That has always been the case.
so no performance improvements from not having to unbox and no ability to reconstruct types with reflection.
Why should I have to ‘reconstruct types with reflection’ when I already know what I’m putting in the collection? Or are you one of the types that doesn’t know what they’re putting in their collections?
Oh, but let me guess. You’re one of those java developers ranting that there was no need for generics until Sun put them in.
Actually I’m one of the Java developers ranting that there was no need for them from the start. Has nothing to do with Sun’s decision.
Then it was the greatest thing since sliced bread.
Nope. See above.
If it wasn’t for MS and .NET Java would still be stagnating.
On the language-issue front you’re probably correct. Competition is a good thing. However I think they wasted time making Java more like C++ rather than adding worthwhile features.
I guess variable length arguments are something that wasn’t needed until Gosling gave his blessing.
I haven’t needed them ever when programming in Java. Don’t need them now. Useful? Probably. Has nothing to do with Gosling.
Java finally gets a proper printf after, what, 8 years? Give me a break
Again another C/C++ feature that I could care less about.