Slashdot Mirror


Even Sun Can't Use Java

cowmix writes "It turns out that Sun does not eat its own dog food. Specifically, this internal memo from Sun strongly suggests that Java should not be used for Sun's internal projects. More interesting still, they go on to state which other languages fullfil Java's goals better than Java does itself. Finally, the memo states Sun's own Solaris is the cause of many of Java's woes. Yikes."

120 of 732 comments (clear)

  1. It would be interesting to find... by BitwizeGHC · · Score: 4, Funny

    ... a memo which says that Sun has standardized on C# and Microsoft .NET.

    --
    N4st0r, trixx0r h0bb1tz0rz! Th3y st0l3 0ur pr3c10uzz!
    1. Re:It would be interesting to find... by Anonymous Coward · · Score: 5, Funny

      And equally as unlikely. You think the JRE is bad - have you seen how Microsoft's .NET runtime performs on Solaris?

      (Blah... blah... Mono... Free... chasing a moving wall in order to pound your head against it...)

    2. Re:It would be interesting to find... by g4dget · · Score: 5, Interesting
      Given that Mono looks like it may become an important part of Gnome, Sun may be shipping a C#-based desktop before they have a Java-based one.

      It boggles the mind that after half a dozen years of Java, Sun has not yet moved their default desktop over to Java GUI apps. And Sun has missed lots of great opportunities popularizing Java by failing to deliver desktop apps and utilities that would motivate Windows, UNIX, Linux, and Mac users to download the JRE.

    3. Re:It would be interesting to find... by Anonymous Coward · · Score: 5, Funny

      How many times do you have to visit a web site that gives you 15 popup windows complaining about script errors in IE?

      You do know that that's Javascript which is nothing to do with Java, right?

      Who here hasn't had to download an older version of the JRE because you've found a program that doesn't work on the newer versions.

      Yes, inter-version compatibility is a big problem, as mentioned in the Sun memo.

      Yeah, it was cool back in the days before DHTML, Flash, and XML. But now it offers very little additional functionality.

      Oh for chrissake! The memo is talking about large applications. As in, not java applets. Read the damn memo. And get a clue. "Java was cool back in the days before ... XML. But now it offers very little additional functionality"? What does that even mean? It sounds like you're just throwing buzzwords around. I suppose C offers little functionality over ASCII, and C# just isn't cool now we have WordPerfect and ISO9660?

  2. Hypocrisy? by amigaluvr · · Score: 3, Insightful

    This smells bad. Sun have been forcing the monopoly thing down microsofts throat for so long, and now there they are victim of themselves again.

    What took them so long to come out with this? It seems to have stayed nicely hidden while they could cause damage to microsoft. Looks like they're a lot more relaxed now it's 'home turf'

    'home run' indeed. They're now able to disassemble java like they wished to for a while it seems, but wanted to get most leverage out of it against a competitor

    Commercialism stinks

    1. Re:Hypocrisy? by frleong · · Score: 2, Insightful
      This smells bad. Sun have been forcing the monopoly thing down microsofts throat for so long, and now there they are victim of themselves again.
      This boils to the question: is it a good thing to force the bundling of the Sun's JRE in Windows? MS's JVM is not particularly bright, but I don't think JRE is better in terms of performance.

      Anyway, regardless of the JVM, applets are only applets. Its security model prevents it from doing anything useful than pretty animation and fancy UIs. But for fancy UIs, we have Flash, which is definitely faster and easier to program.

      --
      ¦ ©® ±
    2. Re:Hypocrisy? by kisrael · · Score: 3, Interesting

      Anyway, regardless of the JVM, applets are only applets. Its security model prevents it from doing anything useful than pretty animation and fancy UIs. But for fancy UIs, we have Flash, which is definitely faster and easier to program.
      I think the primary interest here is "server side Java", doing heavy lifting business applications. Currently Java/J2EE is in a competition with .Net ... in a race that has strong parallels with and implications for Unix/Linux vs Windows on the server side.

      This memo makes me a bit nervous. Right now, I'm a Java/Perl guy professionally, and this is horrendous publicity for Java, and could pontentially tarnish Unix as well, since Java is so popular for business apps there.

      (Applets seem to have kind of fallen by the wayside, though they seem to show up in more places than you'd expect...I can't do applets at work, it pops up a message about the firewall config, and I see that dialog a heck of a lot.)

      --
      SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
    3. Re:Hypocrisy? by soloport · · Score: 3, Insightful

      Gee! Is it April 1st, already? You guys really fell for this one :-D

      Can you say, "hoax"? (Read the "memo")

    4. Re:Hypocrisy? by g4dget · · Score: 5, Insightful
      I think the primary interest here is "server side Java", doing heavy lifting business applications. Currently Java/J2EE is in a competition with .Net ... in a race that has strong parallels with and implications for Unix/Linux vs Windows on the server side.

      For server-side apps, it makes no difference whether Microsoft bundles the JRE or not--anybody putting together a bunch of servers is going to install the latest JRE directly from Sun anyway.

      In fact, while Java is a decent language for server-side development (and that's pretty much the only thing it's really good at), it's ironic that its cross-platform features in particular are largely irrelevant there: for many other reasons, any reasonable place is going to have a homogeneous server environment for individual web apps, and re-compiling for that server environment is a tiny part of deployment.

      So, something like GNU gcj, which requires recompilation for each target platform, may well be the better choice than Sun's bloated JRE: while you don't get universal byte code deployment, which you don't need, gcj binaries start up much faster and consume less resources, which may be more important on your server.

    5. Re:Hypocrisy? by Zeinfeld · · Score: 5, Insightful
      This smells bad. Sun have been forcing the monopoly thing down microsofts throat for so long, and now there they are victim of themselves again.

      The note is certain to be used by Microsoft in their appeal against the Java injunction.

      In particular the points about Java code being tied to a particular runtime completely negates Sun's claims about the need to distribute in the O/S base. Clearly that is not going to help much since Sun have no clue about dependency management.

      Consider the following thought experiment. Microsoft distribute 30Mb of Java 1.3 with XP. Then Sun upgrade to 1.4, what does Microsoft do? Do they distribute 1.4 on the new O/S versions only, add it to the current release of XP or put it on instant update. None of these work. The instant update option will break existing java applets on the system. Mixed versions of java will mean that consumers buying a Java based progam will not be able to rely on the release number of XP to decide whether the program works on their machine. Waiting till the next O/S version is released will result in a lawsuit from sun.

      The note shows clear similarities to the early articles on C# explaining the difference in approach between Java and dotNet. If the Java lobby was not so convinced that Java was the end of program language design they would have realised their significance.

      To give one example, the version incompatibility problem is known to Windows developers as 'DLLHell'.

      My company uses Java for a lot of projects. I would not be suprised however if we didn't end up on .NET server with the applications compiled down to native code through J# and IL.

      Unfortunately Sun don't have a level 5 leader in charge. They have an egotistical idiot who is concentrated like a laser on another companies business instead of his own.Antics like those of McNeally and Ellison play well in the press but measured by the success of the companies stock price leaders like Jack Welch or Lee Iaccoca don't do as well as their PR would have it. Iaccoca may have saved Chrysler (it might also have been the government loans) but once he started concentrating his energies on being a folk hero Chrysler's performance went back down the tubes. Similarly Jack Welch's performance does not look that hot if you look at the growth in GE earnings rather than the stock price - which is certain to shrink as GE returns to its old P/E multiple.

      One of the things a level 5 leader does is to encourage comment. The memo only says what others outside Sun have been saying for eight years.

      My take on the Sun/Microsoft Java war is based on a lot of time working in standards groups with both groups of engineers. I think that the Microsoft engineers thought they could improve Java and got frustrated because the Sun engineers behaved - well like Microsoft engineers sometimes do.

      Of course this will all be rationalised away. Of course it was all the fault of the Redmond club's evil schemes. Nobody outside Sun has any ideas of any value and Sun's JCM is genuinely open and not a proprietary farce.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
    6. Re:Hypocrisy? by smd4985 · · Score: 5, Funny

      "The note is certain to be used by Microsoft in their appeal against the Java injunction."

      Um, no.
      First off, who knows if the note is even authentic.
      Secondly, what will be MS's argument?:
      "Judge, Sun feels they should improve their Java product. As you know, the law states that no company should be able to improve their products, unless they are us, and we can improve other people's products, but only for Windows. Thank you."

      --
      smd4985
    7. Re:Hypocrisy? by Ilgaz · · Score: 2, Insightful

      While I don't like Sun's Java, which they didn't even care to update Installshield causing problems (read my other replies), I don't agree with this one:
      "On nearly every system I've used Sun's Java on, the Microsoft has taken up less ram, run faster, crashed less often, and basically been a smaller pain in the ass. There will be people who will scream that Microsoft has sabotaged Sun, but I don't think it has anything to do with that. And even if it does, at this point forcing end users to use Sun's Java is just going to deter people from wanting to use it at all."

      Erm, the JVM you use is roughly 3-4 years old. Its 1.0 , while Sun is serving 2.0 for 1-2 years.

      So, its like running Quake 1 on a machine and bitching about how slow quake 3 is, compared to quake 1.

    8. Re:Hypocrisy? by Jahf · · Score: 4, Insightful

      I still work for Sun and have never seen anything like this memo. Java is still used daily for internal projects, still hyped strong and developed strong, and I've never seen a Sun person try and dissuade another from using it.

      If the memo is real, then it's being kept in a very small group.

      If it's fake, they did a good job with the language and examples.

      --
      It is more productive to voice thoughtful opinions (reply) than to judge (moderate) others.
    9. Re:Hypocrisy? by elmegil · · Score: 2, Insightful
      If the memo is real, then it's being kept in a very small group.

      Can you say "duh"? As if even strong engineers could actually keep their jobs after telling everyone that Bill Joy's (yes, I know Bill didn't write it, but he sponsored it) baby is not just ugly, but hideously deformed? Keep it small, build support, when you have some safety in numbers, THEN come forward to a wider audience. Seems eminently politically practical.

      --
      7 November 2006: The day Americans realized corruption and incompetence weren't addressing 11 September 2001
    10. Re:Hypocrisy? by fitten · · Score: 5, Informative

      Well... The Inquirer had a blurb about this about a week ago, before anyone heard about any "memo".

    11. Re:Hypocrisy? by Zeinfeld · · Score: 2, Insightful
      First off, who knows if the note is even authentic.

      We will soon find out. However Microsoft will certainly get the ability to subpoena etc. regardless of whether it is eventually proved to be a fraud.

      Judge, Sun feels they should improve their Java product

      No, that would be Sun like Microsoft recognises that Java is broken and needs fixing. Furthermore it recognises that the monolithic architecture of the JVM makes it seriously broken.

      If Java was not a 30Mb lump it would not need to be deployed with the O/S. It would be possible to download the support libraries required together with the code. It would be possible to download the versions of the libraries that the code was compiled against - exactly what dotNET does.

      Of course this would also mean that the distinction Sun has attempted to enforce between Sun approved modules and other modules would go away. It would be possible to develop a version of dotNET that ran J2EE programs optimised for the native processor.

      Sun's legal manipulations have been aimed at forcing Microsoft to support a platform while denying Microsoft and the rest of the community any say in the development of that platform. In every other standards process the vendors always reserve the right to not support the outcome if they don't like it. So there is a compromise between the positions of the parties, usually one that is aligned to the interests of the users. In the case of Java Sun has opposed any changes by Microsoft and in fact any other party that it belives are counter to Sun's interests

      I am not a Microsoft employee but I would be happy to testify for them.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
    12. Re:Hypocrisy? by Zeinfeld · · Score: 2, Interesting
      Er... for those of us who are not businesspeople or even pro developers, could you please:
      $man "level 5 leader"

      It is a term used by Jim Collins in his book 'Good to Great'.

      What Collins did was to set up a bunch of objective standards for good-to-great companies based on their share price over two 15 year periods. Then he compared them with a bunch of other companies that were comparable in the 'good' phase but never managed the 'great' phase.

      He noted that the good to great companies had a bunch of qualities in common. In particular the CEOs behaved in a particular way. Instead of using 'I' all the time they used the word 'we'. They did not spend their time in self promotion for the sake of it. One of them used the comparison 'I'm a plough horse, he [the competitor's CEO] was more of a show horse'.

      The basic research for the book was done prior to the recent CEO perp-walks by the Enron, Worldcom, Haliburton, Harken etc. crowd. So now almost everyone is trying to be a level-5 type leader rather than a Jack Welch who is a 'level 4' - not quite as good.

      Incidentally if you apply it to politics then Thatcher comes out as a level-4 leader rather than a level-5. Anyone who follows British politics will know the reason why, she failled to plan for succession. The Tory leaders who followed her have all been failures and the party poll numbers show the results.

      Unfortunately the notable standout is the failure in the Whitehouse who is a level-2 leader if that. Bush meets none of Collin's leadership criteria. It is all do as I say, not do as I do. Prime example, you go off and fight a war, I dodged service in Vietnam by getting Daddy to pull strings, then went AWOL. Secondary examples you keep your treaty commitments, I will unilaterally break the test ban treaty, ignore the security council, withdraw from Kyoto and basically ignore any treaty I consider inconvenient.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
  3. Not Java but the Solaris JRE by Anonymous Coward · · Score: 5, Insightful

    Read the article poeple, what their saying is that the JRE on solrais has huge significant bugs that need fixing!!

    1. Re:Not Java but the Solaris JRE by Danta · · Score: 2, Insightful

      Read the memo a bit more and you will realize that many of the problems they list out are inherent to the current state of the Java platform itself and not just the Solaris JRE.

    2. Re:Not Java but the Solaris JRE by Jugalator · · Score: 4, Interesting

      I don't think the "bugs" with huge memory usage and general slowness is limited to the Solaris platform since I've noticed it while running Java applications on Windows as well, while using Sun's JRE. Many of the bugs discussed in the memo is connected to the JDK itself as well, and Sun is concerned with how many bugs are closed with the "Will Not Fix" status. Since the JDK is mostly the same on all platforms due to Java's nature, I'm pretty sure this is a cross-platform problem in many ways.

      --
      Beware: In C++, your friends can see your privates!
    3. Re:Not Java but the Solaris JRE by jcr · · Score: 5, Funny

      Sure, Java doesn't suck, it's just the JRE.

      And communism doesn't suck, it's just all the implementations!

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    4. Re:Not Java but the Solaris JRE by abe+ferlman · · Score: 5, Funny

      Don't forget "Capitalism doesn't suck, it's just all the corporations!"

      --
      microsoftword.mp3 - it doesn't care that they're not words...
    5. Re:Not Java but the Solaris JRE by obsidian+head · · Score: 2, Insightful

      It's on Solaris only that Sun advises not to use Java for software projects. As far as I can judge from the memo (and yes, I did read it completely), they *are* developing software in Java for other platforms and will continue to do so.

      It seems like we didn't read the same memo. The backwards compatibility problems, versioning, etc were not intrinsic to Solaris. And anyone who programs Java on Windows notices bad performance there too.

      It was a very diplomatic letter. Sun's comparative advantage does not lie with Windows, so I don't think it makes much sense for the memo's author to make a big deal of it.

    6. Re:Not Java but the Solaris JRE by as6o · · Score: 2, Insightful

      This memo looks to me like it is simply the Solaris apps team complaining to whom ever will listen that the JRE for Solaris doesn't get the same attention as the JRE for Windows.

      HelloWorld on Win2K using Sun's 1.4 JRE (1.4.1_01) takes up 4856K - little over a half of the memory required to run a similar app on Solaris (according to the memo.) I'm not claiming that this is spectacular, but the situation on Windows doesn't seem to be nearly as bad as it appears to be on Solaris. (Doing a quick test, the situation on Linux appears to be the same as on Solaris.)

      The memo even states that things aren't as bad on Windows:

      "5. Customers and Field Engineers Are Noticing the Problem

      Following is an excerpt from Kevin Tay's e-mail to three Java aliases regarding a customer installation of a third-party product written in Java called Vitria. We see typical very large RSS numbers compared to a WinNT implementation combined with increased resource usage from Solaris7 to Solaris8:"


      Sure, the JRE could use some improvements (maybe more than some.) However, the breadth of Java's standard and third-party APIs, especially in the web app space, combined with ease of development make it worth the performance and memory disadvantages to some (apparently quite a few) organizations.

      Disclaimer: I code Java at work on Win32 and play around with PHP and Python at home.

      -Aaron

    7. Re:Not Java but the Solaris JRE by elmegil · · Score: 2, Insightful
      and provide services like food, cars and this nice Internet we all enjoy.

      Or Else!

      Like, say Disney, AOL, Amazon and their lovely patents, etc. Not to mention the accounting bs that goes on; you can't convince me that Enron et. al. were just a couple of bad apples. They just had the misfortune to be poster children to let the rest of the corporate world know they better shape up enough to squeak by in the short run.

      --
      7 November 2006: The day Americans realized corruption and incompetence weren't addressing 11 September 2001
  4. ... nothing new under the sun by imperator_mundi · · Score: 2, Troll

    people spend far more time chattering about java than using software written with it...

    maybe because talking about is the only field where java and c/c++ have the same performances.

    1. Re:... nothing new under the sun by DarthWiggle · · Score: 4, Interesting

      Why in God's name is this modded troll? Have we offended the slathering hordes of Java devotees? Lemme tell all of you something, when I was laid-off from a position, I went to interview with two shops, both with a heavy Java focus, and roughly equivalent in their focus, style, and clients. I didn't get a job with the first. But with the second, I was given some very good advice: Talk a lot about J2EE, Beans, and a bunch of other buzzwords, a few of which I had never heard of. "Doesn't matter if you don't know, man, just throw the words in. That's all they care about."

      Got the job.

      Java is so much about a culture and not a technology that it's disgusting. And it's a pity too, because all the PRINCIPLES of Java (portability through the VM, objectification, etc.) are so good that Microsoft took them to build .NET. (Don't start gnawing on me because I put "portability" and ".NET" in the same sentence - I was referring to the VM.)

      Hell, I think Java is a great language. It concerns me that it takes seventeen steps to accomplish something as basic as opening a database connection, grabbing some results, and outputting them into an HTML stream (and seventeen may be generous). But, it's a very straightforward language, very teachable because it's so logical.

      But too much of the culture is fluff. Why is it that Sun doesn't focus on point releases that improve performance but instead focuses on getin gthe newest buzzword, uh, "feature" out the door? Why did they invent something called Java2 which is, IIRC, just Java 1.3? Because they're more concerned about IMAGE than about getting their product - which is great in principle - in a usable state.

      But let's talk substantively. I've developed large scale server-side applications in Java, C, C++, and - on the web-app side - PHP, Cold Fusion, and ASP.

      The slowest of those was, almost without exception, Java. Java took the most coding to do a basic task, and Java was BY FAR the most difficult to package, deploy, and deliver to my customers. That's a real pity, because I was about 90% certain that our customer's architecture didn't really matter if we were playing with Java. Upgrading those old Dell NT servers to IBM? No problem. We'll just move the app over, and it should run without a hitch.

      But, lord have mercy, it ran slowly.

      To top it all off, here's some advice I received from a Java-guru at another company. I was griping about how slow Java was, and he said to me, "Oh, everybody knows it's slow. But why worry? Hardware's getting faster every day. True, 2ms is half the speed of 1ms, but who's gonna notice?"

      I almost fell off my chair. It's that sort of laziness that makes my skin crawl.

      Look, I love Java. I want it to succeed. It's a brilliant idea: an utterly cross-platform language whose apps run without regard to the hardware and OS under them.

      But it's a seriously flawed masterpiece.

      (The funny thing is, I was just going to write "Why was this modded troll? But then my post bloated... kinda like how you go to write "Hello World" in Java and... ok, ok, nevermind.)

  5. Sun's Internal Argument by Jrod5000+at+RPI · · Score: 5, Insightful

    To me, this report seems to be the manifestation of a battle going on with Sun between the Java Engineers and the folks who integrate Java with Sun's other products. They went to the Engineers initially to explain the problems, but it didn't change anything. So they wrote a damning memo to management to force them to deal with the situation.
    This isn't Sun saying to the world that Java sucks, its simply two groups within Sun saying that their official implementation needs to have a few bugs worked out.
    -jrod5000

  6. From the article... by Whispers_in_the_dark · · Score: 4, Informative

    A study performed by an outside team appears to indicate a rough parity in performance between Java and a common implementation of another OO language called Python (see IEEE Computing, October 2000, "An Empirical Comparison of Seven Programming Languages" by Lutz Prechelt of the University of Karlsruhe). Both platforms are Object Oriented, support web applications, serialization, internet connections and native interfaces. The key difference is that Python is a scripting language. This means there is no compilation to byte code so the Python runtime environment has to do two things in addition to what the Java runtime environment does. It has to perform syntax checks and it must parse the ascii text provided by the programmer. Both of those tasks are performed at compile time by Java and so that capability does not have to be in the JRE.


    Assuming the memo is for real, this is a real boon for the Python community, even though it gets the bit about bytecode compilation wrong (Python DOES compile to bytecode and one CAN take the bytecode and ship without source). The point about Python carrying its compiler with it is true but IMHO it is a feature, not a bug. It always bugged me that Java had no good mechanism to compile simple expressions on-the-fly.

    I am, however, a little leary on the performance parity bit. Don't get me wrong, I love programming in Python, but I know from experience that it still costs a good bit to create all the dictionaries that are used for frame construction, global maniuplation, and object management.

    Python is, however, fast enough for a great many applications. I'm just a little skeptical about it being quite as fast in certain aspects.
    1. Re:From the article... by The+Mayor · · Score: 4, Insightful
      It has always bugged you that Java had no good mechanism to compile simple expressions on-the-fly? Here are a few options for you:
      • Jython is a Python scripting engine for Java. There, now you can use Python within the JVM! <sarcasm>Get the worst of both worlds!</sarcasm\>
      • Rhino is a Javascript engine for Java.
      • Jacl is a TCL engine for Java.
      • Bean Sripting Framework is a generic wrapper for including scripting languages within your application. It's from IBM, and is intended to abstract away the implementation of the scripting language. It supports Jython, Jacl, and Rhino now. It seems like I remember IBM releasing something for REXX as well.
      My point here is that saying that Java doesn't include an interpreter is a downfall to Java is like saying that Perl not having a JVM is Perl's downfall. It's not their design goal. Java is a bytecode-interpreted language, not an interpreter. If you want an interpreter you can easily add one. And many are available.

      Performance isn't great, but reports have indicated that Jython is about 75% of the performance (near the end of the article...search for the word "performance") of CPython. It's slower than Java code of the same type. But, hey, if you wanted speed you wouldn't be using interpreted code (or byte-code interpreted code, for that matter), right?

      --
      --Be human.
    2. Re:From the article... by Daniel+Phillips · · Score: 4, Insightful

      I am, however, a little leary on the performance parity bit. Don't get me wrong, I love programming in Python, but I know from experience that it still costs a good bit to create all the dictionaries that are used for frame construction, global maniuplation, and object management.

      I did a little benchmarking recently, and I can confirm that for typical algorithmic benchmarks (not heavily library or IO oriented) Python is more than 100 times slower than C/C++. There's a Python "specializing compiler" called Psyco that produces significant speedup, running my little fibonacci test around half the speed of C, very impressive.

      Java on the other hand has had huge amounts of effort and money put into making it run faster, and to my surprise, I found it now runs my fibonacci benchmark faster than gcc-compiled C. Overall, Java performance has improved from horrible to tolerable. Programs are still taking a long time to start, even on a beefy machine, but to be fair, I've seen some long startup times on some C++ programs as well.

      Python really beats Java in startup time, with the result that Python gets used here and Java doesn't.

      Python is, however, fast enough for a great many applications. I'm just a little skeptical about it being quite as fast in certain aspects.

      I see Pysco has made it into Debian Sid, this is a good sign.

      --
      Have you got your LWN subscription yet?
    3. Re:From the article... by HorsePunchKid · · Score: 3, Informative
      You missed one of the best options for this kind of thing in a Java environment. See my previous post regarding BeanShell. It's an excellent piece of open-source software. Oh, and don't forget Ant.

      --
      Steven N. Severinghaus
  7. "viva la resistance" by ajole · · Score: 2, Insightful

    This damned langauge will go one of two ways:

    they'll fix it,
    or it'll die (phase out, dehype, become far too slow and filled with awkward design mechanisms that it cannot survive any longer).

    --
    -P ...and the boy pulled open his bleary eyes an discovered the python he always knew he was.
    1. Re:"viva la resistance" by ajole · · Score: 2, Interesting

      heh. Or J#. already used it. Like all of the MS languages/implementations, its fast as balls. I used it for a project last week simply because compiling a 7 class app took
      amazing how Microsoft just decides to implement a language, and it outperforms the original by logorithmic factors.

      --
      -P ...and the boy pulled open his bleary eyes an discovered the python he always knew he was.
  8. What's the point? by CoderByBirth · · Score: 4, Insightful

    This memo states that Sun believes their Solaris implementation of Java to be flawed.
    It states the flaws; ie. which flaws should be fixed.
    So?

    A REAL "shocking memo" would be one in which the company goes out of it's way to not criticize it's own product.

    1. Re:What's the point? by rodgerd · · Score: 2, Interesting

      Insightful? For what? Not even reading the memo?

      If you bothered reading the piece before clicking "Post a slaverng Java fanboi response", you';d notice the engineer is recommending Java is so bad at Sun it not be used BECAUSE THE JAVA ENGINEERING TEAM WILL NOT FIX IT. Because they regard features as more important than a stable API or bug-free runtime.

  9. Unfortunately, I am not surprised by random_me · · Score: 5, Interesting

    When people ask me about using Java, I always give them a simple answer: it is much nicer to program in then any other language that I use (except for API changes over different versions), but it takes way too much memory and is too slow for programs that I would use regularly.

    The memo agrees with me and lists the huge memory requirements as the number 2 problem (number 1 is that Java programs require the JVM to run).

    Considering that compiling Java into a native executable would seriously improve its performance (and remove the JVM requirement), I wonder why the memo doesn't discuss that possibility?

    1. Re:Unfortunately, I am not surprised by battjt · · Score: 2, Insightful
      remove the JVM requirement


      Uhm... The JVM is a library, like libm is a library. Removing the JVM is like removing lib libgnome*. If you want to run program that use the features of gnome, you have to install the libraries. If you want to use the features of the JVM, it needs to be installed. If you want those features in another language, you'd need to install some other libraries (gc, gui, etc.), so it should be considered unreasonable.

      Would it be better to link the apps statically?

      Joe

      --
      Joe Batt Solid Design
    2. Re:Unfortunately, I am not surprised by Fjord · · Score: 2, Insightful

      Considering that compiling Java into a native executable would seriously improve its performance

      People often say this, without realizing that in 1996 there was a native code compiler by Assymetrix (part of SuperCede for Java) which didn't do well in the market dispite being the only native compiler for Java. Currently there is gcj, which I don't know of any projects that use it, but I think may have a subset of the Java API.

      For whatever reason, people say they want native compilation, but it's never really proven out as a need.

      I think a more significant speed improvement in Java would be to remove the += operator for Strings. You wouldn't believe how badly one of those in a loop can tank an app's performance.

      --
      -no broken link
  10. dog fooding is a microsoft phrase by walmass · · Score: 2, Interesting

    Microsoft departments have to use their own beta products. Its internally called "dog fooding."

    Do you find it just a little curious that the story contributor used that particular phrase? Methinks a Microsofty at work here. Nice job, cowmix.

    1. Re:dog fooding is a microsoft phrase by frleong · · Score: 2, Informative
      Microsoft departments have to use their own beta products. Its internally called "dog fooding."
      This guy uses the expression "eats its own dog food.". A google search reveals that it is quite popular. I wouldn't jump to the conclusion that the submission came from MS.
      --
      ¦ ©® ±
  11. Read the Article by sparkhead · · Score: 5, Informative

    In the rush to bash Java, the summary here was totally off the mark. From the article:

    A review of the problem indicates that these issues are not inherent to Java but instead represent implementation oversights and inconsistencies common to projects which do not communicate effectively with partners and users.

    And it goes on to mention issues with Solaris. Nothing about Java itself being inherently problematic, just issues with certain implementation.

  12. Read the memo by brw215 · · Score: 2, Insightful

    It has problems ON SOLARIS. These engineers do not complain about Java being broken as a language. They have a big problem with implementation of the JRE on one platform. They mention nothing about the linux dist, or the win32 dist.

    1. Re:Read the memo by Jugalator · · Score: 2, Insightful

      They often speak of the JRE as "Java", such as here:

      "Java has too large a footprint (both memory and disk image) and may not be installed on the customer's host."

      And regarding if the Java itself is broken, they mention this, for example:

      "Bug ID 4526853 describes a bug in Core Java which used to be an external module called JSSE."

      I guess it depends how you interpret it, but it's written quite sloppily if they actually only talk about the Solaris JRE.

      --
      Beware: In C++, your friends can see your privates!
  13. Java Implementation by Detritus · · Score: 4, Interesting

    I'd be interested in finding out what are the causes of the problems with Java. Virtual machines don't have to be pigs. When the IBM PC was first introduced, I wrote a lot of software in Pascal using the UCSD p-System. The applications ran comfortably on machines with a 4.77 Mhz 8088, 8087 FPU and 512KB RAM. Most of the applications and operating system were compiled into p-code, which is similar to Java byte codes. The p-machine interpreter was a small resident module written in 8086 assembly language. The p-code was actually more memory efficient than the machine code produced by conventional compilers.

    --
    Mea navis aericumbens anguillis abundat
    1. Re:Java Implementation by The+Mayor · · Score: 2, Informative

      I don't think p-code really bears much resemblance to Java byte code. Java does a lot of stuff after things have been compiled to byte code. P-code really is just a machine language of sorts that provides a hardware abstaction layer--that is, it is still just machine language. Java's byte code offers things like late binding & reflection, bounds checking, garbage collection, and a whole slew of other things. Many of these features make compiled Java (that is, compiled to a native executable) very difficult at best. And it also means that about 9/10 of the computation time with typical Java apps is spent in the JVM doing these things.

      --
      --Be human.
    2. Re:Java Implementation by pyrrho · · Score: 2, Insightful

      they do! here is why.

      Basically, they can, at best, hope to assymptotically approach the performance of traditional compiled code, so they will always be worse in performance, all other things being equal.

      Furthermore the technique by which VMs get fast is cheating the question... that is, it's to optimize bottleneck operations by coding them in a regular compiled language.

      Example: years back I worked in SCI, Sierra-Online's language for making the old interactive fiction games, like Space Quest. It ran pretty fast even though it did complex (for the time) graphical applications. Well, this was, of course, because the graphical operations were optimized. You feel like you are programming this graphical operation in SCI, but the reality is that the intense part is executed in sizeable chunks of C code. Essentially you just inform the underlying C/C++ (etc.) program of what you the VM based program want, and it's handed off to a program that can actually handle the work.

      So as a comparitive matter, yes, VM do always have to be pigs. There are many things SCI was still a pig at, of course, things it wasn't optimized for. That's the thing. VMs can be good, and not-piggy when they are special purpose languages, when the problems they all have can be solved by proper understanding of a specific problem frame that they intended to work within.

      Java Servlets, for example, is an idiom in which use of Java is efficient, and an good argument can be had for all of Java's benefits, even WORA. You keep a VM up, you send applets to it.

      In fact, there are a lot of distributed computing environments, which central servers dole out java code and use them as a plug-in language, in which Java will likely survive as by far the best solution.

      Stand-alone applications and servers? I'm not convinced.

      --

      -pyrrho

  14. It's a hoax by Anonymous Coward · · Score: 5, Informative

    InternalMemos is notorious for running hoax emails. This email is no exception. It includes a number of inaccuracies and curious references. The comparisons with Python are just amusing.

    Doing a quick search on the names, you'll note that there's no reference to the sender anywhere in Google, let alone associated with Sun. Most of the folks in the CC list do not have Sun email addresses. They're probably friends of the hoaxer. The Sun folks in the CC list include a JavaOne and a guy who has himself on the J2ME JSR.

    I wouldn't hold out for Sun switching to Python. haha

  15. J2SE is becoming bloated by mariox19 · · Score: 5, Insightful

    I was especially interested in the part of the memo that talked about extensions being rolled into the main product. But, apart from backwards compatibility, I think it just makes learning the language more difficult.

    I learned the language back in 1.3, and I'm amazed at how much more has been added to the 1.4 release. Sifting through the javadocs has become a bit more of a pain, but nothing someone already familiar with the language can't handle.

    My concern is people who are learning the language. I think the API is becoming more and more overwhelming to future Java developers. Look how much fatter O'Reilly's Learning Java book has become!

    A smaller J2SE with standard extensions to be downloaded as necessary makes better conceptual sense.

    --

    quiquid id est, timeo puellas et oscula dantes.

  16. Political memos by panurge · · Score: 3, Informative
    Being an old cynic, I suspect there are too many long words in this memo for it to have gone very far up the food chain. Who are these people and what is their access to opinion formers in management?

    Not that I'm suggesting they are wrong, I have no way of knowing either way, I just think that producing memos like this - and getting them leaked - is probably not the smartest way of getting the declared objective.

    Admission: I use Java. It isn't perfect. It uses too much memory. It isn't hugely fast. But the applications work and the amount of debugging we have had to do is a tiny fraction of what I would have expected with C++. Its suitability for a given project depends on a whole host of factors not considered in the memo, and it would not surprise me if, for some internal Sun projects, it was inappropriate in its present stage of development.

    --
    Panurge has posted for the last time. Thanks for the positive moderations.
  17. Gotta agree with you on that one. by Vengeance · · Score: 2, Interesting

    The extension mechanism works well, they should allow it to do it's job.

    There are two core problems here: One is that Sun's implementation of the JRE for Solaris is an even bigger hog than Java is naturally. The second is that the JRE in general has got too damn many built-in libraries. It's very convenient for me as a developer who uses many of the extensions anyway, but it's making the language much more intimidating to approach.

    --
    It was a joke! When you give me that look it was a joke.
  18. Desperate measure by Knacklappen · · Score: 5, Insightful

    Reads to me like a memo that has intentionally leaked out into the open, trying to force Sun Management to act. Software Development Dept is clearly unhappy with the Solaris implementation of JRE and therefore stops all use of it, until is has been fixed. While the Java Dept does not seem to have too much hurry to do that (majority of cases closed - "will not fix".
    What would you do in your own line organization, when you are the boss of one department and the boss of the other department just gives you the finger? And your superior is unable/unwilling to solve the conflict? You write a flaming mail to your superior's superior, threaten to withdraw any support for the platform your company is famous for and leak the memo into the open to get public support. This, of course, has to be done nicely so that no-one can blame you directly for it.

    --


    Excellence: Moderate (mostly affected by comments on your karma)
  19. Where's the proof? by MegaFur · · Score: 5, Insightful

    How do we know this is even a real internal memo? I mean, this is comming froma site *named* internalmemos.com. Come on! There's a submission form. I could just send any old thing in if I wanted. The only difficult part is making it look convincing. That only takes a few hours of effort.

    Anyone that has an axe to grind with Sun could have sent this in. That could be some big company or (far more realistic) some random slob that just wants to be mean.

    Or it could be real. But who cares? As the Score 5 AC pointed out, this is about bugs in the JRE on Solrais, not necessarily about Java in general.

    Does anyone on slashdot remember what FUD is?

    --
    Furry cows moo and decompress.
    1. Re:Where's the proof? by Ilgaz · · Score: 2, Insightful

      that's the new creation of Pud, owner of http://www.fuckedcompany.com . Those 2 has thousands of paid (yes, and really expensive) subscribers who generally likes to drive limos :)

      Pud has a good reputation. I mean, it could sound funny but if you think even NY Times has to quote fuckedcompany.com like f****company.com sometimes on market pages, it may give a clue.

  20. I question the validity by sbuckhopper · · Score: 4, Interesting

    Although it is well known that Java is a performance hog, and these bugs they talk about are real. And it is well know for anyone who has done extensive Java programming that the people who write Java have always put more emphasis on delivering the JDK and JRE's faster and more bug free for windows, I really do not believe that this memo has been sent or will be taken serisously if it has.

    I have never directly worked for Sun, but I have worked with them in many ways and they have been using Java in production environments for a long time and I'm certain they will continue to.

    They use it in Solaris 8 & 9. No one ever told me this, but it is not difficult to see this, login to a machine running that OS and start up their print manager, looks amazingly like the Java L&F.

    If you've ever taken a training class from Sun, the survey that you fill out at the end of the class is a Java application. I worked at a training center for a while and we never had any problems with this application.

    Friend of mine that work for Sun talk about where they are using Java internally and it is immense, there is no way that in the forseeable future any of this is going to change. I'm going to talk to them and see if this memo was really sent out.

    My wife writes Java GUIs and actually has never ever had any of the problems that they are referring to in this memo. The GUIs she writes runs fine, and they are very complex GUIs, things that do tasks such as controlling telephone switches.

    I'm not saying that Java doesn't have some performance problems by any means. I program in Java and I know a lot of peoplel who do and we've discussed these performance problems. I've also written hello world programs that don't take up 9M, but then again I question the validity of the programmer who wrote that program. I know if I write it bad enough, I could write a C program that would allocate 9M of memory and have the only functional thing it does is be to print out "Hello world."

    So I guess this could be true, but as someone who has worked with Sun before, I find it very, very hard to believe.

    --
    "Everybody knows the moon's made of cheese," Wallace.
    1. Re:I question the validity by obsidian+head · · Score: 5, Interesting

      My wife writes Java GUIs and actually has never ever had any of the problems that they are referring to in this memo. The GUIs she writes runs fine, and they are very complex GUIs, things that do tasks such as controlling telephone switches.

      I have written complex GUIs, which actually overwrite the paint() methods of Components, and Swing is slow on Windows and Unix. Also, I've used Swing apps, and guess what, they're slow memory hogs too.

      Inevitably someone proclaims that Swing runs fast if you program well enough. (I'm not referring to you but to Sun's party line.) BULLSHIT. It's slow. It trades memory for speed, and still isn't that speedy. Run Jext or Borland JBuilder and you'll see what I mean.

      Now, /I/ may personally like it for many uses, where control outweighs performance. But it's malicious for Sun to claim it fit for mainstream desktop apps.

    2. Re:I question the validity by spinlocked · · Score: 4, Interesting

      So I guess this could be true, but as someone who has worked with Sun before, I find it very, very hard to believe.

      I have worked at Sun and this smells very real to me. I have a friend at Sun who wrote an application in his spare time (in Java) which was officially adopted for internal use - he spent a month working with the internal applications gestapo having it re-written from scratch "to official standards". I agree with much of what the document says. Writing a complex Java application means targeting a specific JRE version, it is not at all unusual for Sun software products to install the particular JRE which they were written against (look at SunMC and the SunRay server software) - it's easier to keep patched without breaking other things.

      Until the Java developers use Solaris as their tier one development platform and API changes are controlled in the same was Solaris itself (PSARC) this will continue to be a problem.

      --
      # init 5
      Connection closed.


      Oh... ...bugger.
    3. Re:I question the validity by Bamafan77 · · Score: 2, Informative

      While I would definitely agree that Swing is slower than native Windows and Unix widgets, they are often plenty fast enough. While I'm not questioning your java programming ability per se, but I've found that oftentimes, slow Swing applications can be attributed to lack of skill/deep understanding of Java as to limitations of running within a virtual machine. You can make very complicated applications with Swing, and while those applications will probably be memory hogs, they are very responsive if they are implemented well. Just look at Netbeans as an example. Check out Swing Sightings on Sun's website for yet more examples.

  21. Ahh, Taco by Anonymous Coward · · Score: 2, Interesting


    Please. Try to communicate the essence of the article in your summary.

    The essence is, Sun has a buggy implementation of Java on Solaris that is scaring off internal developers.

    The essence of your summary is, Java isn't usable, and Solaris is a problem. Duh, you missed the connection! It's Sun's *implementation* of Java on Solaris that's inadequate. The memo stresses that nothing's wrong with Java, and it doesn't suggest that anything's wrong with Solaris.

    Why would you write such misleading over-generalizations? What's the motivation? C'mon, Taco!

  22. Turf War by the+eric+conspiracy · · Score: 2, Insightful

    This memo looks like a turf war to me. Somebody is ARC needs to justify his job, and has decided he can do it be getting his hooks into Java.

  23. *please* read the f**king memo before posting by linuxghoul · · Score: 2, Interesting

    The memo says that the JRE implementation on Solaris (not the implementation of SOLARIS itself)is a cause of many java problems, including

    1) Large memory usage (cites an example of a "hello world" program using up 9MB)

    and

    2) Long startup times

    the memo blames these problems in the SOLARIS implementation of java VM on the "fact" that that project doesnt seem to have prority. The memo states in passing that the win32 vm doesnt seem to suffer from these problems as much. So the memo specifically restricts itself to the solaris jvm.

    It also talks about how the java vm doesnt confirm to the sun SDF, and thus the versioning is incomaptible with it. There is no support for patching an installed java vm, thus requiring an entire new install of the latest version of the jvm if a bug is discovered. This means either having multiple jvm installed and running if different java applications on a system need different java releases, or breaking a whole set of applications, which may not run with the latest release. Again, cites examples of these.

    The memo makes a case for:

    1)introducing a patch system for java vm, so there need not a a new install everytime a bug is discovered.

    2) stict backward compatibility, so that an application written for the older version of JVM works with all later minor revisions

    3) consideration of a new mechenism for "bsoleting" and interface replacing/in addition to deprecation.

    4) priority for solaris jvm development, with claims (by comparing it with python!!) that the memory footprint of the java resident set (the code bloat added by the garbage collector and co to each running java program) maybe reducible to a fifth of its current size.

    read the memo. its a very intelligently argued writeup, and has been completely misrepresented in the slashdot post.

    very interesting read.

    Ghoul2

    --
    Sigura Non Grata
    1. Re:*please* read the f**king memo before posting by abirdman · · Score: 2, Interesting
      Agreed! Even more, and the reason I think it's an internal memo (if that's what it is), is it appears to be a plea for funding for the same kind of internal regression testing and software QC as the rest of SUN's software has:

      (last paragraph)
      Correcting the Java Problem

      We strongly recommend that management require Java to conform to the Software Development Framework (corporate-speak for expensive corporate QC program. ed.) especially from the standpoint of ARCreview. We believe that the next release of the Sun Java implementation should be brought to ARC while still in the prototype phase. Both PSARC and LSARC have dealt with the Java issues peripherally, recognizing numerous problems but unable to effect change in the underlying source of the difficulties - namely Java. By bringing the Sun Java implementation through ARC, these issues can be resolved.

      This was written by some engineers who want to run the program through a slow (and I'm sure costly), corporate QC program. I've written memos like this myself when it seemed my supervisor didn't have the wherewithal to resolve an issue on his own, sometimes at my supervisor's request. I can't help but think that it's a possible start to SUN addressing the stated problems responsibly. (Memory usage, version clash, and poor performance on the "native" (Solaris) platforms are all huge issues). Alternatively, SUN could just decide the extra cost for QC will make the JAVA project prohibitively expensive and take another direction. Either way, it seems like this document is not some screed on the viability of JAVA but a plea for funding to make it better.
      --
      Everything I've ever learned the hard way was based on a statistically invalid sample.
  24. Anonymous Inner Classes by snatchitup · · Score: 4, Interesting

    And I thought I was the only one actually using them. I use them all over. They're a great way to intimidate the other developers, plus I needed them to pass Sun's Cert.

    But what I've never needed to do with them is serialize them. Interesting.

    Did you notice that of the 9 key bug/issues, 5 were AWT (GUI) related and 1 was Serializing Anonymous Inner classes.

    Why would they bring those up, and then within a sentence or two, mention Python. From what I understand, Python is mainly used for server side scripting. I doubt anyone uses Python for serializing anonymous inner-classes!

    The letter was put together hastily at best. It was an eclectic set of beefs.

    The last sentence really sums it all up. It's politics to get some resources shifted in their favor for the next build: ...namely Java. By bringing the Sun Java implementation through ARC, these issues can be resolved.

    1. Re:Anonymous Inner Classes by ericnewton · · Score: 2, Informative
      I doubt anyone uses Python for serializing anonymous inner-classes!

      Python supports a limited form of lambda, which is kinda-almost-like an anonymous inner-class. And interestingly enough it cannot be serialized by the python pickle module.
      >>> import pickle
      >>> pickle.dumps(lambda x: x)
      Traceback (most recent call last):
      File "<stdin>", line 1, in ?
      File "/usr/lib/python2.2/pickle.py", line 977, in dumps
      Pickler(file, bin).dump(object)
      File "/usr/lib/python2.2/pickle.py", line 115, in dump
      self.save(object)
      File "/usr/lib/python2.2/pickle.py", line 225, in save
      f(self, object)
      File "/usr/lib/python2.2/pickle.py", line 519, in save_global
      raise PicklingError(
      pickle.PicklingError: Can't pickle <function <lambda> at 0x82534fc>: it's not found as __main__.<lambda>
    2. Re:Anonymous Inner Classes by Jerf · · Score: 4, Informative

      Why would they bring those up, and then within a sentence or two, mention Python. From what I understand, Python is mainly used for server side scripting. I doubt anyone uses Python for serializing anonymous inner-classes!

      No, Python is used for everything that a general-purpose language is used for, except anything best done in C is stuffed into C extensions. The exceptions are of course the standard exceptions for C, which basically owns systems programming. (The need for fast, tight code in Python is done by embedding C; see the Numeric extension which provides many very fast number operations comparable to anything else, because the operations are in C.)

      In general, Python has no need for anonymous inner-classes; anonymous inner-classes are a worthless hack in Java to provide things that should be provided through any number of other good mechanisms, and even then they only partially and frustratingly succeed. Don't take my word for it, take jwz's word for it (do a find for "mind-blowing worthlessness of inner classes", for instance, though it comes up several times as he mentions the lack of several better solutions).

      Inner classes, as implemented in Java, are an atrocious idea and I know of no other language, including specifically Python, that doesn't have at least one inherently superior mechanism for doing that stuff, and most have multiple. (Even Perl has closures!) Thus, they have no need for what Java means by 'anonymous inner classes'. (Inner classes can exist in Python, but they have so many more capabilities that it's not even close to comparable, and I only need them when I'm dynamically generating classes anyhow.)

      On the one hand, I'd say have a look at some of these other languages and use them enough to understand the idiomatic uses of the capabilities in those languages. On the other hand, I don't suggest it, as you may find it very difficult to program in Java again after you are done. Java is not a language designed to empower the developer.

  25. Applets? What year are you in? by revscat · · Score: 3, Informative

    Anyway, regardless of the JVM, applets are only applets.

    I hate to sound trite, but the fact that you place so much importance on applets (they are, after all, the only example of the technology that you imply exists) leads me to believe you're not really versed in the current trends in Java. The simple fact is that no one use's applets anymore; certainly there is no new development going on in that area. Most Java applications are written for the J2EE platform.

    Even at that, those who do wish to write the modern equivalient of applets use Java Web Start, which is much more robust and doesn't operate within the confines of a browser.

    1. Re:Applets? What year are you in? by S.O.B. · · Score: 2, Interesting

      You have avoided my central point that applets are for the most part historical relics.

      I think the point of Sun's case against Microsoft is that they have essentially killed Java on the desktop primarily through the deployment of an incompatible thus making applets historical relics.

      The question is would that had happened if Microsoft hadn't done the things it did. If the case shows that Microsoft directly contributed to the decline of Java on the desktop through illegal monopoly behaviour then some remedy must implemented. An appropriate remedy would be to force Microsoft itself to be the one to correct the damage they did by delivering a Sun JVM with every copy of Windows and Windows updates.

      --
      Some of what I say is fact, some is conjecture, the rest I'm just blowing out my ass...you guess.
    2. Re:Applets? What year are you in? by Minna+Kirai · · Score: 2, Insightful

      By product developer, do you mean Microsoft making their J++ environment, or J.Random programmer making a corporate data-entry form? The latter is dependent on the former, as the ability of random "Java" programmers to create platform-specific software was enabled by incompatible features inserted by Microsoft.

      Legally, Microsoft's goals for the product should've been the same as Sun's. They signed a contract stating they would ship "Java (tm)" with Windows. The trademark on "Java" belongs to Sun. Therefore they get to decide what Java is and isn't.

      Adding new, incompatible features is inconsistent with what Sun had defined Java to be. Therefore Microsoft violated a contract, and the court is making them pay for it. Rather than trying to come up with a dollar value for Sun's loss, they're looking about simply enforcing the original terms.

      This case is a fairly "simple" matter of contract law, not world-shaking antitrust violation. (Sun lawyers like to suggest monopoly abuse as a way to angle for more damages, but that's not the core of the complaint). As a contract matter, the court must aim for a solution that is fair for Sun, not "good for software users everywhere" (as was suggested far up this thread).

  26. Re:shoot self in foot, then head ... by the+eric+conspiracy · · Score: 2, Funny

    Did you see the entry for C#?

    "The gun fires just fine, but your foot can't figure out what the bullets are and ignores them."

    Quite amusing.

  27. Hoax? Nothing verified by sparkhead · · Score: 4, Insightful
    It turns out that Sun does not eat its own dog food. Specifically, this internal memo from Sun strongly suggests that Java..

    Purported internal memo. There's nothing there that suggests it is genuine and a few things that suggest it isn't.

  28. Re:Kiss and say goodbye to Java language!! by TheRaven64 · · Score: 4, Informative

    I hope this illiterate drivel was intended as a troll, but just in case it was not:

    Forget Java man and go to PHP!

    Java is a general purpose programming language, PHP is not. PHP is a scripting language designed for server side web scripting. Ever tried writting a server in PHP? You can't, it doesn't let you accept incomming socket connections.

    PHP is 4 times faster than Java technology 'JSP' (Java server pages).
    This tallies because compiled "C" program is 4 times faster than Java.

    I'm not sure where you get your numbers from (the link you post is to a non-existent howto in the LDP), but I doubt that they are accurate. PHP is an interpreted language, C is a compiled language, Java is a hybrid (Just-In-Time compiled). C is likely to be faster than both (although a JIT language can make use of run-time profiling for optimisation, so in theory Java could run faster than compiled C code, but this is new technology so it doesn't - yet). Primitives in C are typed, in PHP they are not. This means that PHP has a lot of type checking to do even for simple variable assignments. PHP is unlikely to be faster than Java (although it may still fit your needs better in other areas).

    PHP is a very lightening fast object oriented scripting language.

    PHP is not an OO language. PHP supports a few features of OO, but not the vast majority (public / private methods, inheritence etc). PHP Classes are more equivalent to namespaces than classes.

    PHP is 100% written in "C" and there is no virtual machine as in Java.

    PHP is an interpreted language (how many times do I have to say this?). There is a virtual machine, and it interprets the PHP script. The Java VM compiles the bytecode to native code at run time (and only once, when the JRE is started in server mode). <oversimplification>

    Nothing can beat "C" language

    This is the stupidest statement I have ever heard. C does nut support dynamic strings, so only a fool or a masochist would use it for simple text manipulation tasks (ever written a CGI script in C?). C has many advantages, it's a mature language so a lot of work has gone into making it fast. For this reason it is good for low level system work. It is not the best tool for every job. If the only tool you have is C, every problem looks like an operating system...

    Java programmers will really "LOVE" PHP as PHP class is identical to Java's class keyword.

    Java programmers will loath PHP. It doesn't properly support a large number of features found in Java, because it is not a general purpose language, and it isn't even an OO language. Web developers like PHP because it's simple. For a detailed criticism of PHP look at thi paper published at the UK Unix Users' Group last year. (And possibly read my reply to the criticisms made.

    The aim of java was to abstract the OS and windowing system away from the developer, and in this it succeeds quite well (although it still has speed issues and the API is baroque in the extreme in places - try creating a non-blocking port in Java if you don't believe me). PHP is an interpreted scripting language aimed at web design, which has agregated, rather than being designed. Comparing the two is a crazy as saying Mozilla is far better than Linux.

    --
    I am TheRaven on Soylent News
  29. Authenticity? by RickHunter · · Score: 3, Insightful

    How come I've not seen any comments questioning the authenticity of this memo? All we've got is the word of some site that this memo actually came from inside Sun. Presumably, they had it leaked to them by an anonymous source. Now, lets think about this for a second. What "anonymous source" has lots to gain (potentially billions of dollars) by disgracing Java? What "anonymous source" has a history of lies, deciet, astroturfing, libel, and other shady or illegal practices?

    I'm not saying that Java doesn't have problems. But still, it pays to take this information with a grain of salt until its source is proven. Which means until Sun officially says "this is true", as there's few (or no) independant tech news sources that don't get loads of advertising from the "anonymous source".

  30. "The Java Problem" by carsont · · Score: 2, Interesting

    It looks like to me like their problem is with the specific Java VM on Solaris, and the Java team's unwillingness to fix JRE bugs as opposed to adding new features. Not with the Java language itself and not with Solaris itself.

    Furthermore, they don't advocate abandoning Java in favor of Python; the theoretical performance of the two languages is the same, so they compare the actual performance to show that the JRE is unnecessarily slowing Java apps down.

    I think the poster was much too eager to bash Sun to actually bother reading the memo.

    --

    Ubi dubium, ibi libertas.
  31. Hoax by nathanz · · Score: 2, Informative
    This memo is so fake, I can't believe that even Slashdot posted it. Only rabid anti-Java programmers would believe it.

    First off, this "memo" is the complete opposite of Sun's Java stance. They believe that Java should be used for everything from running enterprise applications on E10K's to apps on your PDA. I don't think that Java should be used everywhere, and I'm a big fan of the language.

    Second, these might have been arguments against Java a couple years ago, but they simlply aren't true any more. For enterprise-level applications, Java outperforms Perl or someother scripting language on every front (scalability, preformance, maintanability, etc.).

    Finally, these bugs don't even exist! I seached for the bug id's in Sun's bug database, and didn't get anything.

    As usual, the Slashdot community has formed a collective knee-jerk reaction against any technology that isn't open source and Perl.

  32. Resident by moncyb · · Score: 2, Informative

    The memo was talking about how much memory the program takes when it is running. You are on the right track, the original poster was wrong. I haven't tested it myself, but the numbers in the memo seem about right with my experience. The reason a "hello world" program takes up 9M is not because the program is inefficient, it is because Java requires a JIT compiler and other crap be loaded and running with the program. The actual "hello world" code and data were probably only a few kilobytes (if even that). The compiler, gc, &etc took up the remaining 8.9M--not to mention a bunch of processing time.

    Java is only free if your memory and cpu aren't worth anything. ;-)

  33. Smells of a Fake by dnoyeb · · Score: 4, Interesting

    The internal memo was from an idiot.

    Anyone that compares a scripting languate (python) to a full programming language that also as a VM has no clue. a scripting language has minimal overhead memory requirements because it does not have much of a memory management job to do.

    Complaining about 'will not fix' items on an older JRE is dumb as their must be SOME reason for the 1.4. If everything could have been fixed in 1.3.1, it would have been 1.3.2.

    Further I personally was told not to rely on the "sun" classes as they change. The article writer suggest that each release of the JRE causes classes to be dropped and added. I have NEVER experienced this and its a violation of SUN's stated practice.

    "4. It is not backward-compatible across minor releases." Then this fool goes and compares 1.3 to 1.4 or 1.1 to 1.2 as IF those are minor releases. (anyone that uses java knows the 3rd digit has been the minor one) The 2nd number has so far been treated majorly by Sun's releases and I would NEVER call 1.2 or 1.3 or 1.4 a minor release, they have years between them.

    As for large footprints, I stopped complaining about even M$ abuse of memory after the price came down so much. Just go buy some more. Its a valid issue, but I wouldn't mark it as worth of writing a letter.

    Finally I'd like to ask why none of his bug numbers appear in the Java BugDatabase on the javasoft website
    http://developer.java.sun.com/developer/b ugParade/ index.jshtml

    I'm skeptical of this letters validity.

    1. Re:Smells of a Fake by 1010011010 · · Score: 5, Insightful

      Anyone that compares a scripting languate (python) to a full programming language that also as a VM has no clue. a scripting language has minimal overhead memory requirements because it does not have much of a memory management job to do.

      I don't see how that makes any sense. Python also has bytecode and a VM, and it does the same job in less memory with equivalent or better performence. It's object-oriented and performs garbage collection, as does java. What do you mean, "it does not have much of a memory management job to do"?

      --
      Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
    2. Re:Smells of a Fake by SilentStrike · · Score: 2, Informative

      I like Python more than I like Java. Still, in terms of speed (ignoring how much memory it takes), Java is faster.

      It's not just the benchmarks that say it either. The creator of Python, Guido Van Rossum, says it as well.

      "The best approach is often to write only the performance-critical parts of the application in C++ or Java, and use Python for all higher-level control and customization."

      That quote is taken from here.

    3. Re:Smells of a Fake by IpalindromeI · · Score: 2, Insightful

      What he means is: "I don't know anything about Python other than it doesn't have a separate compile phase. That must make it less of a programming language. It doesn't matter if you can write programs in it, doing anything you could in Java. It only matters if you can compile it into something other than the text file you write. If you can do that, it's a full programming language, and we all know those take more resources than mere scripting languages."

      --

      --
      Promoting critical thinking since 1994.
    4. Re:Smells of a Fake by Erwin-42 · · Score: 3, Informative

      No, Python has had a generational garbage collector for some years (since Python 2.0).

      It still uses RC to immediately finalize objects but will collect cyclical garbage as well when it periodically runs.

    5. Re:Smells of a Fake by tom's+a-cold · · Score: 5, Informative
      Anyone that compares a scripting languate (python) to a full programming language that also as a VM has no clue. a scripting language has minimal overhead memory requirements because it does not have much of a memory management job to do.
      Your remarks about Python, and scripting languages in general, are not borne out by my own first-hand experience as a designer and developer.

      First, you make it sound like, in some sense, scripting languages are not as complete as "real" programming languages. And your comments about memory management make even less sense-- any language with OO features (and many without) are going to have to do dynamic allocation-- how else are object references going to be dealt with?-- and that means that they're going to have to deal with memory-management issues. And if you think that all scripts are like little baby shellscripts, you haven't been around much.

      I've developed medium-sized apps in Python and in Perl (on the order of 50K lines of executable code), and much bigger apps in Java. Python is semantically rich enough, and in most instances fast enough, to do anything that Java can do, and almost always with shorter, more readable code. The same can be said for Perl (though it requires more discipline to achieve the readability), and probably also Ruby and Scheme. From a software engineering point of view, I'd be happiest coding the whole app in Jython (the Python variant that compiles down to Java bytecodes), then recoding the hotspots in Java, or in some even lower-level language. Developers, even smart ones, usually guess wrong about what to optimize, so deferring tuning until you observe the working system is usually a good idea. Exceptions would be embedded and hard-realtime systems. Almost every business app I've seen is neither of these.

      This in no way eliminates the need to design your app before coding it, BTW, contrary to what some bozos who once read the blurb on the back of an XP how-to book might have you believe.

      When I did a demo of one Python-based app that I developed, my client was willing to accept a performance hit for the sake of better maintainability. When I benched its performance on one content-mangement task, it clocked in at 100 times faster than its C++ predecessor. Now obviously, a very clever C++ crew could have done a lot better than that. But in the real world, everyone's in a hurry and don't always choose the cleanest implementation. And when language features are too low-level, developers waste a lot of time reinventing "infrastructure." In this instance, they not only reinvented, but did it much more poorly than the developers of Python did.


      --
      Get your teeth into a small slice: the cake of liberty
    6. Re:Smells of a Fake by dozer · · Score: 3, Interesting

      a scripting language has minimal overhead memory requirements because it does not have much of a memory management job to do.

      No, scripting languages typically have significanlty more difficult memory management requirements. Memory managers in low-level languages are simple because the programmer does everything. Since Java lies somewhere between simple C/C++ and complex Perl/Python, why is its memory management slower and more complex than all the above?

      Complaining about 'will not fix' items on an older JRE is dumb as their must be SOME reason for the 1.4. If everything could have been fixed in 1.3.1, it would have been 1.3.2.

      When everything is fixed in version 1.3.1, it does get called 1.3.2. You call it 1.4 when you add features. Refusing to release a 1.3.2 is the same as refusing to fix bugs.

      The article writer suggest that each release of the JRE causes classes to be dropped and added. I have NEVER experienced this and its a violation of SUN's stated practice.

      Then you either haven't been programming Java very long, or you don't do much in it. Sun documented the proper way to do GUI programming, date conversion, and a whole bunch of other things in Java 1.1, then deprecated it ALL in 1.2. Haven't you noticed that most Java 1.1 programs won't compile under Java 1.4 without massive deprecation warnings? Most of these programs were 100% legal java programs when written, following Sun's documentation to the letter.

      As for large footprints, I stopped complaining about even M$ abuse of memory after the price came down so much. Just go buy some more. Its a valid issue, but I wouldn't mark it as worth of writing a letter.

      Go back and read his examples to see why Java is very bad in this resepct, even on today's hardware. It takes my Athlon 1800+/512MB machine 4 seconds to start a stupid command-line utility. Why? It has to reserve 26Mb of memory (and the classloader takes forever). The same program takes less than 1Mb in C and requires next to no time to start up.

      Finally I'd like to ask why none of his bug numbers appear in the Java BugDatabase on the javasoft website
      http://developer.java.sun.com/developer/b ugParade/ index.jshtml


      Because he works for Sun and uses the internal bug database? Did you READ this memo?

    7. Re:Smells of a Fake by AtATaddict · · Score: 2, Informative

      Python modules can be compiled. Write a simple little script that imports your module(which in Python means just about any source file). You'll notice a *.pyc file now hanging out in your directory. Cngratulations, it's Python bytecode.

    8. Re:Smells of a Fake by axxackall · · Score: 4, Insightful
      As other said, Python speed has very improved.

      I would just add two states.

      If you have to run handreds of calculations on an array with millions of records then neither Java or Python are good - you better do it in some database system, b/c you need just memory management (which is good today in both Python and Java, Python's results are just more compact) - in that case you'll need data management and thus you need DBMS.

      But if your calculations (even simple, like Hello+World) are from separate OS processes, then Java is out of picture. As many people noticed, startup time of JVM is long and class loading is very slow. Python is still ok. Although my tests show TCL has the best performance for such class of tests. Among scripting languages - there are resons to write fork-based listeners on C.

      --

      Less is more !
  34. Re:Kiss and say goodbye to Java language!! by ---- · · Score: 2, Informative

    Java is a general purpose programming language, PHP is not. PHP is a scripting language designed for server side web scripting. Ever tried writting a server in PHP? You can't, it doesn't let you accept incomming socket connections.

    Ahem ...
    socket_accept()
    socket_bind()
    socket_listen()

    Taken from User Contributed Notes on php.net (author diogo at michelangelo dot edu dot br )

    // first we must to create a socket which will be used to listen
    // a connection (0 mean protocol type - TCP)
    $mysock = socket_create(AF_INET, SOCK_STREAM, 0);

    // now bind call a port (20000) with a socket on 127.0.0.1 address
    socket_bind($mysock, "127.0.0.1", 20000);

    // accepting conenctions on a socket and port
    socket_accept($mysock);

    // using socket_listen we can specify how much connections we will to accept
    socket_listen($socket, 10);
  35. Re:Hey wait a minute ! by axxackall · · Score: 2, Interesting
    Yes, that's right. MS Windows is the highest priority for them. They do it for money, not for fun. And money comes in Java sales from Windoes, not from Solaris.

    However, most of problems mentioned in the article are the same on all other platforms. For example the size of "Hello world" program (including RE) and how it grows with complexivity is a real Java problems. Check you memory for even small real-world (10 users, shopping cart with a catalog in SQL) application with EJB (JBoss), no EJB (just Tomcat servlets) and Zope. 250MB vs 75MB vs 15MB.

    Java has been developed at time when CEOs/CTOs/COOs/CFOs have been counting fundings, not expenses and profits. When the buzzword had more priority than real features and problems in any technology choices. The time of "golder rush" is over, cool down. Now it's time to think. Sun begins to think. I hope it's not too late.

    --

    Less is more !
  36. They've gotten what they wanted. by crmartin · · Score: 2, Informative

    Hey, folks, calm down. This is a memo from a couple of developers with their hair on fire, writing a purposefully inflammatory internal memo to get attention.

    (Which they have done. I wouldn't be surprised if they're having a rather painful meeting when word gets back in Sun that this got published externally.)

    I used to be a Sun Java Architect and I worked on both internal and external projects on both Solaris and Windows. I posted a lot of bug reports myself, and got some of those "will not fix" replies.

    What these guys are primarily complaining about is not that Java isn't good for some things, but that Sun developers have a perpetual problem that they're almost always the cobbler's children that go barefoot. As someone else mentioned, the Windows implementation of Java seems to get priority for most things -- although, as I recall, the advanced Hot Spot optimizer was available for Solaris first (makes sense, the x86 instruction set architecture is such a pig.)

    But there is a second thing going on here that you might not undderstand, which is that ever since Scott began to push Java, the old C/C++ programmers have been scrounging for reasons to us C instead of Java. Sometimes tht's appropriate, but a lot more often the difficulties are the result of someone trying to write C in Java.

    In fact, this memo describes several problems that are clearly just such problems: for example, the notion that a Java-based shell should fork a new JVM for each command line execution. This is the natural way to handle the problem in C; fork()/exec() was invented for this. But it isn't the appropriate idiom in Java for exactly the reason they describe -- it means starting a whole new JVM, which is expensive. (The appropriate idiom, by the way, is class-load by name and invoke a method.) As I understand it the 1.5 JVM will have a extension that will make it easy to create virtual address spaces within the JVM for running sub-programs, which is probably a response to the issue.

    The most important thing the memo is pointing out really is a problem: the freakin' language and evironment changes every time some propellor-head gets a slick idea. I posted a couple of days ago complaining about just this in the case of the for(String s: c) idiom and a couple of other such things in 1.5. This, and the way things break between Solaris and Windows, and among minor version changes, really is a problem that makes developing large-scale, multi-version applications in Java difficult.

  37. Good for Java by grungeman · · Score: 2, Insightful

    I like Java a lot, and I like to see that Sun realizes the biggest problems of Java. It gives me confidence that they will work on the mentiones issues and fix them.

    The bad side of the memo is that it will certainly be misused for marketing purposes by the Java bashers.

    --

    Signature deleted by lameness filter.
  38. Re:PHP is the destination by mcrbids · · Score: 2, Informative

    PHP is "the one" for me!

    Now with the gtk extensions it does a mighty fine job on the server or on the client!

    It has the ease of text manipulation of Perl without all the nasty hacks in syntax. It's cross platform, free, and performance is good. (Probably better than Java, since my own testing indicates it's considerably faster than Python)

    It makes a good, all-around scripting language for sysadmining, UI management, etc. and it even makes a good case for fast web development!

    Among other things, a web server (yes, a replacement for Apache!) has been written in PHP!

    I figure that with all the noise of "web services" this, and "cross platform" that, there's a good chance that PHP could be the "next big thing"...

    Yeah, I use PHP an awful lot.

    --
    I have no problem with your religion until you decide it's reason to deprive others of the truth.
  39. InternalMemos is notorious for hoaxes by Anonymous Coward · · Score: 5, Informative

    InternalMemos is notorious for running hoax emails. This email is no exception. It includes a number of inaccuracies and curious references. The comparisons with Python are just amusing. Doing a quick search on the names, you'll note that there's no reference to the sender anywhere in Google, let alone associated with Sun. Most of the folks in the CC list do not have Sun email addresses. They're probably friends of the hoaxer. The Sun folks in the CC list include a JavaOne and a guy who has himself on the J2ME JSR. I wouldn't hold out for Sun switching to Python. haha

    1. Re:InternalMemos is notorious for hoaxes by MikeFM · · Score: 4, Informative

      Julian.Taylor@central.sun.com is the address Google came up with for me. Not sure if it's the right one. Seems close enough though.

      Since when are memos technically correct? You must work at a lot geekier place than I have. Not that I think InternalMemos isn't notorious for hoaxes.

      I wouldn't hold out for Sun to switch from Java to Python either but I really wish they would. Java blows. Python is easier to develop (fewer required tools etc) and runs a lot better under both Linux and Windows. Python (with wxPython) produces nicer looking more functional gui programs to.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    2. Re:InternalMemos is notorious for hoaxes by Anonymous Coward · · Score: 2, Informative

      I looked for several of the bugs using Sun's bug database search engine, and couldn't find them. Constructing the URL myself, however, seemed to work.

      For instance, bug# 4460368.

  40. This smells like a fake by Headius · · Score: 4, Interesting

    Everything about this memo sounds as fake as can be. For example:

    Sun complaining about the JRE support model for internal projects...THEY ARE THEY JRE SUPPORT MODEL. It would be a bit like Ford recommending people don't use Ford parts for internal work because they'd have to go to Ford to get support for them. Eh?

    Listing off the memory footprint of various "demo" applications. The "Hello World" reference gives this away as totally bogus. Anyone who's used Java knows about its memory consumption. From day one people understand that it is not recommended for smaller applications. That's not the intention of Java, and it's not a recommendation or warning Sun would ever make internally. Java is excellent, perhaps better than anything else, for interoperable, server-side, cross-platform development. The claim that there are "better languages for that" is totally bogus. Show me another single language that packages object communication, database-independent persistance, compile once, reliable threading, and hundreds of other Java features, while being available on every major (and most minor) operating systems and platforms available. An external user trying to take Java down a notch (perhaps a disgruntled C++ developer?) would almost certainly point at the size of a "Hello World" application. BTW, guess what: Hello World compiles to a couple kB of Java code. If the platform uses 9M for a small program, that's not part of Hello World's memory footprint. How much memory does a compiled C program take (including all external libraries and the kernel itself) compared to its compiled size? The holistic difference is striking.

    The numbers about startup time and third-party application time. Why on earth would Solaris care if TogetherJ takes a long time to start up? If TogetherJ is written badly enough that it consumes 900MB of memory, then it's a failing of Togethersoft, not of Java. Too many Java developers have fallen into the trap of "memory is cheap, objects are garbage collected" and use truly gross algorithms in their software. A little common sense would reduce the footprint of some of these applications down to much more manageable levels. One should look at Java applications that do extremely well with regards to memory management, for example JBoss 3 and Eclipse. Eclipse provides one of the best, cleanest, well designed Java IDEs out there, and starts up into around 25M on my system. JBoss is a fully J2EE-compliant container, and starts up into about 32M on my machine. Compare that with other offerings.

    Backward compatibility across minor releases. Everyone familiar with Java knows that 1.2, 1.3, 1.4, are as far from "minor releases" as they could possibly be. There's absolutely nothing "minor" about them. The small compatibility issues that are listed in this document are almost certainly issues someone would face if they move from one level to the next and use deeper features of the JVM. The concern about Class.fields() is ludicrous. It changed after 1.1 (about FIVE YEARS AGO, PEOPLE) and hasn't changed since. The other two complaints are about UI behavior changing across major versions (1.3 to 1.4 and 1.2.2 to 1.3.1). Guess what...they're going to introduce improvements into UI behavior to improve the performance of the platform's UI as a whole. The interfaces did not change. The contracts between classes did not change. If someone's tables ended up looking a little different (boo-hoo, perhaps this is a Java UI developer who's out of his league) then you either recommend one major revision or another, or you format your UI in such a way as to prevent problems (not a difficult thing to do with Java's UI support). These gripes more than any others point to this being a fake: Everyone outside of Sun knows that 1.2->1.3->1.4 are not "minor revisions" and would never treat them as such. There's NO WAY Sun would refer to them in that way.

    Other issues are also well known to Java developers, and are easiliy avoided:

    JNI is unstable: Well duh...anytime you link out of the JVM you are dependent on external code for reliability. If the external code bloze or doesn't behave, guess what...you crash. Sun recommends not using JNI unless there's no other way to solve a problem, and wouldn't list this as a fault.

    Vitria: 450+ containers? What in holy hell are they doing with 450+ containers? Running a single component in each one? No reasonable architecture would EVER use this many JVMs on a single machine. The person who recommended this should be shot, and the person who wrote this obviously fake memo is looking for worst case scenarios to support their arguments. Regardless of Sun's marketing, companies with alternative languages and platforms would not be buying on if the platform itself wasn't so powerful. Would IBM have blown $1B+ developing Eclipse if they thought Java had unsolvable issues? Not bloody likely.

    JSSE referred to like a distant cousin: JSSE is Java's Security Extensions, and although the article is correct (it was formerly a plugin, now included in J2EE) it is referred to as "an external module called JSSE" and never once listed as a security extension. Does the author of this "memo" not know a primary, core technology that Java uses for security? Someone is extremely ill-informed, or has nothing whatsoever to do with Java.

    Ultimately, even if this does turn out to be an internal memo, I'd wager it's from a lower-level developer on the C++ side of the company that is angry (or worried) about the push towards Java-based applications over native languages. You can bet your ass this isn't a company-wide, high-level memo, because it's simply not true. How about this scenario:

    1. Internal Sun employee NOT involved in Java becomes disgruntled about getting fewer new projects and more maintenance and support work.
    2. Employee starts to monkey around with Java, either to nitpick well-known faults and flaws or to gain a better understanding, hopefully to get an "in" on new Java-based projects
    3. Employee finds enough nitpicking details to write an "internal memo" recommending Java not be used, or get frustrated that they can't learn the entire language in a day and does the same.
    4. Employee writes said "internal memo", hoping to stir up some discussion
    5. After the employee's claims are shot down, much like I did above, the employee gets even more frustrated
    6. Employee "leaks" the memo to stir up bad press for employer. Since the memo appears on a site where "accidentally" leaked memos appear, employee can feign ignorance.

    Everyone jumps to conclusions on these things. Don't believe everything you read. Java is a spectular language...anyone who has used it for any length of time knows that. The people who have never used it on a real-world project are routinely its biggest critics.

    1. Re:This smells like a fake by TheSunborn · · Score: 2, Interesting

      >Sun complaining about the JRE support model for internal projects...THEY ARE THEY JRE SUPPORT MODEL. It would be a bit like Ford recommending people don't use Ford parts for internal work because they'd have to go to Ford to get support for them. Eh?

      No, it would be like Ford recommending not to drive a ford car to work because they are to unstable to ensure that people come in time.

      >Listing off the memory footprint of various "demo" applications. The "Hello World" reference gives this away as totally bogus. Anyone who's used Java knows about its memory consumption.

      Yes but their point is that the solaris version of jre is far worse then the windows version. The solaris version of jre require twice the memory of the windows version to run the "Hello world" program. And the fact that I know about the memory usage of java does NOT make it less of a problem.

      >Eclipse provides one of the best, cleanest, well designed Java IDEs out there, and starts up into around 25M on my system

      Eclipse might take 25MB to startup, but try to use it for a few hours and se you memory usage go to atleast 100MB. But Eclipse is worth the memory so I just bought an other 256MB ram and are a happy Eclipse user :-}

      But Eclipse just confirm the point of the memo.
      After testing awt and swing, they(The developers of Eclipse) came to the same conclusion as this memo: That awt and swing are unuseable for big projects. I really think sun should think about replacing awt and swing with swt. :-}

      >Backward compatibility across minor releases. Everyone familiar with Java knows that 1.2, 1.3, 1.4, are as far from "minor releases" as they could possibly be. There's absolutely nothing "minor" about them.

      Well the Sun release manager don't know about.
      Remember a version number is Major.Minor.Revision so if
      1.4 is a major to 1.3 it should have been called 2.0 AND there should have been an easy way to ensure that an application could pick between jre 1.3 and 2.0

      I am developing an application(Primary target windows and Mac) which currently run fine in jre 1.3 but got problems running with jre 1.4 due to changes in Swing. The best solution would be just to keep the jdk 1.3 alongside 1.4 but that's not really posible with windows, so now I have to change the app to work with 1.4 and then include(and install) jre1.4 and then hope that our customers don't have any applications that only work with 1.3. Oh what I would pay just to be able to include a version of swing with our application allowing us to run with both 1.3 and 1.4 using the same swing library no matter if the user were using 1.3 or 1.4.

      It is correct that JSSE has been integrated into the JavaTM 2 SDK, Standard Edition, v 1.4 but with 1.3 and early versions it was an external module, so the author might just not have noticed they included it with 1.4. Which remind me: Does anyone know why jsse use >5 seconds on a 800Mhz pentium just to create an ssl connection to a webserver? This is really a big problem for us -((

      I don't know if this memo is valid, but it really does sum up the problems with using java for client side applications.

  41. "Even Sun Can't Use Java" - sure by Glock27 · · Score: 2, Insightful
    Comprehension test, folks:

    We do not believe these flaws are inherent in the Java platform but that they relate to difficulties in our Solaris implementation.

    Also, many of the stated problems are slated to be fixed in Java 1.5...we'll see.

    In the meantime, support gcj or the IBM implementations...on other platforms. ;-)

    Another snippet:

    We all agree that the Java language offers many advantages over the alternatives. We would generally prefer to deploy our applications in Java but the implementation provided for Solaris is inadequate to the task of producing supportable and reliable products.

    Don't throw out the baby with the bathwater.

    And of course, now that I read some of the replies, I see it may well be a hoax regardless. Sigh. (Disclaimer: I've never used Java on Solaris, only Linux and Windows.)

    --
    Galileo: "The Earth revolves around the Sun!"
    Score: -1 100% Flamebait
  42. Is this real? by MagPulse · · Score: 2, Informative

    This is the same site that posted the fake id memo. Is their record besides that one mostly spotless? It seems no one here is doubting whether or not this is real.

  43. Perhaps you should read the letter b4 posting it. by malachid69 · · Score: 3, Informative

    Quotes from the article that show you didn't read the letter before posting it:

    "these issues are not inherent to Java"

    "We do not believe these flaws are inherent in the Java platform"

    "We all agree that the Java language offers many advantages over the alternatives."

    "The customer must locate that release and install it." That, IMHO, is complete BS. I never keep anything but the most recent version installed, on Windows or Unix. The only issue I have ever seen like this was with JHDL from Brigham Young, which used "assert" that was added as a keyword (due to customer requests) in 1.4 -- and it still works if you tell it to compile as 1.3 (javac command-line option). I personally would not support an outdated version when a version with bug-fixes is available for free.

    "Typical resident set requirements for Java2 programs include: Hello World 9M" Again, BS. I have a TINI board running that only has 8M of memory total, AND I have an old Handspring (8M) that has Sun's JDK and IBM's JDK and Java3D on it.

    "Each of these examples is simple, but they demonstrate the general problem that people cannot program for a particular release of Java and expect that their programs will continue to run." Again, BS. I have been coding Java since IBM released JDK 1.0.2 for Win3.11.... I have never had this problem with ANY code I have written.

    And their overall request? "We strongly recommend that management require Java to conform to the Software Development Framework ".

    If you would have read the letter before posting it, you might have realized that what they were really complaining about was Solaris 7 and 8. They even point out that Solaris 9 is fixed. The pieces of the letter that suggested other languages was specific to the Solaris implementation, as my comments above prove that their statistics are not valid outside of Solaris.

    So, Solaris pre-9 is buggy. Big deal, that has nothing to do with how fit Java is as a language.

    Malachi

    --
    http://www.google.com/profiles/malachid
  44. Java vs Python by Lucas+Membrane · · Score: 2, Interesting
    Years back, when Sun first came out with the java VM, some suggested that Python should either scrap its bytecodes for those of the JVM or at least do something to run as fast as the JVM. Guido, the controlling force behind Python, emphatically replied that because Python was a much more dynamic language than java and allowed many more things to happen at run-time than the JVM could support, Python never could compete and never would try to compete with a fast VM like java's.

    My experience is that java is faster than Python, but that speed almost never matters for me.

  45. Re:Did CmdrTaco even read the memo? by Queuetue · · Score: 2, Insightful

    A) The comments are cowmix's, not the editors. And certianly not the moderators.

    B) A five-page email detailling how something is inadequate seems to indicate that it should not be used. In fact, the phrase "That our Java implementation is perceived as inappropriate for many uses is supported by internal documents and policies." is pretty indicative that java is not (and hould not) be used for seriou sprojects.

  46. Article proves Sun should have spun off JavaSoft by cdthompso1 · · Score: 3, Interesting

    I've long believed that Sun, a hardware company, should have taken their Java team and spun it off completely as JavaSoft Inc., as was contemplated in the mid 90s. The consulting and development teams would have one objective: furthering the Java platform. Doing so would have made this memo, if it is legit, a non-issue from a PR perspective. JavaSoft probably would have made the same decision on where to focus their efforts: on making the Win32 JVM implementation the best, and supporting other OSes secondarily. That's what this memo is about: pissed off Solaris admins who are tired of sitting in the back of the bus when it comes to Java. Before the advent of the web applications as the platform of choice for developing new applicattion, and even since, Win32 is where the money is because of the wide install base. (I won't go into whether monopolistic forces caused it; for a software company, you just have to accept this as the current lay of the land.) Obvioiusly the Win32 JVMs get the most development resources, and rightfully so (with Linux probably a close second, thanks to IBM, who wrote their own JVM). Unfortunately, Sun didn't do the spinoff completely, and now people want to see this as a "rift from within" and "Sun not eating its own dog food." I want to reiterate the point that others have made, because some of the early posters missed it: the problem highlighted in this article is with the specific JVM implementation for the Solaris OS. It is not about the failings of Java as a language, J2EE as a specification, nor interpreted vs. compiled applications. Java will be around for a long time to come, particularly in large environments, as evidenced by most major application vendors supporting it (Oracle, Siebel, SAP, PeopleSoft, JD Edwards, etc.) and by the fact that most academic programs are switching to it. In fact, this year for the first time, the high school AP test for programming will be in Java, not C++. It is here to stay because it is a decent enough OO language.

  47. Re:Perhaps you should read the letter b4 posting i by Queuetue · · Score: 2, Interesting
    Large footprint of applications when run on Solaris. A simple application ("hello world" type) has a total footprint of 35-40 megs on Solaris 9 (build 48, using Java 1.4 build 82) on both Intel and Sparc machines. Sparc machines, by far, have a much higher resident footprint then Intel machines (~30 megs, compared to ~11 megs). The same program run on a Windows machine has a footprint of ~5 megs, resident footprint being ~3.5 megs


    Hrm. Looks like Solaris 9 still needs a little work. At least we can see that the PC implementations can get those pesky "hello, world" programs into something more reasonable - like only 5 megs of RAM...

    But it's certainly not the language, nor the design, concepts, nor intent behind it... It must be the implementation. Heck, I'm sure any day now, there will be a JVM that runs even faster, even lighter than native code. Any day now...
  48. THERE IS NO JULIAN S. TAYLOR @ SUN!!! by Jonboy+X · · Score: 2, Informative

    Yeah, it's a fake. I work at Sun, and a quick LDAP search lets us know that Sun doesn't employ a Julian S. Taylor. Geez, I wish f'dcompany.com would check this stuff out before they post it. Actually, I wish /. would check this stuff out first...
    -Jon

    --

    "In a 32-bit world, you're a 2-bit user. You've got your own newsgroup, alt.total.loser." -Weird Al
    1. Re:THERE IS NO JULIAN S. TAYLOR @ SUN!!! by Queuetue · · Score: 4, Informative

      Really? Then who is Julian.Taylor@central.sun.com?

      I found Julian here and here .

    2. Re:THERE IS NO JULIAN S. TAYLOR @ SUN!!! by Jonboy+X · · Score: 3, Informative

      Yeah, see, the more recent of those 2 references is 2 1/2 years old. Sun's LDAP is pretty up-to-date, so I trust it. Maybe he used to work at Sun, but he doesn't any more. In the past 2 years, there's been a lot of that going around at Sun...

      --

      "In a 32-bit world, you're a 2-bit user. You've got your own newsgroup, alt.total.loser." -Weird Al
  49. Psyco, not Pysco, and no psyco package in debian by jdgeorge · · Score: 2, Informative

    The typo in the parent post confused me at first (spelled correctly the first time, wrong the second). Furthermore, there does not appear to be a psyco package in Debian.

    To clarify:
    psyco is the name of the Python specializing compiler. The Psyco project homepage is:
    http://sourceforge.net/projects/psyco/

    pysco, on the other hand, is a group of python modules for composing music. More information about pysco is available here:
    http://www.slinkp.com/code/#pysco

    I could not find a package for either of these in Debian.

  50. Java FUD by Dragonshed · · Score: 4, Insightful

    This article is a giant vat of uninformed bullshit.

    I won't address Java 1.4x points because in general, java 1.4 sucks. (Handicapped threads, new io architecture forced on installed base, inept standard regex and logging facilities, bah)

    Java on store shelves: The fast majority of companies use java to model internal business processes and integrate them into systems. Java is extremely useful for this because programmers don't have to worry about hardware. This is not the kind of software you shrinkwrap.

    TogetherJ/TogetherSoft: The installer asks you if you want to install a JDK with the product, or use a separately installed one. It also will tell you if your installed JDK is sufficient.

    Python: Python source is compiled into bytecode upon first interpreting. It has it's own VM, also mutable from native code. There are quite a number of differences between python and java, but your comparison is uninformed.

    Java Minor releases: The differences between 1.2 and 1.3 is quite large. These are not minor releases, despite sun's versioning scheme.

    JNI Stability: JNI isn't easy to produce correctly. But it's stability is a responsibility of the programmer. C programmers don't blame the OS when a program segfaults.

    I guarantee had this article been about perl's deficiencies, it would've been scrutinized with a scope large enough to see Venus, and wouldn't have made it passed submission.

  51. Re:Can someone explain "The Java allure" to me? by clard11 · · Score: 2, Interesting

    On the server side it's because companies like the idea of component based development, where they can employ programmers to concentrate on building good reusable application level components, but get the benefit of transactional support that the J2EE containers provide.
    The thing is, CORBA is tricky for remote objects, whereas J2EE has provided a whole eco system in short timeescale to do this stuff - right from IDEs through to the J2EE servers themselves. And the best bit for the real world is that there is a high degree of OS and Architecture independance. Not total I'd agree, but enough to make people who were once locked into SNA networking etc. a lot happier about the future.

    --
    catch (ModDownException mde) {post.modUp("Interesting")}
  52. Sun: please stop the Java madness! by Paul+Boven · · Score: 3, Interesting

    I use and admin Solaris systems every day, at work and at home, and in itself it's a great product. But its biggest problem is Java. More and more stuff is being java-ised, resulting in absolutely horrid performance.
    Examples: the SunScreen 3.2 commandline. Takes ages to load or do anything, especially viewing your firewall logs. Sun Managment Center: It does not perform. It becomes completely laughable when you try to display the screen on another Xserver. This is how Sun was demo-ing it at Lisa2001, and although the lead developers over there agreed that it didn't perform, they blamed this on Swing but had this scary religious fervor when it came to doing things in Java.
    The new patch-managment tools from Sun? Nice idea, very flawed implementation. Sloooooow, and so buggy that we ditched it, prefering to keep our Suns up to date by hand.
    Java installers are another fun item. Sun has a very nice packaging system, which makes it possible to jumpstart machines with identical software configurations etc. But more and more software becomes 'java installed'. It does not add any functionality apart from a badly drawn gui, but it breaks all the convenience of having one standard packaging tool for the os.
    Please stop this madness.

  53. Re:Can someone explain "The Java allure" to me? by jjohnson · · Score: 2, Insightful

    Slow...

    For the last couple years, Java has been more than fast enough, if you know what you're doing. The clunky performance of the JVM is a thing of the past, and programmer skill is what matters now.

    heavy-handed controls on the reference implementation

    That's the point: there's a much clearer path for a programmer to follow. If you're not reinventing the wheel, the path is much better marked than it is for a C/C++ coder.

    sub standard culture-enforced methods of doing everything from builds to deployment

    "Sub standard" is your opinion, but again, that's the point: it's a much more restrictive environment that limits what can go wrong. With garbage-collection, you don't have fine-grained control over the memory lifespan of your structures, but you get automatic memory management. That's a tradeoff people are willing to make when the circumstances warrant/allow. Java vs. C/C++ is all about the tradeoffs you want/are willing to make.

    ...cheaper to develop...

    This depends on the coder's skill and experience. Java can be a much faster development platform. C development is as fast only when the development environment has been restricted in the same way by choice of libraries/code style, etc.

    --
    Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
  54. I've got my doubts about this memo as well... by grnchile · · Score: 2, Insightful

    Is it legitimate? I first saw a pointer to this a couple of days ago
    on fuckedcompany.com. That's hardly a ringing endorsement of
    legitimacy. Even if it real, is it significant? Not clear.

    It looks to me like mostly an attempt to get attention. I have to
    admit, somewhat reluctantly, that I used have to write memos along
    these lines when I worked for a company that ships a prominent
    application server. The fact was that there were only two ways to get
    attention focused on problems that would keep us from shipping our own
    product on this app server: 1) Find the developer responsible and
    persuade him to fix it or 2) Get one of our executives to yell at one
    of their executives. Often the second approach was the only one that
    had a chance of working and it required memos like this (complete with
    specific bug numbers, sweeping generalizations about the support
    structure, dire warnings about the future and so on). This is
    corporate politics at its "finest." Quite the technique for building a
    close working relationship, eh?

    Some of the points about application-specific JVM version requirements
    and footprint have merit (even if they're overstated, in my
    experience), but generalizing this to "Sun does not eat its own dog
    food" seems difficult to justify based on the limited examples shown
    here. How much of Sun's software is actually written in Java, for
    example? And if Java is such a problem, why has the app server market
    been growing so quickly?

  55. Re:Perhaps you should read the letter b4 posting i by _fuzz_ · · Score: 2, Interesting
    I never keep anything but the most recent version installed, on Windows or Unix... I personally would not support an outdated version when a version with bug-fixes is available for free.

    With every release, Sun breaks something that worked in an older version. Swing in 1.4 blows up all over the place where 1.3 worked fine. If the failures in the latest JRE don't affect you, then you can use it. The place I work for runs into this with every release we make. We have to pick one version and say we only support that because other versions have bugs. We also don't have the QA resources to make sure we run on every single version. We're not the only ones. BEA WebLogic still does not support JDK 1.4, even though it's been out for over a year and is approaching the second minor version update.

    "Typical resident set requirements for Java2 programs include: Hello World 9M" Again, BS. I have a TINI board running that only has 8M of memory total, AND I have an old Handspring (8M) that has Sun's JDK and IBM's JDK and Java3D on it.

    Just because there's a Java implementation that runs on a small platform doesn't mean the one that runs on Windows or Solaris isn't grossly overweight. IIRC, running something not a lot larger than Hello World on 1.4 for Windows takes about 12M. That's a stupid-big footprint and there's a feature request in-process to fix it.

    --
    47% of all statistics are made up on the spot.
  56. Re:hoax, this memo is by Anonymous Coward · · Score: 2, Funny

    Obviously if the domain is "internalmemos.com" it must be an internal memo.

    Otherwise, they would have called it "internalmemohoaxes.com". Try using this thing called "logic."

  57. Re:Why? by ceswiedler · · Score: 2, Insightful

    Note that the definition of "optimization" is "making small changes to make something that runs ok run faster". Optimization implies that without it, the app would still be at least marginally acceptable. "Better is the enemy of good enough" is a similar quote.

    Architectural and design decisions are not optimizations. With the wrong architecture, performance can be so slow as to be impossible to adequately optimize. There is no such thing as "premature design".

  58. Re:p-code by Queuetue · · Score: 2, Insightful
    Then you have to make 1000 platform specific VMs + 1000 programs that run on the VM. That's a total of 2000 programs.

    First, there aren't 1000 platforms. There are probably 10 that anyone would ever have to worry about at any given time.

    Second, if you write it in C or C++, you get the benefit of native code which is just as "run anywhere" as a VM. The VMs are written in C++, right - which indicates that C is already there - who needs the VM?

    Third, you're correct. If you absolutely *have* to use a vm, use python. At least get value from your language choice, not C++ in an uglier box.
  59. Sun employee: memo is on target by joelparker · · Score: 5, Interesting
    You haven't seen it? Is it possible you haven't looked for it?

    I am a former Sun employee and I wrote these kinds of memos.

    Specifically, I wrote that Java was unsuitable for Sun's own web development projects, and that this represented a serious problem in terms of missed opportunities to improve our software and for our public relations and marketing.

    The memo may be a fake, but it's right on target. I especially agree with the problem of internal tech support for critical bug fixes.

    I worked on several projects that were a nightmare due to subtle bugs in Java's HTML and XML classes. In each case, the bugs were easy to fix: a few lines of code, changing private methods to protected methods, etc.

    The response from Sun support? "Will not fix."

    So I had to rewrite the classes-- basically rederiving the entire Java HTML+XML parsing tree-- which stuck the customer using my custom code. Talk about a bad upgrade path!

    There were many, many examples of this. As a result, I deployed many projects using Perl on Linux instead of Java on Solaris, and I wrote internal memos like the one in this article.

    All that said, the Java engineers were some of the smartest, nicest people I've ever had the pleasure of working with. I have a lot of confidence in them, and each Java release gets substantially better and faster. The problem IMHO is not the engineers, but the corporate culture that misses opportunities to learn from employee projects.

    The Sun engineers and internal developers can really do some amazing things, if McNealy and Zander could start prioritizing Java inside Sun, and start funding rapid-turnaround tech support for employee programmers.

    Cheers,
    Joel

  60. Obligatory jwz reference by prostoalex · · Score: 2, Informative

    Why Java sucks , written in 1997, but some points still hold true.

  61. Re:I also have experience by g4dget · · Score: 2, Informative
    GUI though - I think that works pretty well already across platforms. There just aren't a lot of people that seem to be able (or willing) to use Swing very well. Frankly, I can't imagine a GUI I'd rather have if I needed to have heavily customized controls.

    Swing widgets themselves work reasonably well and are fairly easy to extend. The problems with Swing and Java are in areas like window management, focus, native LAF, drag-and-drop, and desktop integration. And for many of those problems, there are no easy workarounds because they involve native code.

  62. Power Grab by Performer+Guy · · Score: 3, Insightful

    This is a power grab by an internal Sun committee. It's riddled with scaremongering and concocted reasons why the ARC should control Java. It's a sign of deep malaise within Sun.

  63. Re:all non-Windows JREs by j3110 · · Score: 2, Informative

    Just so you know... I think the problems that you mention were fixed in Java 1.4... In fact, they were the major concerns of the release other than NIO and the obvious stuff. Also, non-SUN JRE's preform much better as well on the whole. IBM makes the best, but SUN caught up a lot on 1.4, and surpassed IBM in a select few cases. IBM now has a 1.4 JDK for Linux on xSeries(x86). It's only free as in beer, but it's worth toying with to get a feel of where Java is headed in the next few years.

    I'm fairly sure this is a hoax memo, but even if it's not, it only talks about the implementation of Java on Solaris.

    The main reason I like Java is that I won't have to do anything, and my programs will magically get faster, support 64bit processors and other architectures. Java has the potential to be faster than C. Java libraries/classes can have functions inlined at run-time. C has to be recompiled. Java can optimize for whatever processor it is running on. C has to be compiled for the least common denominator of hardware it will be running on. Java programs have an extensively tested standard API of functions to ensure backwards compatibility. In C you may have to recompile or change code whenever a new version of Windows rolls out. Java is a very well structured object oriented language compared to C or C++. Java SQL database drivers must adhere to strict SQL standards to be considered for different levels of JDBC compliance. I can write SQL that is garaunteed by the JDBC driver to work on a database, thus having true database independance. In C, each vendor implements a different subset of SQL in different ways such that you have to pick up a third party abstraction layer, or write your own, or target one database (ODBC doesn't work, even Access runs queries locally).

    The only downsides to Java is: all java programs will use more memory than C programs... always! Java programs will take longer to start until a shared VM is implemented(is a JSR right now). Java will be slightly slower than C until Java has had about half as much time to develop compiler(JITC) technology that C has. Java will be slower at floating point until an API for fast system-dependant/non-IEEE floating point math is supported (This is why people claim, and are accurate to a degree, that Java isn't as fast as C at raw number crunching... This is probably the only reason as well).

    Of those, the only problem that will always plague Java is large memory footprint. That is because it comes with it's own libraries and must do garbage collection.

    It's appearant to anyone (like g4dget) that SUN sinks more time into the Windows JRE than anything else. The second biggest, as of 1.4, I would have to say is Linux/Mac. Solaris is the lowest on the list really. Most people that use Solaris use it for Oracle. The Java market has always been on Windows and IBM machines. IBM rolls their own, and they do a great job. Maybe they will release theirs a bit more free if their agreement with SUN will let them. I don't think they are allowed to discuss their contract with SUN because of the contract itself. At least, that's the rumor about the Java contracts that was on the net about 5 years ago.

    --
    Karma Clown
  64. 'Extensions do not support modularity' by xsumeman · · Score: 2, Insightful

    This section of the memo was, for me, the most interesting:-

    3. Extensions do not support modularity.

    As new extensions are introduced, they are released separately under their own names and distributed generally. Each one may go through several revisions as separate modules. At some point, they are then folded into base Java, tying base Java's version to the versions of dozens of smaller yet distinct functionalities. These functionalities are then restricted to a draconian backward-compatibility rule since once folded in, they are no longer selectable modules. Examples include modules that used to be called Swing, RTI, IDL, JSSE and JAAS. These are all good things that should be part of Java. Our concern is that these are not separable modules which can evolve as requirements change.

    The Java system for evolving the interface (deprecation) does not serve production software very well. Once the interface disappears, the product just breaks. If the Java base were simpler and the more advanced features (those most likely to be deprecated) were delivered as versioned modules, it would be possible for a commercial product to retain it's older modules on the system and survive a large number of Java upgrades. Production quality programs written in Java, like TogetherJ, indicate a specific Java version which must be installed before the program is run. If another program is installed, requiring a higher Java version, the user may be forced to decide which program stays and which goes away.

    Alternatively, the other Java version could be installed to a different base directory but this requires considerable sophistication on the part of the user, complicates administration and violates the ARC big rule that common software must be shared.

    In earlier Java releases there were useful APIs that weren't available in the core, such as XML/XSLT, JNDI, Swing, etc.. but for application developers like me, it was straight-forward enough to distribute these extensions with applications that needed them. Sun's policy of bloating the core with all these Java extensions is actually harmful to Java. For example, Sun's official explanation for putting logging facilities that were inferior to Apache's log4j was that there was a JDK 1.4 Merlin release deadline to meet. Same goes for the stunted XML API's in JDK 1.4. Why can't these extensions grow, evolve and mature outside the Java core? As long as they're easy enough to distribute, do they need to be part of one big release?

    What the Sun engineers are complaining about is that a change in one of what could be hundreds of extensions breaks the entire platform. To try to prevent this, Sun have imposed 'draconian binary-compatibility rules' which are a sure way of prohibiting refactoring and major improvements, bottom line: Java bloats and innovation effectively stops.

    Either Java needs to use it's own extension mechanism more consistently, or to create one that is more flexible/usable and more open to third-party code. How many times have you needed a particular version of xerces, xalan or log4j in the classpath? (or found out your customer has a different version that the one you built with, and this is the cause of that subtle and evasive bug)

    It's not just the Solaris performance/memory aspects of Java that are a problem, it's the very way that the technology is distributed and evolves. I've had a lot of fun/success with Java and want it to continue getting better. Congratulations to the insightful engineers behind this memo.