Slashdot Mirror


Beyond An Open Source Java

Karma Sucks writes "LinuxToday is featuring a intriguing article on why Sun should open source Java, as a stronger followup to the recent ESR saga that was reported here. The writer notes: 'Sun needs to do some radical things to improve its chances of survival, and all of them involve Open Source in some form or the other.' One thing the article fails to mention is the threat of Mono, which should be of special interest to Sun, with its vested interest in GNOME."

550 comments

  1. Java is ok by Amsterdam+Vallon · · Score: 0, Interesting

    I still prefer C/C++ though, honestly.

    I just like having control of the code and being able to do hardware-level stuff. Also, it's just plain faster.

    Java is cool for uber-OO projects, for but most stuff, I'm a strictly C/C++ guy.

    --

    Reply or e-mail; don't vaguely moderate. Ex-O'Reilly/MIT employee, now a full-time Google employee.
    1. Re:Java is ok by Anonymous Coward · · Score: 0

      I still prefer mixing Python & C via SWIG. Fantastic, easy to use OO language when that's what I want, and speed when I need it.

    2. Re:Java is ok by Anonymous Coward · · Score: 0, Offtopic

      Modded down... does having a C preference get you shunned around here? I program in assembly (not for PCs), do I get an "overrated" now?

    3. Re:Java is ok by kfg · · Score: 3, Insightful

      Java is cool for uber-OO projects. . .

      Nah. Java is cool for run of the mill OO projects where everyone else is using Java too, because everyone else is using Java.

      If you want to look at something interesting check out Apple's Squeak, an implimentation of Smalltalk-80 where even the VM is written in open source Smalltalk.

      Squeak

      KFG

    4. Re:Java is ok by aled · · Score: 1

      "Squeak began, very simply, with the needs of a research group at Apple."
      I don't think Squeak is an official Apple project. It just was born there.

      --

      "I think this line is mostly filler"
    5. Re:Java is ok by kfg · · Score: 1

      It's distributed under the Apple Open Source license.

      KFG

    6. Re:Java is ok by cbiffle · · Score: 5, Insightful

      I'm only replying lest the parent might be modded up.

      As a professional Java developer who works primarily in Eclipse, Java is not your problem here.

      Are you using a legacy app based around AWT? Then your GUI will most likely be annoyingly limited (with a couple of exceptions on MacOS X).

      Are you using a GUI app using the Swing toolkit? Okay, yes, that's going to be slow -- I'll give you that. But that's similar to saying "Linux is ugly! Just look at (GTK|Qt|Tk|whatever)!"

      Seriously, I'm tired of reading this drech on Slashdot. A properly-implemented Swing is reasonably fast (see MacOS X for an example), but unfortunately the Windows implementation isn't one. Before slamming the language, however, try changing toolkits -- I recommend SWT, as used in Eclipse.

    7. Re:Java is ok by Anonymous Coward · · Score: 3, Insightful

      > It is still to damn slow

      My god, what sort of equipment are you running Java on, an abacus?

      No, Java probably will not be used in the next uber-doom type progam, but for everyday usage type programs on fairly recent computers (built within the last couple of years) it's perfectly fine.

      I'm getting the impression that there are a lot of really POOR programmers out who have no idea how to make a program run fast and use C or C++ as a crutch.

      I also get the feeling that there are a lot of people out there who really haven't even tried a real Java application and just continually regurgitate the MS line.

    8. Re:Java is ok by nineoneone · · Score: 0

      Look I don't use windows and I have a fucking diploma in Java based apps for the net. Lots of it was good - a really revolutionary idea (re cross platform) and I thought it was just ahead of its time and that the hardware would catch up. Well the hardware HAS caught up and Java has become ever more bloated, sclerotic, almost. I'm running java apps right now (linux) and they are all noticably slower than any other apps I run. Just my experience.

      --
      sig under development
    9. Re:Java is ok by Trejkaz · · Score: 1

      That is kinda cool actually. Now let's write a JVM in Java!

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    10. Re:Java is ok by malachid69 · · Score: 5, Interesting

      I completely agree (with everything except SWT/Eclipse).

      Everyone was talking about how Java is slow, and how it looks ugly, and we should do our app in VB.

      My boss let me write it in Java anyways (with comments that if it did NOT perform well and look good, we might have to redo it in something else).

      I passed it off to the guy doing the C++ remote server, and he was completely impressed with the looks and speed (yes, it was even Swing on Windows). I came into work the next morning to everyone congratulating me on a great UI, because evidentally it was shown off to everyone at the Pub the previous night.

      The point is, there are a few problems of bad performance/look in Java UI... These are:
      1) User is using an old version of Java, usually one that is end-of-lifed.
      2) The coder wrote it in AWT
      3) The coder wrote it in Swing, but without reading ANY of the documentation on Swing+Threads
      4) The UI was patched & patched over and over, without designing it correctly first
      5) The coder didn't utilize any look-n-feels
      6) Bad threading design (ie: synchronizing when there is no need to, etc)

      Is there anything that could be done better? Of course, otherwise there would be no one coding with the JCP. But, can you HONESTLY say any other language is completely perfect as-is?

      I don't agree with your point about Eclipse/SWT though. I have a serious problem with needing to install any 3rd-party platform-specific java libraries... just goes against the whole concept of pure-Java, but then again, I am a purist. I also don't like the overall look of the SWT apps (some of the things like the disappearing Xs on the tabs annoy the hell out of me), and don't like the complexity that Eclipse adds to simple projects. I remember feeling the same way about JBuilder years ago, but to a lesser degree. Today, I write all my Java code in JCreator (or pico if I am logged into my BSD box), and use ANT to build with.

      I am also tired of all the "Java-should-be-Open-Source" by people who have never bothered to spend 10 minutes looking into the JCP and how Java IS currently Open Source and how Java is NOT run exclusively by Sun anymore. Every couple days/weeks, I log onto Slashdot and someone else is making these presumptious claims without looking into the facts.

      Just my 2 cents

      --
      http://www.google.com/profiles/malachid
    11. Re:Java is ok by timeOday · · Score: 1
      Seriously, I'm tired of reading this drech on Slashdot. A properly-implemented Swing is reasonably fast (see MacOS X for an example), but unfortunately the Windows implementation isn't one. Before slamming the language, however, try changing toolkits -- I recommend SWT, as used in Eclipse.
      I'm not specifically accusing you, but *some* java fans defended AWT back when. Then Swing came out and they admitted AWT was junk but Swing was great. Now Swing is left for dead and here comes SWT.

      The reason Java proponents are sick of hearing that it's slow is because the rest of us are sick of slow java programs. We've never bought a commercial Java app, and we've never accessed an applet that didn't take an annoyingly long time to load up the JVM plus that applet. I don't deny there's some appropriate application for Java out there, somewhere, but it's apparently not something that applies to most of us.

      Java proponents should be asking themselves why Flash has taken over for most web apps and games.

    12. Re:Java is ok by DonGar · · Score: 1
      That is kinda cool actually. Now let's write a JVM in Java!

      I did that once. It was to allow detailed emulation/step through debugging of a slightly off-spec (no floating point) embedded Java device by Dallas Semiconductor.

      I had a lot of fun with it, both because the device was cool, and well... because it was fun to write Java in Java. It was easy, both because the Java spec was straightforward, and because performance was NOT an issue, so I could for for the simple but reliable implementation.

      --
      plus-good, double-plus-good
    13. Re:Java is ok by Mysteray · · Score: 1
      I'm getting the impression that there are a lot of really POOR programmers out who have no idea how to make a program run fast and use C or C++ as a crutch.

      Or it's the "POOR programmers" that gravitate to Java . . .

      ;-)

    14. Re:Java is ok by angel'o'sphere · · Score: 2, Informative

      That is kinda cool actually. Now let's write a JVM in Java!

      Done.
      google for RVM, research java virtual machine. An IBM project.
      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    15. Re:Java is ok by Rallion · · Score: 1

      I'm getting the impression that there are a lot of really POOR programmers out who have no idea how to make a program run fast and use C or C++ as a crutch.

      Okay, I can't possibly say you're wrong, but you seem pretty angry about it.

      The truth is, there is a real performance difference. I say this after watching some very simple, no-GUI programs translated straight from C++ to Java code. No extras added, bare minimum amount of work. We're not talking benchmark-quality testing here, but it is practical testing. Runtime could vary up to 50% in some of the cases. To me, once the simple program turns complex, that 50% matters.

      See, I started on C, and used it for a long time. I got a fairly nice feel for speed of operations over the course of years. And then I started using Java, for the simplest of things, and it really annoyed me. A tiny delay where I've optimized something as much as I can, a tiny delay in the loading of the program, these things bother me because I'm used to something faster.

      But sure, there are plenty of bad coders. Of course. People who are ignorant, careless, and lazy. But hey, even those people can write stuff that runs at a decent clip in C. That's because, though Java is touted as an 'easy' language (and in many ways it truly is) in some ways it's much more complex. It does stuff you don't tell it to do. It's often doing lots of work you don't need it to do. A person making high-quality apps needs to learn what that work is if they're going to make a program run efficiently--and it's still just about never going to be as fast as a C program written with the same level of care and tweaking.

      All that being said, I do like Java. I love a lot of its features and for many apps it would be my language of choice. But once it reaches a certain level of complexity, I'd rather save the CPU cycles and go with something better. And that's rather a shame, as I love Java architectually as well...but as soon as that design really gets put to use on a large project, the costs outweigh the benefits, IMO.

    16. Re:Java is ok by dnoyeb · · Score: 1

      most people that bash java have no idea WFT they are talking about. They just repeat the age old mantra, "Java is slow." But Java has always been as fast or FASTER than c/c++. Runtime optimization is awesome.

      Also people tend to forget that Java is run as a c/c++ program because that is what the JVM is written in. So the whole comparison is idiotic.

      And of course we could speed the load time of Java, just as all the other cheating-ass windows programs do, load the libraries during OS boot...

      Flash? When is the last time someone ran a server on that...

      Java proponents are sick of hearing Java is slow (especially on slashdot) because its just an uninformed regurgitation.

    17. Re:Java is ok by sbrown123 · · Score: 3, Informative


      I say this after watching some very simple, no-GUI programs translated straight from C++ to Java code. No extras added, bare minimum amount of work.


      I wont dig for the Slashdot article but a OSS article covered a benchmark showing Java running as fast (and sometimes faster) than C++. One thing poorly done though in Java was trig functions.

      Java does come with some baggage you wont find in C++. Mainly thats the garbage collector. But then again, you cant get a memory leak in Java which is very simple to do in C++.


      But once it reaches a certain level of complexity, I'd rather save the CPU cycles and go with something better.


      I mix the two. Theres two ways of doing this: JNI or CNI. The Java Native Interface is okay for accessing C code from Java. The Cygnus Native Interface (see gcj) treats every java object as a c++ object which makes using the two languages together very easy. Oh, and GCJ allows you to compile to native executable rather than byte code if speeds and issue.

      Now, I dont see java becoming a mainstream staple for game development or heavy multimedia. But I could be wrong in the next couple of years.

      I have to say you are atleast honest and explained your views. Many Slashdotters give the "its slower than dirt" and generally have no idea what they are talking about. I myself play all sides and just know the strengths and weaknesses of the different languages and dont play favorites. Its the best way to be IMHO.

    18. Re:Java is ok by Curtman · · Score: 1

      I also get the feeling that there are a lot of people out there who really haven't even tried a real Java application

      For curiosity sake (NOT argumentative), could you please cite an example of a real Java application?

    19. Re:Java is ok by sbrown123 · · Score: 1

      Yep, java's great for those enterprise apps where theres a bunch of transactions and communication between a whole bunch of crazy oddball systems. But I dont expect the next version of Doom being programmed in it...

    20. Re:Java is ok by Anonymous Coward · · Score: 1, Interesting

      You missed one:

      7) The coder uses an excessive amount of threads to make up for poor coding skill.

      One problem with Java is that it makes threading so damn easy that people abuse it.

    21. Re:Java is ok by cubic6 · · Score: 2, Insightful

      First, I do know WFT[sic] I'm talking about. I've used quite a few Java apps, from Ant to Netbeans to a little JSP/Servelets. I've also written a lot of C++ and C. It's ridiculous to say that Java is always as fast of faster than C and C++. In certain heavily optimized situations, it can be. But simply due to the extra overhead from GC and the VM, there's a significant slowdown compared to any language that compiles to native machine code. I'm excluding Java code that's natively compiled, because that gives up much of what makes Java good.

      You're completely avoiding the real issue here. You can say "Java is as fast as C++" as much as you'd like, but that doesn't change the fact that most Java apps ARE slower to the end user. This may be because the libraries aren't loaded or the UI isn't as responsive, but the bottom line is that Java isn't keeping up.

      You refer to "cheating-ass windows programs". I assume you're referring to programs like Office or Mozilla who have a quickstart option that loads the program into memory on boot. That's a whole different issue. Most native code programs start fast because there isn't much to start up, not because they cheat. There's a lot more to it than that, but my post is getting long already, so I'll explain the rest if you really want to hear it.

      In short, just because a lot of people claiming Java is slow are idiots doesn't mean that you can just dismiss their complaints. There are a lot of smart people who want a faster Java too.

      --
      Karma: Contrapositive
    22. Re:Java is ok by D'Sphitz · · Score: 1

      it was a "quick post the first thing that comes to mind and try to sound smart" karma whore first post. it should be modded down even further.

    23. Re:Java is ok by Milo77 · · Score: 1

      i agree that it is unfortunate that swt requires additional libraries. however, i agree with swt's philosophy of using native widgets so that the user experience is consistent. on linux we're used to every app looking different, but most windows users are used to a little consistency (and i prefer it, and apparently so does redhat). swings look-n-feels are mostly a joke - i can always tell a swing app by appearance even with the native os look and feel because it is not identical. you're a self-proclaimed java purist - well, i am a user interface purist. here is my question. sun's official stance is that swing should be used because it allows all java applications to look and act the same across all platforms. why would i want that? i *want* my application to act the same as other apps on the platform - not the same on all platforms. further, i also want my application to take advantage of the theme support of the platform. for example, i've created several custom swt controls and they all used swt's facilities for querying the system "selection" color, so when someone changes that color in the window manager's settings my custom controls (along with the other builtin swt controls) instantly reflect the change. the disconnection that exists in swing in this regard is absolutely unacceptable in my opinion.

    24. Re:Java is ok by malachid69 · · Score: 1

      When we investigated SWT, it was because SWT was supposed to look like all our other "Windows apps". But, in reality, it didn't. There were lots of differences, but the tabbed pane was the one that stood out the most. Upon looking at the Eclipse IDE (which I assume uses SWT?), management (and I) complained that it did not look like ANY other app on our system -- which is the only reason we were considering it. If you have experience of the apps looking like all the other windows apps, I would be interested in seeing some screen shots.

      As far as the theme support for the platform, it is there for Motif (original Unix theme for Java), as well as GTK (Skin L&F). Not sure about KDE. The new XP look actually looks really good, and the JFileChooser actually has the sidebar that we have all been complaining about now.

      As far as the system colors... I thought that was what it defaulted to when using the Windows look and feels? I could have swore the apps matched my coloring scheme. I will have to relook at that.

      --
      http://www.google.com/profiles/malachid
    25. Re:Java is ok by putaro · · Score: 1

      I'm getting the impression that there are a lot of really POOR programmers out who have no idea how to make a program run fast and use C or C++ as a crutch.

      No, there's a lot of programmers out there who are insecure and like to say they use C because they think you're more macho if you do. I did C for 10+ years and wrote kernel code for supercomputers (yes, I did have stuff running on a Cray Y-MP, thank you). I got big swinging ones when it comes to software and I feel no need to impress people with my choice of language. I like working in Java because I get a lot more done and spend a lot less time chasing silly bugs. When something needs to be super quick or really close to the metal I'll write some C or some assembler as required. There are very few things that Java's not fast enough for, though, and the ability to get work done faster is where the perfomance lies for me. Also, I can pull in a library to do just about anything at this point...AND IT DOESN"T CRASH THE REST OF MY APP. In C I usually wind up rolling my own because using other people's libraries is a sure road to disaster.

    26. Re:Java is ok by Glock27 · · Score: 3, Interesting
      Java proponents should be asking themselves why Flash has taken over for most web apps and games.

      First of all, I'd dispute that Flash has "taken over for most web apps and games". Much is done using Flash, but Flash script is scarcely an industrial strength general-purpose development language. Many of the major web-apps and games are in Java, see "Yahoo Games" and many others. Many "web-apps" are server-side, in which Java thoroughly dominates.

      Whatever advantages Flash has are simply largely related to being endorsed by Mr. Monopoly - Microsoft. Web developers, being able to count on Flash being there bundled with IEEEEEEE (pronounced Aieeeeeee!;) simply went with that rather than risk user disgust with a JRE download and slow Java startup times (due to no pre-load with the browser)s.

      Sad, but true.

      Sun's recent bundling deals with major PC OEMs, as well as more general broadband availability may help, but Java now has an uphill climb as far as applets go. Fortunately, full-blown Java apps (including those using Java Web Start) are more interesting anyhow... :-)

      jFlash is interesting as well...

      --
      Galileo: "The Earth revolves around the Sun!"
      Score: -1 100% Flamebait
    27. Re:Java is ok by Anonymous Coward · · Score: 0
      In short, just because a lot of people claiming Java is slow are idiots doesn't mean that you can just dismiss their complaints. There are a lot of smart people who want a faster Java too.

      Even Java at Sun appears to have problems.

    28. Re:Java is ok by Milo77 · · Score: 1

      there are two tabbed panes - one uses the windows control, the other is a custom "branded" control that does look different. many of the controls in the org.eclipse.widget.custom (might be off on the name) package are those created specifically to give eclipse a "branded look". i don't exactly buy their reason for doing this, but with a little poking around eclipse.org you should be able to find an explaination...

  2. Dumb question by Brian+Dennehy · · Score: 3, Interesting

    So what exactly is closed-source right now? The language is obviously out in the open. Is that copyrighted? Is it the compiling into binary code itself that is copyrighted?

    1. Re:Dumb question by Amsterdam+Vallon · · Score: 5, Informative

      The problem is the way Java is being developed and maintained as a proprietary programming language base.

      There are two major Java implementations currently in use -- one by IBM, one by Sun Microsystems. Both of them may come without charge, but are without the freedom that would make them qualify as Free Software.

      Therefore, all software written in Java (even software under a Free Software license) running on such a platform will "put the user's freedom at risk" (a quote from FSF/GNU people). It's like running Free Software on Windows.

      If you want more detailed 411 about the status of Free Software versions of Java, hit up the following URL:
      http://www.gnu.org/directory/devel/prog/java/

      --

      Reply or e-mail; don't vaguely moderate. Ex-O'Reilly/MIT employee, now a full-time Google employee.
    2. Re:Dumb question by aled · · Score: 4, Insightful

      Last I read is that Sun doesn't have a problem with open source implementations of Java, is just that Sun isn't doing one.

      --

      "I think this line is mostly filler"
    3. Re:Dumb question by Trejkaz · · Score: 2, Interesting

      It's not really closed source. They let you download the source, they let you compile the source, they let you run the binaries, I think the limitation is on the redistribution of those binaries, and the source. So I would have considered it open source, but non-free.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    4. Re:Dumb question by deanj · · Score: 3, Informative

      I'm not getting something. When you say "but are without the freedom that would make them quality as Free Software" ....what does that buy you? And how is "this putting the user's freedom at risk"?

      I'm free to develop whatever Java software I wish. They're improving it like crazy, with the help of tons of pretty smart people (look at Doug Lea's working group's contribution in the latest JDK).

      Maybe I'm not getting something here, but it sounds like people just want it to be open source so it can be open source. I'm not seeing what the benefit would be.

    5. Re:Dumb question by malachid69 · · Score: 4, Informative
      Ok, for all those people who keep talking about how Sun is running Java, and how it is closed source, please read this faq before posting anything further about it.

      Three specific quotes:

      Q: How many people are currently JCP members?
      A:
      The JCP has over 500 company and individual participants.

      Q: What prevents Sun from controlling or dominating the groups that develop and maintain Java specifications?
      A:
      Sun, and the other Executive Committee (EC) members, serve as technology oversight groups for the work of the Expert Groups. The ECs do not micro-manage the day-to-day workings of Expert Groups. Rather, the ECs have the opportunity to review the work of each Expert Group at well-defined points as their specifications proceed through the JCP. The primary function of the ECs is to ensure that specifications do not overlap or conflict with one another and that the specifications meet the needs of the industry segment for which they are being written.

      The following EC members elected by the community during the JCP EC Elections in October and November of 2001 took office on November 20, 2001: Apache Software Foundation, Apple, BEA Systems, Borland, Caldera Systems, Cisco Systems, Compaq, Ericsson, Fujitsu Limited, HP, IBM, Insignia Solutions, IONA Technologies, Macromedia, Matsushita Electric Industrial (Panasonic), Motorola, Nokia, Oracle, PalmSource, Inc., Philips, RIM, Siemens AG, Sony, Texas Instruments, and Zucotto Wireless, as well as an individual participant, Doug Lea, representing the research and education communities

      --
      http://www.google.com/profiles/malachid
    6. Re:Dumb question by Mysteray · · Score: 5, Informative
      It's not really closed source. They let you download the source, they let you compile the source, they let you run the binaries, I think the limitation is on the redistribution of those binaries, and the source. So I would have considered it open source, but non-free.

      You can consider it whatever you want. However, there is an official Open Source Definition that most people mean when using the term. Also see the Debian Free Software Guidelines (DFSG). Sun's Java process, though fairly open for a commercial software product, doesn't comply with the letter or the spirit of either of these.

    7. Re:Dumb question by Trejkaz · · Score: 2, Insightful

      That's okay, because that official definition says "No Discrimination Against Persons or Groups", and plenty of open source software discriminates against commercial ventures, which could be considered groups. Every description in that list sounds more like free as opposed to open source... if the two are going to mean the same thing, why have two different terms?

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    8. Re:Dumb question by Mysteray · · Score: 2, Insightful
      That's okay, because that official definition says "No Discrimination Against Persons or Groups", and plenty of open source software discriminates against commercial ventures, which could be considered groups.

      Please point out to me one of the Approved Open Source Licenses that "discriminates against commercial ventures".

      Note that I didn't ask for licenses that happen to be suboptimal for using copyright law to protect specific business models, but those that truly discriminate about who can use or contribute.

      At first glance, it would seem that a fair share of those approved licenses were in fact authored by "commercial ventures".

    9. Re:Dumb question by Trejkaz · · Score: 1

      No single license, but there are quite a few companies with dual license arrangements, though the open source license itself might not discriminate...

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    10. Re:Dumb question by Pieroxy · · Score: 4, Insightful

      Some benefits:
      1. Tomorrow, Sun might decide to charge for a JVM. Then you will be screwed.
      2. They might decide to drop Java, closing all future to all your beautiful programs.
      3. What if Sun decide not to support your favorite platform? (Say BeOS, or Linux on PS/2, or HP48SX...)

      With open-source, this is less likely to happen - though still possible. We can imagine for Java that we will always have some geeks ready to give a hand even if Sun dropped the whole thing.

    11. Re:Dumb question by __past__ · · Score: 4, Insightful
      1. Tomorrow, Sun might decide to charge for a JVM. Then you will be screwed.
      Or you can use another JVM instead and live happily ever after.
      2. They might decide to drop Java, closing all future to all your beautiful programs.
      Even if they would use their Java trademark to enforce that no other JVM would be able to use that name when they decide to stop the JCP and development of the Sun JVM, people could just call the other implementations something else, use existing programms with that, and create a new process to further the development of the language.
      3. What if Sun decide not to support your favorite platform? (Say BeOS, or Linux on PS/2, or HP48SX...)
      Then you use an alternative JVM that does support it, or if there isn't any, port one of them yourself. Which is even possible with the Sun JVM - this is exactly what the FreeBSD Java project did.

      Sun has copyrights on one of many JVMs, which is closed source, and they control the name "Java" by holding the trademark. This is all, and this is not enough to effectively control the use of the language, even if they wanted to screw customers.

    12. Re:Dumb question by Anonymous Coward · · Score: 2, Insightful
      I think it depends on what is meant by "open"

      If we mean we can obtain the source code and read through it then it is defiatly open.

      If you beleive that it has to be available under a GPL license, then it is not.

      However the JVM spec and the language spec is unrestricted, the words "shut up and hack" come to mind.

    13. Re:Dumb question by Anonymous Coward · · Score: 0

      though the open source license itself might not discriminate...

      ok, so you just proved yourself wrong.

    14. Re:Dumb question by JamesOfTheDesert · · Score: 1
      Q: What prevents Sun from controlling or dominating the groups that develop and maintain Java specifications?

      The answer given in the FAQ says what Sun currently does with the JCP, and explains their current intent, but it does not address the actual question. Sun controls the copyright to the Java(tm) spec; short of turning that over to a third party, Sun can do what it likes with Java(tm). Nothing goes into Java(tm) unless Sun gives the final thumbs up.

      --

      Java is the blue pill
      Choose the red pill
    15. Re:Dumb question by malachid69 · · Score: 1
      Not true. According to the FAQ, Sun has the same vote as the following:

      Apache Software Foundation, Apple, BEA Systems, Borland, Caldera Systems, Cisco Systems, Compaq, Ericsson, Fujitsu Limited, HP, IBM, Insignia Solutions, IONA Technologies, Macromedia, Matsushita Electric Industrial (Panasonic), Motorola, Nokia, Oracle, PalmSource, Inc., Philips, RIM, Siemens AG, Sony, Texas Instruments, and Zucotto Wireless, as well as an individual participant, Doug Lea, representing the research and education communities.

      Those are the EC seats. Sun just has a permanent seat on that board. The board (not Sun themselves) make the decisions about what gets added to Java, as per:

      Sun, and the other Executive Committee (EC) members, serve as technology oversight groups for the work of the Expert Groups. The ECs do not micro-manage the day-to-day workings of Expert Groups. Rather, the ECs have the opportunity to review the work of each Expert Group at well-defined points as their specifications proceed through the JCP. The primary function of the ECs is to ensure that specifications do not overlap or conflict with one another and that the specifications meet the needs of the industry segment for which they are being written.

      You can find a list of what is currently being added here. You can join (as an individual for free), or have someone who is a member, submit your own JSR (here's how) to be added to the language. If the board (again, not Sun) agrees that it does not conflict with other JSRs, then you put together your Expert Group. Information on how this procedure works can be found here. Here's their recommendation on the expert group YOU put together:

      The Expert Group should be large enough to ensure reasonable industry representation and diversity of opinion.

      If you really have an interest in all of this, I would recommend joining the JCP, previewing the proposed JCPs, voting on them, etc. I have joined, and plan on writing up some JSRs when I have some time.

      --
      http://www.google.com/profiles/malachid
    16. Re:Dumb question by DFossmeister · · Score: 1

      Did I see Caldera Systems in that list? I am just sure that they are going to support placing Java under the GPL.

      Caldara, now SCO would love to just sue someone over their rights that they have because of being on the Executive Committee.

      That post said 2001--when are the next elections?

      --
      No Not Again! Its whats for dinner.
    17. Re:Dumb question by malachid69 · · Score: 1
      --
      http://www.google.com/profiles/malachid
  3. That would suck for java... by Anonymous Coward · · Score: 5, Insightful

    Incompatibility would run rampant. My java apps barely work for my phone as it is.

    1. Re:That would suck for java... by kindofblue · · Score: 4, Interesting
      Yeah, I expect that an open source project would break things much more. Eclipse breaks the plugin.xml format subtley everytime. EMacs libraries always have bad interaction. Mozilla's XUL API has given me headaches, and is horribly, horribly, horribly documented.

      The big plus side to open sourcing is perhaps the language could be forced to match the nice features of C#, like unsafe constructs and precompilation, both for performance reasons. There's only so much JIT optimization you can do. But precompiling (like GCJ, but intrinsic to the VM) would provide greater opportunities for large scale full source tree optimizations. Compiler writers have been doing this stuff for 50+ years.

    2. Re:That would suck for java... by Anonymous Coward · · Score: 0

      I certainly don't want another Python where I must have version >= 2.1 = 2.3 2.4 for others.

    3. Re:That would suck for java... by JavaLord · · Score: 1

      Incompatibility would run rampant. My java apps barely work for my phone as it is.

      Sun is working on a J2ME standard for cell phones, so hopefully in a few years you wont have that problem.

      Sun isn't going to Open source Java, it wont happen for the reason you mention. Incompatibility would ruin the cross-platform appeal of Java.

    4. Re:That would suck for java... by Anonymous Coward · · Score: 3, Insightful

      There's only so much JIT optimization you can do. But precompiling (like GCJ, but intrinsic to the VM) would provide greater opportunities for large scale full source tree optimizations.

      Well.. I think the potential for optimization is greater after linking, at runtime. Just imagine inlining library calls, for instance.

      The real advantage, however, is the jvm's access to real run-time performance data. Even if you waste 1% of the app's cpu-time on profiling and dynamic recompilation, you quickly make up for that by agressive optimization in the right places.

      It would be nice if virtual machines stored some kind of native images/dumps between sessions, though, to minimize those startup times..

    5. Re:That would suck for java... by Anonymous Coward · · Score: 0

      Given the fact that there are 3 official incompatible Java platforms already, it seems a bit silly to still be talking about cross-platform as a major advantage of the language.

    6. Re:That would suck for java... by 10101001+10101001 · · Score: 5, Insightful

      > Sun isn't going to Open source Java, it wont happen for the reason you mention. Incompatibility would ruin the cross-platform appeal of Java.

      Like how gcc being open source causes incompatibilities with different gcc ports? Or how the x86 arch being open ruins the ability to write for it?

      I really don't see how any of these arguments hold water except if you believe that somehow one company with proprietary control over a standard will do a better job than the open source community at writing to the spec.

      The fact is, the Java spec is free as far as I know, and there's nothing really preventing someone from writing their own implementation and porting it to several platforms. Of course, they can't call it Java (Java is trademarked, as use of a programming language), but they can just as easily do everything but call it Java and have or not have compatibility problems. The only thing that Sun open sourcing Java would do is cut out a lot of the work developing the libraries and such which make up the bulk of Java's classes. Sun still owns the trademark and could write a license to prevent anyone using the term Java except Sun (they could even come up with a specific trademarks to clarify degrees of Java-ness which are allowed to be used by people). Open source doesn't mean Free software. And maybe people aren't happy with that. I personally don't care, since Free software wouldn't ever call it Java (maybe they'd call it Java-like), and I firmly believe that the core useful parts of Java will be written by the open source community eventually which will negate a need for Sun to do anything (well, except keep the specs open).

      I just find it funny that the defense of keeping Java closed source is it's broken now, so having more people work on it will somehow make it worse. A company is like a bunch of cooks making one cake (or maybe two or three). The community at large is like a bunch of cooks make a bunch of cakes. If enough of the cooks get together, they can make a larger, better cake just like a company. But, there's a lot more cooks out there than there are in one company. And if what the community writes is utter crap, then no one uses it, and we'll stick to the old recipes. It's not like the open source community is a monopoly that can force you to use an inferior product. Only closed source setups work that way, thanks to things like forced bound upgrades from a single company.

      --
      Eurohacker European paranoia, gun rights, and h
    7. Re:That would suck for java... by Trejkaz · · Score: 1

      I spotted a good idea. They could release it open but in some manner which makes it absolutely impossible for anyone to implement it without having an enormous amount of money. Then it would be just like the openness of the x86 architecture! ;-)

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    8. Re:That would suck for java... by deanj · · Score: 1

      Actually GCC is a good example of why Java shouldn't go this route. Look at all the binary compatibility issues from the 2.96 compilers to the latest and greatest. Caused us all kinds of problems.

    9. Re:That would suck for java... by nineoneone · · Score: 0

      On the money (if you'll forgive the expression).
      The market does drive out bad - but it also stifles a lot of creative input.

      --
      sig under development
    10. Re:That would suck for java... by newhoggy · · Score: 2, Informative
      Incompatibility would run rampant.

      SUN would still hold the Java trademark and can withhold its use from any implementation that fails to pass a comprehensive compatibility suite.

    11. Re:That would suck for java... by Lobachevsky · · Score: 5, Informative

      Sun's jvm for jdk1.5 caches JIT code in shared storage.. their 1.5 site even mentions that startup time is almost negligible now, even for large java apps.

      I was rather surprised, actually, to see the amount of change from 1.4 to 1.5, at all levels: language, jdk, and jvm. The language itself has a lot of C++/C# features now like covariance and contravariance. 1.5 has more improvement over 1.4 than 1.4 over 1.1, in all aspects, imho.

    12. Re:That would suck for java... by aled · · Score: 1

      That pretty much the situation now according to Sun.

      --

      "I think this line is mostly filler"
    13. Re:That would suck for java... by daraf · · Score: 1

      Dude, you lost me with the cooks analogy ... just made me realize that I'm really hungry and I don't care at this point how many cooks are making how many cakes, as long as I get to eat.

    14. Re:That would suck for java... by 10101001+10101001 · · Score: 1

      Virtual PC, Bochs, and Qemu don't exist? If you mean implementing hardware, that's true. But, that's an issue with all hardware. Hardware costs materials. Software is prepaid HD space that can be reclaimed (plus whatever is charged for the software, backups, etc).

      --
      Eurohacker European paranoia, gun rights, and h
    15. Re:That would suck for java... by 10101001+10101001 · · Score: 2, Insightful

      > Actually GCC is a good example of why Java shouldn't go this route. Look at all the binary compatibility issues from the 2.96 compilers to the latest and greatest. Caused us all kinds of problems. Do you expect a JVM v1.1 to run v1.4 programs? Forward and backward compatibility often get broken as a result of fixing design flaws. I'm happy they're fixing gcc now if it means it's a lot less likely to break in the future (not that it's actually, guaranteed..). Besides, 2.96 should never have been released as production since it was a pre3.0 beta. Now, complaining about the fact that there's a different abi between 3.0 and 3.2 is a valid complaint.

      --
      Eurohacker European paranoia, gun rights, and h
    16. Re:That would suck for java... by Jason+Earl · · Score: 1

      Yeah, and Sun has never had problems that were specific to one particular version of their JVM.

    17. Re:That would suck for java... by S.O.B. · · Score: 1

      What three incompatible platforms are you talking about?

      --
      Some of what I say is fact, some is conjecture, the rest I'm just blowing out my ass...you guess.
    18. Re:That would suck for java... by 10101001+10101001 · · Score: 1, Redundant

      > Actually GCC is a good example of why Java shouldn't go this route. Look at all the binary compatibility issues from the 2.96 compilers to the latest and greatest. Caused us all kinds of problems.

      Do you expect a JVM v1.1 to run v1.4 programs? Forward and backward compatibility often get broken as a result of fixing design flaws. I'm happy they're fixing gcc now if it means it's a lot less likely to break in the future (not that it's actually, guaranteed..). Besides, 2.96 should never have been released as production since it was a pre3.0 beta. Now, complaining about the fact that there's a different abi between 3.0 and 3.2 is a valid complaint.

      --
      Eurohacker European paranoia, gun rights, and h
    19. Re:That would suck for java... by Anonymous Coward · · Score: 0

      What about opening the source, but maintaining distribution rights? i.e. accept submitted patches and/or packages. That way there's still one controlling point to avoid breaks.

      Sun doesn't have the money/manpower to keep up with .NET. Even if .NET is lagging now in certain areas, Microsoft can and will pitch development money until Sun's left in the dust. Perhaps IBM might be able to compete in this respect, but they don't define the language (even if they were interested).

      Sun already imports packages wholesale (xerces, xalan) anyway, so what would be the difference? If Sun can't keep up on its own, why not harness the power of open source coders itching to contribute? The legal status quo is maintained (one Java), but hopefully the language and the framework would move faster.

    20. Re:That would suck for java... by gidds · · Score: 4, Interesting
      perhaps the language could be forced to match the nice features of C#, like unsafe constructs and precompilation

      Either would remove some of what makes Java great.

      Unsafe constructs would risk punching huge holes through Java's nice safe sandbox.

      And precompilation would probably mean that compiled code gets distributed rather than bytecode; 'Write Once, Run Anywhere' doesn't mean much if you can't get hold of anything you can run!

      --

      Ceterum censeo subscriptionem esse delendam.

    21. Re:That would suck for java... by Anonymous Coward · · Score: 0

      J2SE, J2EE, J2ME. For example, most programs written for J2EE aren't going to run on J2ME.

    22. Re:That would suck for java... by jallen02 · · Score: 4, Informative

      Well, NIO was pretty good for what its worth.

      NIO adds in some really great I/O capabilities. I absolutely love having channels/selectors for network servers. 5 hours of coding on a network server to go from single thread per connection to one thread multiplexing all of my I/O. Using a few worker threads to process incoming data and my stress testing I used before doesn't even come close to pushing the server like it used to. I had to increase the brutality of the testing quite a bit more to find top level performance.

      I know I/O is just one aspect of programming, but it is VERY key to overall performance.. and in I/O bound apps NIO is a godsend.

      So anyway, there were some really good improvements in 1.4. I think 1.4 was a pretty marked improvement just because of NIO.

      Jeremy

    23. Re:That would suck for java... by bigsteve@dstc · · Score: 3, Insightful
      I disagree:
      • Open sourcing Java would not force Sun to accept additions to the standard codebase that would break compatibility. They get to choose what goes into Java software that they ship.
      • Open sourcing Java would probably reduce the tendency for incompatible open-source implementations. Since open-source implementors are not required to reimplement as much, there would be less opportunity for mistakes.
      • Open sourcing Java would encourage other vendors to open source their Java-based products. This exposure would in turn encourage them to smarten up their act. [Actually, Sun could even some up with a model that forced third-party vendors to open source any components that are critical to. For example, Sun could say that open sourcing is a prerequisite for a Sun endorsement of compatibility.]
      • Sun will still control the trademarks, and will still be able to say "you cannot call this XXX because it fails such-and-such compatibility test". [This assumes that they remove the barriers that make it hard for open source developers to access the compatibility tests.]
      • If Sun were to be a bit creative, they could do more to discourage incompatibility. For example, a Sun endorsed website for documenting known incompatibilities would be a great resource. It would also provide an incentive to developers to fix up their incompatible crap.
    24. Re:That would suck for java... by k_head · · Score: 2, Interesting

      Nonsense. How many forks of python, perl or tcl are there?

      --
      The best way to support the US war effort is to continue buying American products.
    25. Re:That would suck for java... by kindofblue · · Score: 4, Interesting
      The C# way (and the way some java tools worked before the JIT VM) is that byte-code is distributed but the client-side machine compiles it ahead of time and saves the compiled code. There is no difference to the sandbox security, with respect to ahead-of-time compilation, as long as the cached code on disk is secure. JIT VM always compile it as the code runs and then discards the compiled byte-code.

      So basically what I want is that the compiled code should be cached and stored on disk, e.g. like a browser loading cached pages when they are still up to date. Not everything needs to be cached, since profiling (that is behind the current Hotspot technology) could be used to identify those parts of the code that should be aggressively optimized. So those critical areas should automatically be aggressively optimized, which takes time and that should be cached. That's what I would ideally like to see in java.

      Also, as for unsafe constructs, I've read about them in C# but haven't developed with it. However, I have used the java native interface. It is really ugly and very cumbersome and intrinsically system-dependent. Sometimes it is necessary to use JNI for performance and for low-level interfaces to the machine. I want something that's low-level but easier to use than JNI for those rare occasions where you've gotta have it.

    26. Re: That would suck for java... by gidds · · Score: 3, Insightful
      Cached code sounds like a good idea, provided that the original bytecode is always available as the 'definitive' version. It's worth being aware of the issue, though.

      ...the java native interface. It is really ugly and very cumbersome...

      Some might think that's a Good Thing as it helps discourage native code unless it's absolutely vital :)

      --

      Ceterum censeo subscriptionem esse delendam.

    27. Re:That would suck for java... by Anonymous Coward · · Score: 0

      the nice features of C#, like unsafe constructs...

      *cough* native methods *cough*

      ...and precompilation...

      *cough* gcj *cough*

      Got any more whiz bang features that we'd get from Java being open sourced?

    28. Re:That would suck for java... by Anonymous Coward · · Score: 0

      So anyway, there were some really good improvements in 1.4. I think 1.4 was a pretty marked improvement just because of NIO.

      Okay, but every 1.x release has had things of the same caliber as NIO.

      1.4 has SEVERAL features of that caliber.

    29. Re:That would suck for java... by ajagci · · Score: 1

      Unsafe constructs would risk punching huge holes through Java's nice safe sandbox.

      Those holes already exist: they are called JNI. They just happen to be a lot less safe, less efficient, and less convenient to use than C#'s well-defined unsafe constructs.

      And precompilation would probably mean that compiled code gets distributed rather than bytecode; 'Write Once, Run Anywhere' doesn't mean much if you can't get hold of anything you can run!

      Well, since Java doesn't actually deliver "Write Once, Run Anywhere", that objection is hypothetical. Even if it did, I really just don't care about "write once, run anywhere". Sun's monomaniacal insistence on WORA is one of the features that has made Java increasingly unattractive.

    30. Re:That would suck for java... by dmon · · Score: 1

      >So basically what I want is that the compiled code should be cached and stored on disk, e.g. like a browser loading cached pages when they are still up to date.

      Like this?

    31. Re:That would suck for java... by turgid · · Score: 1
      Or how the x86 arch being open ruins the ability to write for it?

      Just a small nit to pick: the x86 architecture is not "open". It is well documented and ubiquitous. It is not "open" in the sense that anyone is free to implement their own version of it. Far from it. Complex and stringent licenses are required.

    32. Re:That would suck for java... by Anonymous Coward · · Score: 0

      Yeah, caused us all kinds of problems. For like a week and a half...

    33. Re:That would suck for java... by Glock27 · · Score: 1
      I totally agree with your post, and in addition I'd like to see the native interface be lighter weight than JNI - as "light" as possible, but of course, no lighter. ;-)

      Calling through to native code efficiently (even for small calls like single-function math routines) should be as fast as possible. Period.

      Gcj is a good alternative right now if you can use it.

      --
      Galileo: "The Earth revolves around the Sun!"
      Score: -1 100% Flamebait
    34. Re:That would suck for java... by pjt33 · · Score: 1

      If you think unsafe constructs are nice "for performance reasons", then use C#. The Java philosophy isn't to sacrifice everything at the altar of performance. Incidentally, I'm intrigued by your comments about compilers in 1954. Could you provide more details?

    35. Re:That would suck for java... by Anonymous Coward · · Score: 0

      C++ certainly does not have contravariance. It has covariance on return values _only_.

      As for speed, the only problem in large scale java apps today is memory consumption and garbage collection. We've tried several DBMS's implemented in java and ran all kinds of optimizations.

      No matter how you bend it, Java is waaaay too slow for high performance server applications. EJB's are toys stuff.

    36. Re:That would suck for java... by Anonymous Coward · · Score: 0

      Unsafe constructs would risk punching huge holes through Java's nice safe sandbox.

      Which of course goes to show how a billion in marketing will get anyone to bleat the party line, long as it wasn't Microsoft spending it. Java has no sandbox unless you install one. C# requires a compiler flag to enable "unsafe" constructs. JNI allows you to do "unsafe" things. Please resume your handwringing.

    37. Re:That would suck for java... by Anonymous Coward · · Score: 0

      Nonsense. How many forks of python, perl or tcl are there?

      Python has one: stackless. Tcl has expect, though that's more of an application than a true fork.

    38. Re:That would suck for java... by ultranova · · Score: 1
      1.5 has more improvement over 1.4 than 1.4 over 1.1, in all aspects, imho.

      Does it still have problems with pthreads ?

      Freenet gets a nice performance boost from those, but they cause the JVM (1.3) to crash, sooner or later :(.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    39. Re:That would suck for java... by CynicTheHedgehog · · Score: 2, Interesting

      Not if Sun maintained the official repository, and managed commits similar to the way they are handled in Linux. Sun could still maintain their current Java Community Process to identify and prioritize enhancements, and then leverage the development efforts of the open source community rather than relying only on their internal developers.

      Not everyone would have commit access, giving Sun time to verify, document, and test any improvements before including them as part of official Java project releases.

      That doesn't stop forks, but lets face it, how many forks are there of Python, PHP, et al? As long as the community is satisfied that it's getting what it wants, and the source is available for ports and whatnot, I'm sure Sun can still hold onto the reins. It also allows Sun (in RedHat-esque fashion) to maintain a fully tested and supported ($$$) Enterprise version that's a few versions late, while giving developers nightly snapshots and unsupported minor releases.

      It's better than what they have now, which is official support for Windows and Linux, and screw everyone else. We all download and use it for free anyway...why not put the community to work porting and improving it? It would sure make the JSRs go faster...

    40. Re:That would suck for java... by Bingo+Foo · · Score: 3, Funny
      Incompatibility would run rampant. My java apps barely work for my phone as it is.

      Yeah, no kidding. My refrigerator has JVM 1.1, but my oven runs J2EE 1.4. Just try storing leftovers with that kind of arrangement!

      --
      taken! (by Davidleeroth) Thanks Bingo Foo!
    41. Re: That would suck for java... by HiThere · · Score: 1

      I prefer the source always being available. If all that's available is byte-code, I'm much less interested. If source is available, then there's nothing wrong with full binary compilation, as long as the compilers are compatible in what source code they'll accept.

      The sand boxnow, that's an important option. It makes some applications feasible instead of unreasonably dangerous. Of course, it also makes other applications impossible. The user (i.e., the one who compiles the code) must be able to specify what the sandbox level is (even if only on or off...but my usual preference is an in between level where a local directory can be written to, but on would mean no permanent changes allowed to the local hard disk [perhaps it's running on a ROM only system?], and off would mean no more restrictions than C). And the end-user of the application (not the compiler) must be able to check what the sandbox level is.

      Nothing here that a compiler can't handle. Or an interpreter similar to the current one.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    42. Re: That would suck for java... by MarkCollette · · Score: 1

      Of course there's the simple option of fat binaries, where the bytecode is always required, but additional compiled and optimised variants are added. So, on supported systems, the overhead of JIT would not be required, and on "unsupported" systems, the bytecode would always be there for write onece, run anywhere.

      As well, with essentially preexecution JIT compilation, one could turn on all the time intensive analysis options, to squeeze out every last drop of performance.

    43. Re:That would suck for java... by j3110 · · Score: 1

      Just for those curious... in my current work (which I've been using 1.5), I wrote an application that gets a zip file from an FTP site and reads the CSV data out and parses it as it downloads. The whole app takes about 15s to run on this givin data. If I do |wc instead of >>/dev/null, time tells me it takes 30s, so this is a rather large file.

      So, the speed of linux pipes and wc are about the same as my java's network io, zip decompressor, character decoder, string tokenizers (my custom line grabbing one), my searching for characters to guess data types, java's dateformat date parser, output encoder, and dataformate date printer.

      -prof tells me it spends most of it's time in output formatting.

      --
      Karma Clown
    44. Re:That would suck for java... by higginsm2000 · · Score: 1

      There's only so much JIT optimization you can do

      I think you are mistaken. I would say it was the other way around. With JIT, you have access to two sources of information; the code itself, and the runtime environment (hardware platform, O/S and most importantly, information about how the program is being used in real time).

      With normal compilation, you do not have all this information. Yes, you may have the hardware and O/S information (but use that at compile time and there goes your write once, run anywhere platform independence). You have very little idea how the program will be used at runtime (data set sizes, network latencies etc), all of which can be used by a clever JIT compiler to optimize the binary. And that is why you see some JIT compiled code outperforming C (not very often granted, but it happens).

      So you cannot have your cake and eat it too. All well as prematurely optimizing your binary unnecessarily, non JIT compilation loses your binary platform independence, or at least severely hampers it.

      And there is nothing to stop you from doing large scale optimizations in a JIT manner.

    45. Re:That would suck for java... by Anonymous Coward · · Score: 0

      ROFL, this is by far the most stupid comment I've read in this discussion so far.

    46. Re:That would suck for java... by Anonymous Coward · · Score: 0

      AFAIK you CAN do this in C# (using NGEN to make a native image) but it is not necessarily "the C# way" as such. MSIL is still JITed...Just In Time.

    47. Re:That would suck for java... by angel'o'sphere · · Score: 1

      Hm ... last benchmarks I have seen say: precompiled java with GCJ is only half as fast as a JIT compiled Java on JRocket JVM or SUNs JVM.

      And: With JNI you can do any unsafe stuff in Java you like. However: putting unsafe pure Java stuff into the language will be Javas dead. Its the only true advantage over .NET it has, why dropping it?

      A standard like Java Applets or Java Webstart would be imediatly dead if Java could be inherently unsafe. I claim the same for EJBs. I would never be able to buy an EJB if it could harm my Sandbox by being unsafe.

      Large scale full source tree optimizatios ... hu hom, exactly how many compilers do that? Especially: C/C++/C# and such?

      Eiffel, sure ... but C and its derivates? None commercial available compiler does so, I would claim. Some, of course, do attemp it during link time.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    48. Re:That would suck for java... by kindofblue · · Score: 1
      I just noticed your reply, many days later. Anyway, I got the 50+ years part wrong; it should have been 40+ years from my fingertips. From what I remember of my computer language and AI classes, Fortran and Lisp were the first or among the first languages and I thought they started in the 60s. And Fortran compilers are supposed to be among the best at advanced optimization.

      But basically I meant that compilers have been ahead-of-time for many decades and their writers have developed non-local optimization techniques; non-local in that they use inter-procedure analysis such as finding code without useful side-effects or return values and therefore enabling further optimization. I don't think the early pcode (bytecode) interpreters had runtime compiling or optimization, but my memory is foggy about it.

  4. as ESR said in CatB by stonebeat.org · · Score: 5, Informative
    1. Re:as ESR said in CatB by Kenja · · Score: 0, Redundant
      Because of course, everyone who can think up a unique recipe can afford to open a restaurant. Furthermore the big IBM, Redhat and Sun restauants down the block from yours would NEVER use your recipe and offer your dish for less then you can.

      Someone needs to take the reality 2x4 to ESRs head.

      --

      "Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
    2. Re:as ESR said in CatB by ComputerSlicer23 · · Score: 1
      Come now, you have a perfectly good opportunity to use an entry from the jargon file that ESR maintains. It's called a clue-by-4. He'd understand that much better this one off term of "reality 2x4"... :-)

      Kirby

    3. Re:as ESR said in CatB by Anonymous Coward · · Score: 0

      Furthermore the big IBM, Redhat and Sun restauants down the block from yours would NEVER use your recipe and offer your dish for less then you can.

      If patents worked right this wouldn't happen.

    4. Re:as ESR said in CatB by Anonymous Coward · · Score: 0
    5. Re:as ESR said in CatB by Anonymous Coward · · Score: 0

      the reality 2x4

      hahaha, and like they say, theres no substitite for cubic inches.

  5. Java, who needs it? by $calar · · Score: 0, Interesting

    This is not to be a troll, because I hate being cast as one for being negative. But I've never ever liked Java. It never had the performance of native software and there are other ways of getting the code portability of Java. Qt and GTK (via dropline) are examples of this. Mono too has some great promise, but it's still a work in progress. I like the idea of portable code, but the code should still run without an interpreter/virtual machine/emulator. Those are my thoughts.

    1. Re:Java, who needs it? by Anonymous Coward · · Score: 1, Funny

      Yah know, just saying "This is not to be a troll" doesn't make it true

    2. Re:Java, who needs it? by aled · · Score: 1, Troll

      Java does run on an virtual machine, but modern VM compile code dinamically, not interpreting nor emulating.
      How does MOno run?

      --

      "I think this line is mostly filler"
    3. Re:Java, who needs it? by jhouserizer · · Score: 5, Interesting
      You're talking about clien-side Java. I.e. Java applications with UI.

      This article is talking about J2EE (server side) applications. Which often benchmark faster than natively implemented code.

      P.S.> Java desktop applications are fairly speedy if you use UI libraries such as SWT - which work directly on GTK for example.

    4. Re:Java, who needs it? by Anonymous Coward · · Score: 3, Informative

      Mono does ahead-of-time compilation on x86 into native code.

      You can also compile Java applications to native code using GCJ, assuming that you're not using anything beyond JRE 1.0 (or something like that).

    5. Re:Java, who needs it? by Pieroxy · · Score: 5, Insightful

      If you think Java is in the enterprise because it is portable, you are greatly mistaken. There are some stuff in Java that makes it a great tool for the job, and portability is only one of them: Portability, Reflection, RMI, Proxies, J2EE, ... And I did forget a lot in the process.

      Qt and GTK are not even languages, what the hell are you talking about? You are comparing an enterprise level language with a GUI library! Java is not Swing!

    6. Re:Java, who needs it? by gl4ss · · Score: 1

      maybe you should look into what is used for writing programs under contract to businesses?

      j2se and .net.

      so they're 'needed' at least in the sense that they're really used, in the real world, for doing real stuff on real data.

      out of those two java is nice in the fashion of really running it anywhere, on almost any os.

      --
      world was created 5 seconds before this post as it is.
    7. Re:Java, who needs it? by iminplaya · · Score: 5, Funny

      ...but the code should still run without an interpreter/virtual machine/emulator.

      I'll be impressed if they can make it run without a computer.

      --
      What?
    8. Re:Java, who needs it? by Anonymous Coward · · Score: 0
      Which often benchmark faster than natively implemented code.

      You do realize that this is impossible, right? You probably meant C code where the lack of constant manual garbage collection may impact performance slightly. Either way, I don't believe that statement.

    9. Re:Java, who needs it? by aled · · Score: 1

      In my times we had no stinking computers, no sir. We used paper and pencil to "execute" the programs. We never needed to reboot!

      --

      "I think this line is mostly filler"
    10. Re:Java, who needs it? by AKAImBatman · · Score: 5, Insightful

      > > Which often benchmark faster than natively implemented code.
      >
      >You do realize that this is impossible, right?

      What makes you say that? In fact, the original poster is quite correct. The JVM *can* generate faster code. You know how? By doing runtime optimizations. Compilers have to optimize for what *might* be the best performance profile at runtime. Also, they can only compile for the lowest common processor. (e.g. A pentium II) The Hotspot Java VM can optimize based on how the code is currently being used, undo an optimization if it starts slowing things down, and use processor specific instructions! Natively compiled code just can't beat that.

    11. Re:Java, who needs it? by jhouserizer · · Score: 5, Informative

      You do realize that this is impossible, right?

      No, this is not impossible. Read up on just-in-time (JIT) compliers and you'll see why. In a nutshell, the Java Virtual Machine profiles the code that is being executed, then uses sophisticated algorythms to anylize this information, then compile (while the system is running) native code from the java byte code, that is optimized for the environment, and more importantly for the ways in which the code is being invoked. Subsequent calls are executed by this newly compiled native code.

      Thus the JIT compiler is able to (often) do a better job at creating optimized native code than a C++ compiler can do, because the C++ compiler doesn't have run-time analysis to use in its decisions of how to optimize the code. The JVM can continuously re-optimize the same code over and over during the life of the application. JVMs of today (and the last few years) do this as standard practice.

    12. Re:Java, who needs it? by Anonymous Coward · · Score: 0

      Java has never been about performance. The reason to use Java is for the portability (which it doesn't deliver), and the security (which it also doesn't deliver.)

    13. Re:Java, who needs it? by Anonymous Coward · · Score: 0

      Please explain how this would be faster than writing the app in native code using an assembler and then I'll believe you. You're still referring to compiled languages and probably C code specifically.

      I guess there is some truth to the statement, but the wording is misleading (if not completely wrong).

    14. Re:Java, who needs it? by Anonymous Coward · · Score: 0

      You're still comparing Java to C++ code. C++ isn't native and I didn't even mention the language. If the parts of the application you describe were written in assembly, it would be native code. Java converts byte code to native code and thus cannot be faster than native code.

      However, compared to C/C++ and in certain cases, you are probably correct.

    15. Re:Java, who needs it? by nadamsieee · · Score: 3, Insightful

      > Also, they can only compile for the lowest common processor. (e.g. A pentium II)

      That may be true for traditional proprietary software, but NOT for F/OS Software. Witness Gentoo; I compile everything for my computer's specific processor. And surely you don't believe that the Hotspot Java VM does its optimizations 'for free'! Every runtime optimization check introduces a performance hit.

    16. Re:Java, who needs it? by nineoneone · · Score: 1

      No they're not. Not on ordinary machines they're not. they're slow as hell.

      --
      sig under development
    17. Re:Java, who needs it? by infiniti99 · · Score: 4, Informative

      Qt may not be a language, but it does provide some language extensions via the Meta Object Compiler, which brings some nice things to C++. Also, Qt is not just a GUI library, but actually a whole Java-like foundation for C++. It's good stuff.

      I'm not necessarily disagreeing with you, I'm just elaborating on what Qt is. It's closer to Java in nature than you might think, and with the upcoming Qt4 I can imagine it becoming quite a competitor.

    18. Re:Java, who needs it? by AxelTorvalds · · Score: 1
      Do you say "can" meaning it is possible in the real of theory or "can" meaning that there is a practical situation where it happens?

      I have yet to see an example of it. I have also yet to see it established that runtime optimizations actually buy you anything above what a modern compiler can do, the compiler knows far more about the code the runtime knows far more about the system in question; prove that runtime is better than global optimization up front. It sounds really nice in theory and it makes conceptual sense but that doesn't make it true.

      If you can come up with an example of hotspot tweaking some loop such that it outperforms a native compiler, I'll be impressed. Of course I'll just pull out PGO and make sure my native code wins again and doesn't have all the start up problems or need as much memory, but I'll still be impressed if someone can do it.

    19. Re:Java, who needs it? by C10H14N2 · · Score: 1

      There's another miserable equation in the article and most common assumptions that Java=J2EE=Java BEANS=EJBs.

      Wrong wrong wrong... Most [good] J2EE developers are quite keen to avoid EJBs unless they actually make sense to use. More often than not it makes no sense to bother with EJBs. To say that the complexitites of EJB deployments are a death knell to Java makes about as much sense as saying that VBA will kill .Net.

    20. Re:Java, who needs it? by AxelTorvalds · · Score: 1

      Point me to a situation where JIT out optimizes C++ in the real world.

    21. Re:Java, who needs it? by captain_craptacular · · Score: 1

      You're both wrong... You're saying nothing is faster than native code which is partially true. It is almost always possible to implement an algorithm in several different ways. What their saying is that JAVA is able to ferret out very efficient ways of representing it's code in natively whereas most things/people implement the generic case.

      What you're saying is nothing is faster than native.
      What they're saying is that their native implementation is faster than most....

      --
      They who would give up an essential liberty for temporary security, deserve neither liberty nor security
    22. Re:Java, who needs it? by nineoneone · · Score: 1

      No way. I can believe that - given certain conditions - a good compiler can optimise code better than an assembler (I believe it, but i've never seen it; I'm told that this is the case), but I cannot believe that an interpreter can. Maybe I'm living in the past. Please correct me.

      --
      sig under development
    23. Re:Java, who needs it? by AKAImBatman · · Score: 5, Informative

      Please explain how this would be faster than writing the app in native code using an assembler and then I'll believe you.

      Ok. My assembly is a little rusty, so bear with me. Let's say we have equivalent Java and C programs. They both have to run on a 386 or higher. (Bear with me. I haven't kept up with the MMX/SSE/SSE2 instructions, so I'll have to fake this a little.) Now, your C compiler will see that you want to store a 32 bit value, but has to generate code for a 386. So, it generates the code:

      pop AX
      STOSW 0x0005
      pop AX
      STOSW 0x0005

      Even though the code may be running on a Pentium Pro (which is optmized for 32 bit code), it's still going to execute those 4 statements.

      Now, the Java Hotspot compiler will start and notice the fact that you're running on a Pentium Pro. So when it converts the bytecode to machine code, it creates the following instructions:

      pop EAX
      STOD 0x0005

      That's twice as fast as the C code!

      Real code would tend to be running on modern processors, so this example is a little contrived. However, the JVM can (and will) use SSE instructions to do multiple calculations in one instruction, while the C code will be forced to generate non-SSE instructions to support the old Pentium Is out there.

      Hotspot is also capable of analyzing the running code and regenerating even better assembly that would perform poorly in other circumstances. For example, let's say Hotspot notices that the bounds can't be exceeded on an array. Well, Hotspot will then recompile to remove the bounds checking.

      Does that explain it better?

    24. Re:Java, who needs it? by Anonymous Coward · · Score: 0

      No, it doesn't. The second piece of code will not run on a 386 like you said it must.

      Additionally, the Java version must first start up the VM and compile the byte code. That takes about 1,000,000 times as many instructions as the assembly example.

      Also, GNU GCC compiles code for processors like i686 that still executes on i386 by not using the i686-only instructions.

      You need to brush up on compilers, apparently.

    25. Re:Java, who needs it? by Anonymous Coward · · Score: 0

      Oops, that's not clear. The i686 compiled code by GCC uses i686 instructions but also checks for their support at runtime and doesn't use them if, for example, they're running on an i386 machine. So it's doing the same thing as the Java version and this is compiled from C code (not even written in assembler!)

    26. Re:Java, who needs it? by Trejkaz · · Score: 1

      Jesus, pick a better example. Gtk SWT is slow as a dog, even on my Athlon XP 2500+. You can see the delay between pressing the mouse and seeing the button move... Windows SWT is pretty swift though, even if it does looks ugly and nothing like Windows. Also I've heard you can get SWT on some mobile devices, which would be pretty neat.

      And you can compile SWT code with GCJ without worrying about which bits of AWT and Swing GCJ can't do.

      So it does have its good points... even if they are merely workarounds for GCJ's bad points.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    27. Re:Java, who needs it? by Trejkaz · · Score: 1

      This is either an example of a post to which "think before you speak" would be a good response, or a troll.

      Obviously if you write the app in native code using an assembler... which processor are you writing it for? If you write it with SSE2 instructions, it won't run on anything without them. If you write it without SSE2 instructions, then a VM which can optimise code with SSE2 instructions will be faster than your application.

      Also, a computer having run a function 500 times knows far better what is far more efficient than an assembler monkey who might have learned how to program assembler off the back of a cornflakes packet.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    28. Re:Java, who needs it? by ComputerSlicer23 · · Score: 2, Interesting
      I'm not saying this is true for Java (but some of the links below reference JIT), but Dynamo (on old HP project that sounded like it was a rehash of the IBM DAISY project), used to claim they got a 20% speed up from dynamically translating from native code to native code.

      You read that right, they went from PA-RISC to PA-RISC. Picked up a big boost in speed. It claims on some benchmarks it taking code compiled with -O, had performance like -O4 was used while compiling (they dont' cite a specific percentage in the abstract). Below is the link.

      http://portal.acm.org/citation.cfm?id=349303&dl=AC M&coll=portal

      Here's an old slashdot.org article about it:

      http://slashdot.org/articles/00/03/23/106257.shtml

      The link in there is the one that references the 20% speed up. I believe a lot of this type of technology has been silicon on the P4 (it believe some of the instruction cache/micro op trace cache stuff does) does runtime optimization.

      This is essentially the same technology that is used by Valgrind (very cool debugging tool). Valgrind, doesn't do optimization, it does memory reference checks (ensures you never access memory for a read, until you have written there), and has a version that will compute the cache hits rate by each instruction. Now it slows down tremendously the code, but that's because it's not an optimizer, it's just a useful concept based on JIT translation.

      So clearly JIT can create situations where it can out-optimize the best optimized code a compiler can construct. That isn't saying that a Java JIT can whoop up on a good C++ compiler, but it does demonstrate that what they are saying is feasible.

      It's my understanding that the primary place where a JIT translation can just crush regular code, is that it can optimize across function calls, and it can optimize across system calls (system calls are function calls, but I know that the Intel compiler can optimize across some function calls, but nobody can optimize across system calls sanely).

      A JIT, can do all the peephole optimization across translaction units, that a C++ compiler can't legally do. The other thing it can do, is write the version of the code that runs after if there are no aliases (I'm unaware of a compiler that does this, and it's my understanding that's a major problem for C/C++ compilers).

      Kirby

    29. Re:Java, who needs it? by Anonymous Coward · · Score: 0

      And the VM won't generate that code on a 386 like you seem to think it will.

      Additionally, Java's Hotspot compiler only compiles things once it sees the computer spending a lot of time in them.

      Also, if you use GNU GCC in that way, you will get code which is crappy and inefficient compared to what you would get by optimising for the specific architecture. Gentoo is great example of how this comes into play, just by adding -march=athlon-xp to your CFLAGS and recompiling every application, you get a marked increase in performance.

    30. Re:Java, who needs it? by AKAImBatman · · Score: 2, Interesting

      Here

      You'll need OpenOffice or (ewww) MSOffice to read it. Alternatively, there's a Google cache, but it isn't very interesting without the images.

    31. Re:Java, who needs it? by Anonymous Coward · · Score: 0
    32. Re:Java, who needs it? by AKAImBatman · · Score: 2, Informative

      No way. I can believe that - given certain conditions - a good compiler can optimise code better than an assembler (I believe it, but i've never seen it; I'm told that this is the case), but I cannot believe that an interpreter can. Maybe I'm living in the past. Please correct me.

      Wrong on many counts. First off, Hotspot is a native compiler. It just compiles at runtime. Secondly, a good compiler can outperform a human optimizer because it can juggle such concepts as superscaler packets, out of order execution, and predictive branching. These are things that take a human a long time to calculate and figure out effectively.

      BTW, it's been this way for 10+ years. It's just taken Intel processors a long time to catch up. And the *#$@ things STILL don't do SuperScaler right. Nor do they have enough registers. Or proper task switching. In fact, I think Intel still recommends not using the built-in task switch instructions. Blech.

    33. Re:Java, who needs it? by Anonymous Coward · · Score: 0

      Sleep was for the weak, I take it?

    34. Re:Java, who needs it? by Fujisawa+Sensei · · Score: 1

      Not all native code is coded equally.

      --
      If someone is passing you on the right, you are an asshole for driving in the wrong lane.
    35. Re:Java, who needs it? by Jord · · Score: 2, Informative

      Hopefully you (and those reading this) realize that Java has had Just In Time compilers for a long time now. Java code actually gets faster (if properly written of course) as it runs. I am sure Mono does this also but it is definitely not something that is exclusive to the Mono project.

    36. Re:Java, who needs it? by Anonymous Coward · · Score: 0

      In theory all this stuff is great.

      However:

      1. The speedup do to optimization would have to be greater than the run time of the profiling/analysis code to gain any net benefit. Unlikely unless you are comparing against completely unoptimized native code.

      2. The entire JIT compiler and profiling code would have to fit in the cache and still leave some room for the executing code and data or you would instantly loose all performance gains from cache misses alone. Not likely on todays processors.

    37. Re:Java, who needs it? by AKAImBatman · · Score: 4, Insightful

      No, it doesn't. The second piece of code will not run on a 386 like you said it must.


      Of course it won't! That's the point. The Hotspot compiler will generate the second piece of code because it notices you're using a Pentium Pro. If the JVM was running on a 386, it would generate the first bit of code, just like the C compiler.


      Also, GNU GCC compiles code for processors like i686 that still executes on i386 by not using the i686-only instructions.


      As much as I wish they did, not all OSes use ELF binaries. Besides, generating binaries for multiple processors creates a great deal of bloat in the binaries. Not to mention that the JVM will be able to optimize for future processers (when they come out) while the GCC binaries will only be optimized through the current processor.

    38. Re:Java, who needs it? by Anonymous Coward · · Score: 0

      You forgot to add the code required to figure this out and make the change. Or is that done by the Java Fairy Godmother?

    39. Re:Java, who needs it? by Anonymous Coward · · Score: 0
    40. Re:Java, who needs it? by Anonymous Coward · · Score: 0
      Let's say we have equivalent Java and C programs. They both have to run on a 386 or higher.

      Pentium Pro code doesn't run on a 386. You're not making any sense, man.

    41. Re:Java, who needs it? by Anonymous Coward · · Score: 0

      Secondly, a good compiler can outperform a human optimizer because it can juggle such concepts as superscaler packets, out of order execution, and predictive branching. These are things that take a human a long time to calculate and figure out effectively.

      You're technically incorrect on the first count, but factor in your second sentence and you're pretty much right. A human optimizer is always able to outperform the compiler/assembler because he knows exactly how the deterministic state machine of a CPU will react for every case. The compiler has to make generalizations. That said, compilers today are very, very good. A dedicated human optimizer could sit down and beat the compiler 100% of the time, but the time spent on hand optimizing isn't worth the performance gain in doing it.

      There are exceptions to this, of course. Cryptography is a good example. The best and fastest compiled code doesn't beat hand optimized assembler; although it comes close. The reason cryptography is an exception is that for a relatively small algorithm that must be fast above all, it's often worth the effort spent hand optimizing it.

    42. Re:Java, who needs it? by Anonymous Coward · · Score: 0
      Besides, generating binaries for multiple processors creates a great deal of bloat in the binaries.

      As opposed to the lack of bloat involved with loading a compiler every time you want to execute an application. I'd trade code "bloat" (that speeds up execution) for Java's memory-hungry VM.

    43. Re:Java, who needs it? by aled · · Score: 1

      Most enterprise application don't run on ordinary machines. Our Java webapp runs fine on a windows 2000 with 56 Mb of RAM, but I haven't tried more than one client. What does it means? nothing without a context, same as your comment.

      --

      "I think this line is mostly filler"
    44. Re:Java, who needs it? by Anonymous Coward · · Score: 0

      JIT's don't have enough time to fully optimise the assembly like offline compilers can. Also JIT's use a lot of memory, like 33% more than an interpreter, and certainly more than native code. There's also a limitation to the amount of parallelisation that can be achieved due to the codes stack based nature (obviously instructions can be folded, but it still doesn't reach levels of ILP enjoyed by native applications compiled by offline compilers). Why do you think there's research into Method-Level and Thread-Level parallelism? To try to compensate for the lack of ILP.

      Also, there's only so many functions you can inline, do you realise what's involved in invoking a virtual method in Java? It's hideous. The VM would be so much less complicated if the Java spec didn't suck so much. At least then, we'd have a chance of writing our own free one. But with all the API bloat, and all the work the VM has to do just to get half decent performance, it's just too much.

    45. Re:Java, who needs it? by mmusson · · Score: 1

      That's twice as fast as the C code!

      Of course then Java will need to stop for 10 mins and garbage collect!

      Seriously though, the base language and VM are not what cause the performance problems. It is the style of code where a large number of short lived objects are created and destroyed on the heap. This is too expensive.

      --
      SYS 49152
    46. Re:Java, who needs it? by Too+Much+Noise · · Score: 2, Interesting

      so you're saying the jvm can do just-in-time optimizations ... ok, I'll grant you that. It CAN be a benefit. but let's take things with a grain of salt here.

      (*)optimizations are expensive. compilers do multipass optimizations routinely.
      (*)jit optimizations have to come in parallel with the running code and this sucks resources in the beginnig.

      So it boils down to something like a long-running java app might eventually end up as fast as, or faster, than a C/C++ counterpart. That is open to debate. The thing that is more certain is that you usually get better maintainability for java when changing platforms/instruction sets. This is tautological, as it comes from the very idea behind java.

      The reason why I believe your argument is open to debate is that there are only so many optimizations the language will allow. It's not just a question of generating the machine code (although that comes in too - and it is expensive) Look at the long-standing issue of the language of choice for HPC - Fortran. C++ is so much better, but the compilers are not allowed to do optimizations as aggressively for c++ as for fortran. Hence, C++ code tends to be slower than Fortran code. Plus, there's always language overhead.

      Bottom line is, there are always the 2 extreme cases and the 'in-between' ones. Java can be fast, provided you have the right combination of code (including coder) and jit compiler. But the same goes for native compilers as well, and in the real world this 'match made in heaven' rarely occurs.

    47. Re:Java, who needs it? by AKAImBatman · · Score: 1

      Pentium Pro code doesn't run on a 386. You're not making any sense, man.

      Oh, for crying out loud. Since you're insisting on being denser than lead, let me spell it out for you:

      1. Assume that Hotspot and the C compiler will generate the same code if told to optimize for the same processor.

      2. Assume that the C implementation must generate code for the lowest common denominator. e.g. If your customers have 386s, you must generate code for a 386, no later.

      Thus:

      386:

      C - The first code example
      JVM - The first code example

      PPro:

      C - The first code example (since the customer can't or won't recompile)
      JVM - The second code example (since the JVM is doing the compiling)

      Got it? No? Then read it again.

    48. Re:Java, who needs it? by Anonymous Coward · · Score: 1, Informative

      In several recent benchmarks Java is already as fast or faster than the best C++ compilers, and there are evidently strong theoretical reasons why this should be. See e.g.

      Performance of Java versus C++
      http://www.idiom.com/~zilla/Computer/javaCben chmar k.html

    49. Re:Java, who needs it? by Too+Much+Noise · · Score: 1
      Good points. Add to that:

      3. the jit should at some point just get out of the way of the program and just let it run. It's probably efficient enough that at some point the whole code be optimized and done with.
      4. on the issue of cache misses and pipeline stalls, the jit is a beast. the less it gets to use the processor at all, the better.
      5. JITs will suck on Itanium next to forever due to the weird optimization mechanisms of the platform. (well, 'forever' as in 'until Intel dropsthe whole itanic once and for all).

    50. Re:Java, who needs it? by AKAImBatman · · Score: 2, Insightful

      Very observant. My original reply was to the poster who said it was impossible for the JVM to run faster than native. However, I realize that real world code is likely to be impacted by the time it takes the Hotspot compiler to do optimizations. (That's actually one of the reasons that Java has been such a good fit for servers.)

      Now here's the catch-22. All this stuff about making code perform better on the processor is BS. Unless you happen to have a platform designed for HPC (such as a Cray), your processor is otherwise spending that time doing nothing. (Memory wait states, cache misses, and other annoyances.) The thing to pay attention to is that the lost cycles don't matter. A .5% increase in performance is not going to make a lick of difference when your code is only running for 300 milliseconds at a time. And in that 300 millisconds, a few hundred million instructions get processed.

      Unless programmers have a justification for a few thousand extra instructions a second (e.g. crypto cracking), their time would be better spent writing portable and maintainable code. The time they save from that maintainability can then be put into adding new features, and making their applications that much better. Especially since Java excels in the area of libraries. Dream up the most complex program you want, and I'll guarantee that 60-90% of the hard work has already been done for you.

      Compare that to DLLs and staticly linked libs. Using C and C++ libraries back in the day, was more an exercise in frustration. Eventually you just said, "screw it!" and rewrote it yourself. Today, there are some very good libs for Unix, but there is still nowhere near the wealth of libs as Java has.

    51. Re:Java, who needs it? by Anonymous Coward · · Score: 0

      True, but if you want to beat runtime-optimized code by natively coding a nontrivial project, you're going to spend several times as much time doing it. You would also have to stop using dynamically-linked libraries.

      Nobody wants to code like that.

    52. Re:Java, who needs it? by boelthorn · · Score: 1
      The Hotspot Java VM can optimize based on how the code is currently being used, undo an optimization if it starts slowing things down, and use processor specific instructions!
      That would be a nice feature for CMU CL (look here for info). Common Lisp has a far more powerful OO system than Java anyway. And if you don't like it, write your own OO system in Lisp... you can! Can you do this in Java?!
    53. Re:Java, who needs it? by Anonymous Coward · · Score: 0

      Look at the results of HP's dynamo project, and be amazed. It turns out that it works in practice about as well as it does in theory.

    54. Re:Java, who needs it? by Anonymous Coward · · Score: 1, Interesting

      Have you heard of HP's Dynamo project? They ran PA-RISC code on a runtime-optimizing virtual machine running on PA-RISC processor, and they got a speed boost over running the code directly on the processor.

    55. Re:Java, who needs it? by Anonymous Coward · · Score: 0

      And it doesn't matter how much profiling you do on your code, you still won't be able to beat the runtime-optimized code. No matter what you do, you won't be able to optimize across your the libraries your program loads at runtime.

    56. Re:Java, who needs it? by OoSync · · Score: 2, Interesting

      Something that often crops up in the C/C++ versus Fortran discussions is pointer-aliasing. The inability of C/C++ compilers to really optimize around the problem of pointer-aliasing is a non-trivial problem and impedes the performance of those codes.

      Now, I don't program in Java, but I understand that Java pointers are "smarter" than C/C++ pointers and that the JVM may be smarter at determining aliasing and be more aggressive about optimizing. If (again, I don't know, but I'd be interested in knowing) this is true, then it could be relatively easy to imagine situations in which a JVM (with appropriately aggressive optimizations) can execute code much faster than C/C++ compiled code.

      --

      I always get the shakes before a drop.
    57. Re:Java, who needs it? by Anonymous Coward · · Score: 0

      And all that sophisticated analysing, recompiling, optimising, and re-optimising is totally free right? Doesn't use up a single clockcycle? AMAZING!

    58. Re:Java, who needs it? by Anonymous Coward · · Score: 0

      Ever heard of CPU dependent implementation?
      No? Have a look at the MKL from Intel.

    59. Re:Java, who needs it? by jBabel · · Score: 1

      And if you don't like it, write your own OO system in Lisp Still in college, are you?

    60. Re:Java, who needs it? by AKAImBatman · · Score: 1

      Now, I don't program in Java, but I understand that Java pointers are "smarter" than C/C++ pointers and that the JVM may be smarter at determining aliasing and be more aggressive about optimizing.

      That's because Java uses references instead of pointers. When you have an object reference, the JVM might tweak the actual storage or linking situations to its hearts content. It may even do things like link a "new" object to an existing one if it can prove that the object is immutable. This is particularly handy for Strings, where creating the same string over and over would be a waste of memory and CPU.

    61. Re:Java, who needs it? by Anonymous Coward · · Score: 0

      You're still ignoring the fact that C code is often optimized for i586 and above. That and my original comment had nothing to do with C, but simply native code in general. You cannot go faster than assembly unless the assembly is poorly written, thus Java is not faster than native code. Fine, it's faster than your contrived C example. C isn't native code in the first place, why should it be better than Java?

    62. Re:Java, who needs it? by cubic6 · · Score: 1

      You're absolutely correct about the ability of Hotspot to generate optimized code for higher processor architectures. However, you also make a big assumption that's probably not true: that the native code software you're running must be compiled for 386/486. Nobody who cares about performance would run unoptimized, 386-compiled code. If you have a P4 doing intensive calculations, you're going to use software compiled for P4 using SSE2. With open source software, that's a given, but even many proprietary vendors provide binaries optimized for different processors. Hotspot only has an advantage when you want to run the *exact* same binary on multiple processors.

      The other thing to keep in mind is that the processing time spent deciding on those 2 lines of code is most likely many hundred times as long as the execution of the 4 line version. Thus, this will only pay off if you run the same code over and over again without reloading it into memory. Hardly what I would call the normal case.

      --
      Karma: Contrapositive
    63. Re:Java, who needs it? by Torne · · Score: 1

      There are other, much simpler ways to get Java to generate code faster than well-written assembly code. Imagine you have a huge loop with millions of iterations that calls some function or other. Now, that function has some argument which is a boolean, which is not the same during all loop iterations (calculated in some complex way based on some input data). If some dataset causes that function to always be called with 'true', then the JVM is capable of noticing this, and generating an optimised version of that function which has 'true' hardcoded in all the places where it previously referred to the boolean argument (with all other normal optimsations applied afterward; dead code elimination will wipe out all the 'false' paths..etc). This can give you better performance than the most well-written assembly code.

      Now, you could argue that this is a pathological case, and you could, for example, write two versions of the function, one for true and one for false, and then put a single conditional check in the loop; that still has the conditional check, which will require some processor time. Also, what if there is not one boolean argument but many? Or non-boolean arguments? Are you going to write a hand-optimised version of your function for all possible inputs? That would degenerate to being a lookup table. =)

      Other examples are when things like types are involved; some function takes an argument of type A, but it can be established through analysis that all calls to the function in a certain context actually are passing objects of concrete type B (B extends A). The JVM can therefore call directly the methods of B during that function, which eliminates the performance penalty of virtual method dispatch - no virtual dispatch is needed because the type can be exactly derived. A C++ compiler *cannot* do this optimisation, because it depends on runtime information (the contents of the method which is calling you).

      The thing about being able to generate CPU-specific code for the CPU you are running on, while true, is misleading, as that is *not* where the main performance benefits of runtime optimsation come from. The ability to detect special cases that *do not occur during all executions of the same code* and optimise for them is the killer; it's impossible for a non-interpreted language to make these.

    64. Re:Java, who needs it? by Anonymous Coward · · Score: 0
      Hardly what I would call the normal case.

      I guess this means you write all your programs so that each line executes only once? Puhleeze.

      Then again, if you use C rather than a OO language, I can see how that would be a lot easier to do.

    65. Re:Java, who needs it? by warrax_666 · · Score: 1

      No it isn't. Can't be bothered to find a link (Google can probably help), but since somewhere around 1.3 it has in fact become cheaper to let the JVM handle reuse of short-lived objects than it is to do it yourself.

      Btw, in C this is actually a problem, because malloc() is (usually) extremely expensive for allocating lots of small objects.

      --
      HAND.
    66. Re:Java, who needs it? by TheRaven64 · · Score: 1
      Every runtime optimization check introduces a performance hit.

      And you don't consider compiling everything you install to be a performance hit? For the record, I usually install from source. Not for the small performance gain, but because I get the option to compile something other than the default build if I want some functionality that is not included in the default build.

      Also, note that this only gives half of the benefit of a good JIT implementation, since when you compile on your Gentoo system GCC doesn't have any runtime profiling data. A JIT compiler has. Here's an entirely fictitious example in which a JIT would be better:

      Say you had an app which called a sort() function. Usually this would be implemented by a quicksort algorithm. Quicksort is a O(n^2) algorithm, but it is commonly used since it rarely comes close to the worst case. Suppose when you run you application, you find out that you are getting a lot of data which is close to the worst case (which, for quicksort, is pre-sorted data). A static compiled binary would continue to hit the worst case, and be slow. A JIT compiler could notice the worst case, and swap in a merge-sort, or some other O(n log(n)) algorithm. This is a much higher-level example than you will actually get with current JIT implementations, but JITs are a very interesting research area at the moment.

      --
      I am TheRaven on Soylent News
    67. Re:Java, who needs it? by AKAImBatman · · Score: 1

      And what part of the fact that I used that example because I don't remember MMX/SSE/SSE2 instructions makes it so difficult for you to get through your thick head?

    68. Re:Java, who needs it? by AKAImBatman · · Score: 1

      However, you also make a big assumption that's probably not true: that the native code software you're running must be compiled for 386/486. Nobody who cares about performance would run unoptimized, 386-compiled code. If you have a P4 doing intensive calculations, you're going to use software compiled for P4 using SSE2.

      Does anyone around here fscking READ?

      READ THIS PARAGRAPH AGAIN:


      Real code would tend to be running on modern processors, so this example is a little contrived. However, the JVM can (and will) use SSE instructions to do multiple calculations in one instruction, while the C code will be forced to generate non-SSE instructions to support the old Pentium Is out there.


    69. Re:Java, who needs it? by Hast · · Score: 1

      GCC isn't a very good optimizing compiler. And it doesn't do a lot for modern computers. So I doubt that you get even remotely the benefits you'd get if you used eg Intels compiler.

      But there are very many optimizations you can't do at compile time. Pointers being one rahter hairy issue, and last I heard pointers were pretty popular. (They are hard because you need run-time data in order to know what they are.)

      JIT compilations can be faster and more efficient than precompiled. Just as the reverse can be true. So it would seem like a combination (caching JIT) would be ideal.

    70. Re:Java, who needs it? by Hast · · Score: 1

      A human optimizer is always able to outperform the compiler/assembler because he knows exactly how the deterministic state machine of a CPU will react for every case.
      But modern CPUs are becoming so complex that it's no longer possible to completely "grok" the processor. Well you could, but it would take some really brilliant programmers a lot of time.

      Just the translation to micro ops and caching of that would be hard to keep track of in your program. If you layer in the processor being super scalar it will soon become very tricky to keep track of it all. Try to do software-pipelining and all that while simultaniously optimizing cache and all the other parameters and you'll soon grow sick of it.

      As you mention it can be done for special types of code. Cryptographic code is typically quite straight-forward to implement and it's easy to track the flow of bits in the program. That makes it easy to optimize by hand. (Easy and straight-froward means compared to a hard program, not that it's a trivial task.)

      Personally I don't think you could hand optimize a suffuciently large program (say Office suit) and get a result that is faster than compiled. After a while the different parameters just pile up a bit too high.

    71. Re:Java, who needs it? by Hast · · Score: 1

      So you should problably use a specialized temporary malloc like arena. (Ie, you malloc a large chunk of memory and then do your own memory management.)

      Personally I'd rather like a VM to do it for me though. Since it can do optimizations like that in run-time.

    72. Re:Java, who needs it? by TomRitchford · · Score: 1

      Quicksort is O(n log n) for "almost all" input data... it was one of the first n log n sorts, that's why it's called quicksort.
      The rest of your argument is fine.

    73. Re:Java, who needs it? by Anonymous Coward · · Score: 0
      Meta-modded "not-troll"

      hat the poster was clearly saying (and is observable in many cases) is that PHBs and pseudo-programmers get sucked in by buzzwords, which seems to be self-evident.

      This says nothing about the relative merits of Java, but simply that less informed people are susceptible to advertising and might not choose the appropriate tool for a particular job.

    74. Re:Java, who needs it? by Anonymous Coward · · Score: 0

      This is what pisses me off about Slashdot. You won't let the poor guy post his honest opinion without modding it down if you don't agree. I think he's right.

  6. hmm... by Pun+Troll · · Score: 1, Funny

    I guess you could say they're "sunning" (shunning!) Open Source!

    1. Re:hmm... by Anonymous Coward · · Score: 0

      Terrible, just terrible.

    2. Re:hmm... by Anonymous Coward · · Score: 0

      Or not.

  7. High cost of J2EE? by jhouserizer · · Score: 5, Informative
    This article mentions outlandish prices (it says $100,000 per cpu) for J2EE (Weblogic and WebSphere).

    It fails to note that these are the *most expensive* full-suites of these products that have lot of non-J2EE frills (you can get into Weblogic's base J2EE support for $10k). Other commercial J2EE application servers are well under the $10k mark (e.g. $1500 for Orion Server)

    This article also fails to note that there are more than a couple very robust OpenSource implementations of J2EE application servers, that are of course free.

    It's obvious that if they pointed these facts out that their argument would be weaker...

    1. Re:High cost of J2EE? by dietz · · Score: 1

      This article also fails to note that there are more than a couple very robust OpenSource implementations of J2EE application servers, that are of course free.

      I was under the impression that the only open source J2EE app server is JBoss. Are there more?

    2. Re:High cost of J2EE? by jhouserizer · · Score: 4, Interesting
      Quite a few more, depending on your definition of "J2EE Application Server". J2EE is a collection of specifications, and you only need to implement one (or more) of those specifications to be considered a J2EE server....

      But there are other Open Source "full j2ee stack" application servers out there besides JBoss - Jonas for example.

    3. Re:High cost of J2EE? by S.O.B. · · Score: 1

      There is also OpenEJB

      --
      Some of what I say is fact, some is conjecture, the rest I'm just blowing out my ass...you guess.
    4. Re:High cost of J2EE? by Trejkaz · · Score: 3, Informative

      Other commercial J2EE application servers are well under the $10k mark (e.g. $1500 for Orion Server)

      This article also fails to note that there are more than a couple very robust OpenSource implementations of J2EE application servers, that are of course free.

      From the article:

      J2EE is a set of specifications, not any particular implementation. There can be pricey implementations, and there can be affordable ones. The trouble is, the pricey ones have the mindshare (IBM WebSphere, BEA WebLogic). There are far cheaper implementations, but who has heard of them? Orion or Pramati, anyone? And of course, there are Open Source implementations as well (e.g., JBoss), but JBoss (as of February 2004) is not yet a certified J2EE server, and its fledgeling commercial support organisation (the JBoss Group, now called JBoss Inc.) often lacks the clout to open many corporate doors.

      I guess they must have quickly jammed those in right after they saw your complaint on Slashdot. Alternatively, you just didn't read the article.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    5. Re:High cost of J2EE? by MosesJones · · Score: 1

      They also didn't go looking at application servers made by such minnows of the Software world as Oracle... or indeed Sun.

      The article misses many points, and the price issue is just one of them.

      --
      An Eye for an Eye will make the whole world blind - Gandhi
    6. Re:High cost of J2EE? by Anonymous Coward · · Score: 0

      Let's not forget that JBoss is free.

    7. Re:High cost of J2EE? by anti-trojan · · Score: 1

      As far as I know Oracle has licensed Orion for its J2EE application server.

    8. Re:High cost of J2EE? by figa · · Score: 1
      His argument would also be weaker if he understood that he's denigrating JBoss, a quality Open Source application server, at the same time that he's promoting Open Sourcing Java. He's pushing Sun to make money with free products while complaining that commercial enterprise J2EE implementations cost too much. Which is it, is Open Source inherently better, or is it weak due to its "fledgeling commercial support organisation" and lack of "clout"?

      Certifying JBoss is a separate issue that should be taken up elsewhere. JBoss fits well in its market niche, and obviously the players that want to spend $100k on WebLogic feel like they're getting some value for their investment.

      The article overstates the threat of .NET, and really doesn't rely on the strengths of Open Source to sell it. The main one is that Sun could open up its developer base and take better advantage of academic programmers, talented hobbyists, and contributions from professionals in other organizations, with zero additional cost to its shareholders. The Java community isn't hurting for Open Source products that complement Java. There are compilers, JVMs, components like log4j and SWT, services like Tomcat, and IDEs like Eclipse. If Sun rolled over and died today, nearly all the pieces are there to put together a full Open Source implementation.

      Sun needs to recognize that its strength is in leading Java, which wouldn't be diminished by Open Sourcing its implementation. In fact, the longer Sun holds onto Java, the more energy competitors (IBM) put into their own implementations.

      Overall this article was shrill and counterproductive. I won't even get into the Ant rant (Eclipse has full Ant support and integration). The ideas in XDoclet are incorporated into 1.5. The author obviously doesn't know what he's talking about (browser based rich UIs?) and has spent way too much time sniffing .NET glue.

  8. Biggest threat is Microsoft by maliabu · · Score: 5, Interesting

    in previous discussion, those opposed OpenSource Java suggested that with MS's domination today, MS can easily 'improvised' OSJava to become a run-on-windows-only-OS-Java (WOOSJAVA).

    it doesn't matter if anyone else is going to benefit from/use/modify this WOOSJAVA, most likely it will just be preinstalled in all Windows shipped.

    and regardless of what others may like to think, most consumers of MS will think that this WOOSJAVA is now the standard.

    so in the end, maybe even Sun needs to write things to accomodate this WOOSJAVA in order to survive, that'll be ironic.

    1. Re:Biggest threat is Microsoft by i23098 · · Score: 2, Informative

      Ah! But this is the part than an Apache like version takes place. Java is a trademark of Sun, so they can say that Java is open-source, but any derivative products can't be called Java. That way, any one could contribute to it, but with Sun control over Java. MS version of Java couldn't be called Java unless it was approved by Sun.

    2. Re:Biggest threat is Microsoft by MBCook · · Score: 4, Interesting
      That's why the article suggests a dual license with the GPL. That would mean that either MS would have to buy a license that would allow them to modify the language at will (which Sun can just refuse to sell), or they would have to do it to the GPL version and they would have to release the changes to the community which would keep it from being Windows only. If you add in all the stuff that MS has to say against the GPL, they would either have to eat some serious dirt/crow/hat or they would have to not touch the language.

      Also, there is the fact that if they do that they can't call it Java, because Sun owns that name (credit for this point goes to a sibling comment).

      --
      Comment forecast: Bits of genius surrounded by a sea of mediocrity.
    3. Re:Biggest threat is Microsoft by maliabu · · Score: 1

      the "Apache Public License" might be the only solution, ie Sun needs to control all the changes.

      If there's another version of GPL as you suggested, then as i mentioned, MS couldn't care less to release the changes back to the community, as long as it has the modified copy in Windows.

      in the simplest example, if Java is Open-Sourced in the normal GPL way, MS changed all wording of "Java" to "MS-Java" and release this improved version back to the community.

      people can change "MS-Java" back to "Java" or just don't use this version. nobody cares.

      however, what MS wants is to make sure all Windows have this MS-Java version preinstalled, so every time a Windows user needs to use Java, it's showing MS-Java all over the place, unless this Windows user downloads the true version of Java, which most people wouldn't bother.

    4. Re:Biggest threat is Microsoft by Elwood+P+Dowd · · Score: 2, Informative

      They can do that anyway, open source or not.

      The only thing that prevents them is anti-trust law, not proprietary licensing.

      Also, the GPL would guarantee that Sun can rejoin the WOOSJAVA fork whenever they like, and gain all the benefits. As someone pointed out, Microsoft could use make their open source implementation call some closed source DLL, but at least Sun would also be able to release a version of OSJava that called that closed source DLL just the same. The API would be pretty obvious.

      --

      There are no trails. There are no trees out here.
    5. Re:Biggest threat is Microsoft by blamanj · · Score: 0

      So how is this different than the current situation where Microsoft calls their version of Java C#?

    6. Re:Biggest threat is Microsoft by i23098 · · Score: 1, Informative

      So how is this different than the current situation where Microsoft calls their version of Java C#?
      I sure hope you intended to make a joke...
      If not... Well, it's completly different. For once, you cannot compile a program in C# and run in JVM, or compile in java and run in .NET VM.
      The possible problem with java being open source is that several quasi-compatible java appears but the incompatibilities would destroy java. MS for sure, could make a java version with several enhancements that would run only in windows... And since most people use windows Sun could loose control of Java. I stated in my previous post that Java is a trademark of Sun, so Sun can make an Apache-like version where it states derivative works can't be called Java. That way, people could contribute, but Sun had full control over Java.

    7. Re:Biggest threat is Microsoft by Anonymous Coward · · Score: 0

      So, they would just call it "My Coffee". Either way people would still use it by default if it was bundled with Windows.

    8. Re:Biggest threat is Microsoft by Jason+Earl · · Score: 2, Interesting

      When it comes to GUI desktop software Sun has already lost control of Java. Oracle has their own JVM that is required to run their Java applications. IBM has SWT that is basically doing precisely the same thing that Microsoft got in trouble over all those years ago. Free Software hackers are working on their own version of Swing that can be compiled with gcj. Not to mention the various and sundry Java-like JVMs that are available (Kaffe, sablevm, etc.).

      If Sun released their JVM under the GPL people would still continue to get their JVM from Sun, the only difference is that Sun's JVM would become more acceptable to the Free Software community. In fact, it would probably take a lot of the wind from the sails of these projects that are making divergent versions of Java (SWT is the best example of this).

    9. Re: Biggest threat is Microsoft by gidds · · Score: 5, Insightful
      they would have to release the changes to the community which would keep it from being Windows only

      Doesn't follow. Open source or not, it would be trivial for them to use some feature which is only available on Windows. Sun can have all the source code they want, but if it can't run on other platforms (without effectively porting chunks of Windows too), then they're stuffed.

      Open Source is wonderful for apps with a known interface. But Java isn't an app; it's a platform. One of its greatest advantages is its platform neutrality. While having a single company like Sun in charge of it may prevent Joe Bloggs from adding his whizzy new feature, it also prevents M$ from doing the same, which IMO is far more important. I think Sun have steered a fine line between locking Java up so tightly that no-one feels safe using, and opening it up so much that no-one can choose which of the multiple subtly-incompatible versions to use.

      --

      Ceterum censeo subscriptionem esse delendam.

    10. Re:Biggest threat is Microsoft by ajagci · · Score: 1

      in previous discussion, those opposed OpenSource Java suggested that with MS's domination today, MS can easily 'improvised' OSJava to become a run-on-windows-only-OS-Java (WOOSJAVA).

      They don't need Sun's source code or Sun's permission for that. In fact, they have already done it: it's called C# and CLR. They even provide extensive Java compatibility and migration tools.

      it doesn't matter if anyone else is going to benefit from/use/modify this WOOSJAVA, most likely it will just be preinstalled in all Windows shipped.

      You seem to have been asleep; it already is preinstalled.

      and regardless of what others may like to think, most consumers of MS will think that this WOOSJAVA is now the standard.

      They already do: it's called .NET. However, Microsoft can't call it "WOOSJAVA" because that would be a trademark violation. Sun can continue to protect their trademark even if they give away the code.

      so in the end, maybe even Sun needs to write things to accomodate this WOOSJAVA in order to survive, that'll be ironic.

      Yes, I fully expect Sun to support C# and CLR over the next few years: they won't have a choice.

    11. Re: Biggest threat is Microsoft by Anonymous Coward · · Score: 0

      >> they would have to release the changes to the community which would keep it from being Windows only
      > Doesn't follow. [...] it would be trivial for them to use some feature which is only available on Windows.

      Shure. But that would mean that MSFT must open-source Windows, too. Please read the GPL for details.

      Once Windows is open-source, it would be trivial to port the required function(s) to other operating systems. -- This would have the nice side-effect that in the end Solaris and MacOSX would fall under the GPL, too.

    12. Re: Biggest threat is Microsoft by alex_tibbles · · Score: 1

      Quite right but... If MS were to add a feature to MSJVM based on Sun's hypothetical GPL-ed JVM which only worked on Windows OSes, then any other GPL-ed JVM can use that code on Windows. It's just a Windows-only feature. But it's not a MS-only feature which is what happened with the Microsoft Virtual Machine.
      So there could be a Windows-only extension to Java available, but it is still vendor neutral.

      To be harmful, such an extension would have to be either used by MS compiler in order to kill Write-Once-Run-Anywhere, in which case Sun would sue like over the MSVM; or be such a killer feature that developers want to use it, in the knowledge that they are tieing themselves to Windows. This last case is not dangerous, because if a developer decides to write non-portable stuff he's not loss to portability. If it's just such a killer feature that developers use it without thinking (and realising that they're breaking portability) then it should probably be emulated/ ported to other platforms!

      Can you think of any examples that are not of the MSVM type?

    13. Re: Biggest threat is Microsoft by molarmass192 · · Score: 1

      Not necessarily, see section 3 of the GPL:

      However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

      There's an exception in the GPL for "normally accompanying OS runtime libraries. The "normally" piece would exempt the underlying OS from being forced open.

      --

      Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
    14. Re: Biggest threat is Microsoft by HiThere · · Score: 1

      I can't think of any examples off hand, but patents can be used to prevent features from being ported to other systems. So the (presumed) fact that they've come up with a feature so good that it should be ported doesn't mean that it CAN be ported to other systems.

      Otherwise I'd agree totally. As it is...I just agree mainly. I don't think they should use a GPL precisely, but a modified GPL that handles this patent issue. (The current GPL handles some patent issues, but not the kind that the vendor of an OS can create.)

      That said, I still can't think of any, but that only proves that I don't know any particular patents. IANAL, so I could be being pessimistic here. But I don't think so.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  9. Mono is not a threat by Anonymous Coward · · Score: 4, Informative

    Given the state of Mono, it's not in a position to give anyone pause.

    There's no motivation to "Open Source" Java. It's supported on a myriad of platforms and you can even get access to the source if you want to take on the implementation on a new platform.

    1. Re:Mono is not a threat by Anonymous Coward · · Score: 0

      Mono is porting .NET to UNIX platforms. .NET is a threat to Java. How is this not a threat?

      As for no motivation to open source Java, I think you meant no monetary motivation. If everyone had access to the source of Java, we could start doing ahead-of-time compilation of Java apps to native code (using GCJ) to make them start up much more quickly.

      I guess if you don't want to change Java at all then, you're right, there's no motivation for open sourcing it. If you're looking to make improvements to Java that require access to the source (as I'm sure the authors of GNU Classpath would like to do), then there is motivation.

    2. Re:Mono is not a threat by Pieroxy · · Score: 0, Flamebait

      This is typical from a Slashdot post. The article talks about strategy and positions from Sun and you try to debute it with a mere technical anecdote.

      You are way off. I'd suggest you (re-)read the article.

    3. Re:Mono is not a threat by aled · · Score: 1

      Yes but he has a point. Mono isn't a treat to anything for the next few years at least.

      --

      "I think this line is mostly filler"
    4. Re:Mono is not a threat by Ogerman · · Score: 2, Interesting

      There's no motivation to "Open Source" Java.

      BS. The article gives several strong motivations, all of which I have personally run into as reasons NOT to use Java at this time. Java will not really take off until it is included with every Linux distro and can be fully embraced by the Open Source community. And it desperately needs more innovation, which OS community support would quickly provide. Sounds like you didn't RTFA. One thing the article didn't mention is that Sun's Java implementation is probably the worst in the industry.

    5. Re:Mono is not a threat by Anonymous Coward · · Score: 0

      Because Mono is about 2 years behind .NET and always will be.

      MS just needs to create the next .NET compiler in house before releasing the spec to be approved and they will always have the upper hand on Mono, and therefore Mono will always lag behind.

      So no, a project with a 2 year time frame to make up is not much of a threat, esp since they can't ever make it up (MS will see to that).

    6. Re:Mono is not a threat by Jord · · Score: 3, Interesting
      Java will not really take off until it is included with every Linux distro and can be fully embraced by the Open Source community.

      What exactly is your definition of taking off? Java is simply HUGE in the corporate environments. Java is used in just about every industry. While it may not be the largest thing in the Open Source community, it has definitely already "taken off".

      Try looking beyond OSS.

  10. Surprise! by Anonymous Coward · · Score: 0, Flamebait

    Are we supposed to be suprised that a bunch
    of GPL zealots are claimoring for a private
    company to relinquish ownership rights to a
    piece of software? I doubt there is any "owned"
    software that they don't wan't to demand they
    be allowed to control. As long as their is a
    standards process, preferably ANSI, ISO, etc.
    I don't care if Sun retains ownership.

  11. Open cool, but still keep distribution rights. by demonic-halo · · Score: 5, Insightful

    I think open sourcing it is ok, but they should do all the work on it internally and not let any 3rd party distribute their own Java.

    When you have a cross platform interpreter, you need to make sure there is consistency. For example, Microsoft JVM ruined it for alot of people since developers will forget to debug it on Suns JVM, causing huge incompatibility issues that they blamed on Sun.

    1. Re:Open cool, but still keep distribution rights. by seriv · · Score: 1

      That would probably be the best thing. I still don't see though how they are going to make a profit from distributing Java either way. Assuming profit is still important to Sun.

    2. Re:Open cool, but still keep distribution rights. by Anonymous Coward · · Score: 0
      I think open sourcing it is ok, but they should do all the work on it internally and not let any 3rd party distribute their own Java.

      This is a contradiction. Open Source implies the right to redistribute, and the right for anyone to work on it.

      The correct solution to the problem you are concerned about, compatibility with a standard, is to require something like "You can't call it Java if you modify it." and "You must clearly mark modified versions.". Furthermore, if they used a copyleft license, Microsoft could not make a modified version without rewriting from scratch, releasing their modifications, or paying Sun for alternate terms.
    3. Re:Open cool, but still keep distribution rights. by newhoggy · · Score: 2, Insightful
      I think open sourcing it is ok, but they should do all the work on it internally and not let any 3rd party distribute their own Java.

      I'd like to know how "not let any 3rd party distribute their own Java" qualifies as open sourcing Java. See Open Source Definition

      What's more likely is that any 3rd party can distribute their own "Java", but they can't call it "Java". without Sun's permission because Sun owns the trademark.

    4. Re:Open cool, but still keep distribution rights. by Almond+Tree · · Score: 0

      Does the term, "Benevolent Dictator for Life" ring a bell? Linus doesn't seem to have any problem maintaining the helm of the kernel. If Java becomes open source and forks (like it's not already available in various versions), there will always be those who want to use the "vanilla" version. Non-issue - move along. Step away from the discussion.

      --

      bau bau chicka chicka mau mau

    5. Re:Open cool, but still keep distribution rights. by robbyjo · · Score: 2, Informative
      --

      --
      Error 500: Internal sig error
    6. Re:Open cool, but still keep distribution rights. by HiThere · · Score: 1

      I did check out the SCSL. Since then I haven't downloaded any source releases.

      The SCSL is better than most EULAs, I'll give it that. But that's about all I'll give it. It's not similar in purpose or intent to any of the FOSS licenses, GPL compatible or not. It's more similar to the original NPL that was rejected by the Open Source community and was declared to be a non-Open Source License. (This was replaced by the MPL, which fixed the problems.)

      Guido keeps control of Python with an Open License that's closer to BSD than to GPL, so there's no argument that Sun needs this kind of license to keep control of the development. Not unless it's incapable of treating people fairly. (Which I keep thinking is their essential reason for the SCSL.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  12. vested means hidden by Anonymous Coward · · Score: 1, Interesting

    there's nothing vested about Sun's interest in GNOME. It's just an interest.

    1. Re:vested means hidden by kfg · · Score: 1

      Vested interest does not mean hidden. It means invested in some manner, such as a right in an estate.

      Or, in this case, the relevant meaning is this one:

      3. A special interest in protecting or promoting that which is to one's own personal advantage.

      And Sun most certainly is promoting Gnome for its own personal advantage.

      KFG

  13. Not sure this is what we need by SamiousHaze · · Score: 5, Insightful

    I'm not certain this is a move that should be made. All we need are 18 different 'forks' in the java tree like certain other open source projects. I can just see it now "No no, you need BobJavaVM-1.43.2.43 - it won't run with FastJava V 2"

    1. Re:Not sure this is what we need by jas79 · · Score: 4, Insightful

      Could you back that up with an real example?

      I haven't seen that happen with perl or python. So, I doubt it will happen with java.

    2. Re:Not sure this is what we need by SamiousHaze · · Score: 3, Interesting

      Well, Microsoft's VM for example versus Sun's VM was an example - and I think it would get worse.

      Another example are C++ compilers, while there is a De Jure standard - all the companies include their own libraries that you just can't use unless you want to be incompatible. I'm thinking everyone would want a custom VM/Compiler (how many open source C compilers are there?)

      I would talk about other non-language related projects but I don't want to get slammed (ok, like "this program won't compile on slackware but it'll compile on redhat cause of default library incompatibility issues")

    3. Re:Not sure this is what we need by jas79 · · Score: 2, Insightful

      Microsoft's VM was created without an opensource java. c# was created without java at all.

      there are many in incompatible closed-source c++ compiler. gcc solved that problem by becoming the defacto c/c++ compiler on linux.

      Windows does have many problems with library incompatibility issues. never heard of dll hell?

      I still don't see the problem with opensourcing java.

    4. Re:Not sure this is what we need by Anonymous Coward · · Score: 0

      Well, Microsoft's VM for example versus Sun's VM was an example - and I think it would get worse.

      Neither are open source.

      Another example are C++ compilers, while there is a De Jure standard - all the companies include their own libraries that you just can't use unless you want to be incompatible. I'm thinking everyone would want a custom VM/Compiler (how many open source C compilers are there?)

      ANSI

      I would talk about other non-language related projects but I don't want to get slammed (ok, like "this program won't compile on slackware but it'll compile on redhat cause of default library incompatibility issues")

      Which program?

    5. Re:Not sure this is what we need by alan_dershowitz · · Score: 3, Insightful

      Theoretically speaking:

      Tons of people bitch and moan about java being piss poor for application X or application Y. Right now, I'm looking at an ostensibly "Java" Oracle Forms 9i form that will only run on one JVM, Oracle's JVM. It's convenient for them that they had the money to license Java so they could make their own JVM, its more convenient for us that most people DON'T have that ability.

      Imagine for a moment that every company had the source to Java and the ability to hack the shit out of it to accelerate their own products. It already happened with both Oracle and Microsoft, which was wholly unrelated to the fact that the source to Java was closed. It becomes relevant to the argument at hand when you realize that they were two of the few companies who could embark on such a venture, simply because of prohibitive cost.

      It's possible the only reason this fragmentation hasn't happened right now is because there's no open source JVM that's realistically close to running everything that Sun's can.

      I'm simply playing devil's advocate here, although I do believe closed/open is not relevant to the fact that the MS implementation was incompatible. It was incompatible because they programmed it that way, irregardless of the fact that the source was available or not.

    6. Re:Not sure this is what we need by Chester+K · · Score: 1

      I haven't seen that happen with perl

      How many different forks of the perl source tree are there?

      One?! That doesn't provide a counterexample at all!

      --

      NO CARRIER
    7. Re:Not sure this is what we need by Eponymous,+Showered · · Score: 1

      Emacs & XEmacs. Lisp implementations masquerading as editors.

    8. Re:Not sure this is what we need by Anonymous Coward · · Score: 2, Informative

      Sure.

      Common Lisp

      ANSI Common Lisp standard (X3.226-1994)

      Popular commercial implementations:

      Allegro Common Lisp
      Xanalys Lispworks
      Macintosh Common Lisp
      Corman Common Lisp

      Popular free implementations:

      CMUCL
      CLISP
      Open MCL
      SBCL
      GCL

      All of these implement the Standard, some better than others. All have interesting extensions which are not portable. All bring different elements of interest to the table of developers looking to solve different problems.

      Perl and Python haven't for whatever reason needed to be forked to provide a better implementation for a specific market segment. While large applications are being written in these languages, they're obiviously not in environments where the demand on the engines is high enough to warrant someone funding a fork and a port. (say, Perl for Palm, or Embedded Python, or Enterprise Ruby, whatever -- there is no complete "Python Compiler", for example, that I'm aware of at least). Though ActivePerl et al should be acknowlegded.

      BEA has JRockit which is its own JVM, though it may well ship Suns class library. They felt that they wanted a better JVM to meet their markets needs better than IBM and Sun were.

      Put an implementation to work and the market will fork it as necessary. Just ask MS.

    9. Re:Not sure this is what we need by nunya_biznez · · Score: 1

      Active perl anyone? iirc, they have certain perlisms that will only run with their versions. Or am I off base here?

    10. Re:Not sure this is what we need by chromatic · · Score: 1

      Unless you mean "platform-specific modules in the Win32:: namespace", you're off-base. It's the same source code as all the other platforms.

    11. Re:Not sure this is what we need by g0_p · · Score: 1

      Thats probably because no big organization wanted to try and capture the programming workforce that Perl and Pthon programmers represent. Java is much more widely deployed and there is huge potential for a split in the market. Many small vendors can can make a lot of money if they appeal to even a small segment of programmers.

      You already have IBM making core changes with the introduction of the SWT classes, completely screwing up the whole "write once run anywhere" concept. You cannot write a Java app using SWT and expect it to run on all platforms that other Java apps can run on - just the ones that IBM is interested in supporting. This threat is almost as bad as the whole M$ VM thingy, though I dont think Sun has the resources to fight a battle with Big Blue.

    12. Re:Not sure this is what we need by Anonymous Coward · · Score: 0

      I'm thinking everyone would want a custom VM/Compiler (how many open source C compilers are there?)

      Basically GCC and Open Watcom (which started as a proprietary closed-source compiler). There are a few others that aren't really in a complete or usable state. Practically every open source project relies on GCC; that's not what I'd call fragmentation.

    13. Re:Not sure this is what we need by scrytch · · Score: 1

      All of these [common lisp implementations] implement the Standard, some better than others. All have interesting extensions which are not portable. All bring different elements of interest to the table of developers looking to solve different problems.

      It also bears noting that thanks to the larger research community around lisp and its many implementations, modern Lisp compilers absolutely run circles around java. You can typically compile a lisp app in less time than the JVM takes to initialize and begin JIT'ing the bytecode. To say nothing of the actual execution speed.

      Honestly, who cares if Java is forked. There's a virtual machine and bytecode specification -- simply make it a standard. Oh wait, Sun withdrew Java from the standards process, never mind then...

      --
      I've finally had it: until slashdot gets article moderation, I am not coming back.
    14. Re:Not sure this is what we need by Anonymous Coward · · Score: 0

      Actually, there was originally the ActiveState Windows Perl port which provides a perfect example of the problem. They finally rolled the code back into the main tree and killed the fork. A lot of people don't remember that time though.

    15. Re:Not sure this is what we need by molarmass192 · · Score: 1

      I'm looking at an ostensibly "Java" Oracle Forms 9i form that will only run on one JVM, Oracle's JVM

      While there is the nagging limitiation of technical support which restricts your JVM options -but- that doesn't mean Forms will "only run on one JVM", just that it's only supported on a few Oracle approved JVMs.

      Personally, I think Java runs just fine on the client side. The GUI may not be as snappy as a native GUI but it's on par with similar solutions such as Flash. Most users would be hard pressed to tell the difference.

      To help prevent fragmentation, there'd have to be a GPL-like license to it. It wouldn't mean there wouldn't be ANY fragmentation but it would certainly reduce any potential barriers to keeping any forks in sync with the baseline.

      --

      Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
    16. Re:Not sure this is what we need by HiThere · · Score: 1

      Do you have any idea how much effort is required to maintain a fork? This isn't something that people do lightly. Especially for something as complex as Java.

      OTOH, the current licensing procedures from Sun have forced certain projects to fork the project, even at the cost of creating the code from scratch. I'm not saying that gcj and kaffee would dry up and blow away if Sun were to openly license Java, no more than KDE opening it's licensing caused Gnome to disappear. But Gnome would never have been created if KDE had had an open license from the start. And Sun has created the forks of Java through it's licensing policies. They don't happen at a whim. Getting a compiler to a useable level takes a lot of work. Getting it to an "almost compatible" level takes an immense amount of work. It doesn't happen unless people are coerced into it. Such as by an unreasonable licensing policy on the part of the original project.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    17. Re:Not sure this is what we need by MarkCollette · · Score: 1

      How about how almost every major language revision of python or perl have changed the language sufficiently so that one must "port" large applications over. In fact, almost every single open source application (server side), that I've integrated my my systems, have always changed pedantic little details for the sake of "purity". This is completely unacceptable for business users to spend money changing software for such impractical reasons, and is why I am so glad that no open source developers drive Java's future.

    18. Re:Not sure this is what we need by WNight · · Score: 1

      Why would you "port" an app over to a new langauge, or even a new version of an existing language?

      Here's how you update a perl4 program when perl5 comes out.

      #!/usr/bin/perl4

      Wow, hard isn't it. Now it runs off of the old interpretter and never changes.

      Would you rather that good ideas were never rolled into an existing project? That it never gets easier or better? All your new programs get to take advantage of the new system while your old programs carry on untouched, exactly as if development froze years ago.

    19. Re:Not sure this is what we need by MarkCollette · · Score: 1

      I'm sorry, but I distinctly remember using third party (opensource) software that broke several times as perl 5.x went to perl 5.y, all because one wasn't fully backwards compatible by default.

      As well, even your example of using "#!/usr/bin/perl4" illustrates my point. Back in the day, it used to be that one would simply use: ""#!/usr/bin/perl", but because of incompatibilities, people started having several versions installed, and explicitly told their scripts which version to use.

      Hey, I'm all for progress, but in my view all software should be backwards compatible by default, and new incompatibilities should have to be turned on explicitly. Or at least increment the major version number, ala Perl6. Does anyone else remember the pain in the ass the Perl 5.5 to Perl 5.6 migration was?

  14. The worst thing that could happen... by StandardCell · · Score: 5, Insightful

    ...is that Sun allows Java to wallow in limbo until its development becomes unsustainable and people start using other languages and development environments like .NET, and then make it open source because it became a black hole for them.

    I mean, Sun could still have a vested interest in an open source Java and still derive revenue from custom design services and support while displacing the Beast. It isn't even like the implementation is a trade secret. Heck, the Beast has developed Java bytecode interpreters in the past. But the Beast would love to displace Java with .NET as a universal development language. You can bet diamonds to dollars that Microsoft will never open source their version though.

    Hence, Sun has a great opportunity here. Will they see it?

    1. Re:The worst thing that could happen... by jblake · · Score: 4, Informative

      You can bet diamonds to dollars that Microsoft will never open source their version though.

      Not so. Check out Shared Source CLI, as known as Rotor. Basically a free, open-source version of the .Net framework and C# compiler distributed by Microsoft. It is supported on Windows, FreeBSD, and Mac OS X.

      Also check http://www.sscli.net for some SSCLI/Rotor Projects.

      And did you know that C# and the .Net framework are each ECMA standards? ECMA-334 and ECMA-335 respectively.

      (If you want a linux version of the .Net Framework, look at the Mono Project. It is not connected to Microsoft.)

      --
      I just found a new sig.
    2. Re:The worst thing that could happen... by aled · · Score: 4, Insightful

      If you consider Rotor is open source the Java has the same level open source-ness and this whole post is dust. You can download Sun Java source code, not a crippled implementation.

      --

      "I think this line is mostly filler"
    3. Re:The worst thing that could happen... by Anonymous Coward · · Score: 0

      Since when has Sun been about "custom design services and support". Their business is primarily selling computer hardware.

    4. Re:The worst thing that could happen... by Joe+Tie. · · Score: 1

      Basically a free, open-source version of the .Net framework and C# compiler distributed by Microsoft. It is supported on Windows, FreeBSD, and Mac OS X.

      I also read an interesting article about trying to get rotor to compile in Linux.

      --
      Everything will be taken away from you.
    5. Re:The worst thing that could happen... by k_head · · Score: 1

      Shared source is not open source.

      The Ecma standard does not cover the most important parts of C# onlu the very basic language which is pretty much useless.

      Mono is years behind and will never catch up. If they ever do they will be sued.

      MS has patents on this stuff.

      --
      The best way to support the US war effort is to continue buying American products.
    6. Re:The worst thing that could happen... by Anonymous Coward · · Score: 0

      Thanks for that useful hyperlink to Microsoft.com -- I'd never heard of that site before.

    7. Re:The worst thing that could happen... by ajagci · · Score: 1

      ...is that Sun allows Java to wallow in limbo until its development becomes unsustainable and people start using other languages and development environments like .NET, and then make it open source because it became a black hole for them.

      No, that's not the worst thing that could happen. The worst thing would be that Sun starts trying to make revenue from their Java code and implementations and starts copyright, license, and patent infringement lawsuits against the numerous competing open source projects. They certainly have the license restrictions and patent portfolio to do it. That could go as far as Sun claiming that anything ever done by anybody who has downloaded the Java source code is a derived work and belongs to them; it would be a kind of super-SCO claim, and unlike SCO, Sun would actually have a legal basis for making that claim.

    8. Re:The worst thing that could happen... by ajagci · · Score: 2, Informative

      I agree that Rotor is not open source. But the Rotor license explicitly disclaims any claims over things you learn from looking at the source code. So, you can read the Rotor source code and then go write your own CLR if you like.

      Some of the Sun Java source licenses (there are several), in contrast, pretty much come down to that anything you do after looking at Sun's source code may be considered a derived work.

      The Rotor license is not open source, but harmless. The Sun license, on the other hand, is a serious problem.

    9. Re:The worst thing that could happen... by aled · · Score: 2, Interesting

      "anything you do after looking at Sun's source code may be considered a derived work"

      That's not so; this week at Javalobby Sun JCP Director Onno Kluyt states that looking at Java sources does not taint and is willing to answer FSF questions on the issue.

      --

      "I think this line is mostly filler"
  15. MOD PARENT +1 INFORMATIVE by Anonymous Coward · · Score: 0

    It's good info.

  16. OOH, GOOD KARMAWHORE MANUEVER! LINK TO GNU! by Anonymous Coward · · Score: 0

    That'll attract the mod points! Note to mods: Amsterdam Vallon = Blatent Karmawhore.

  17. Sun doesn't NEED to Open Source anything by fihzy · · Score: 5, Interesting

    Sun has enough fingers in enough pies that will keep it going strong regardless of where it's open source strategy goes. The recent deal with the Chinese standard software company shows that it can leverage open source products without having to open source anything so big as Java to establish their commitment.

  18. What they are talking about? by aled · · Score: 4, Interesting

    There are some interesting points, but others are nonsense. "needs to position its own (Open Source) NetBeans and rival IBM's Eclipse as mere IDEs that support the Ant way of building applications.". Is publicy know by anyone interested that almost every major IDE supports Ant.
    " Sun can lend credibility to Mozilla and XUL.". As much as I like Mozilla (I'm using it right now) I don't know if anyone could do that.
    This is just an order of magnitud above ESR lowly comment but it still missing the target.

    --

    "I think this line is mostly filler"
  19. No relief by aoteoroa · · Score: 5, Insightful
    From the article:
    The Open Source community would be overjoyed, and the Java user community would be relieved, if Sun were to guarantee the perpetually open nature of Java by Open Source-ing its implementations.
    I make a living writing custom browser based applications, and mostly use JSP/Servlets for the job. . . So I feel that I am part of the "Java user community" and as such I can tell you that I would feel no relief if Sun chose to open source Java.

    Microsoft effectively broke Java by extending it to allow the implimention of native windows widgets that wouldn't run cross platform and since Sun owns Java they were able to sue, and win. I think if Java were open source MS would be free to break it again. It's an old argument and one that we have heard over and over again but it has staying power, I believe, because it is true.
    1. Re:No relief by Unoti · · Score: 1

      Just for my own education: Then why didn't Microsoft break Linux in the same way, since Linux is a much bigger threat to them than Java?

    2. Re:No relief by Simon+Brooke · · Score: 4, Interesting
      I make a living writing custom browser based applications, and mostly use JSP/Servlets for the job. . . So I feel that I am part of the "Java user community" and as such I can tell you that I would feel no relief if Sun chose to open source Java.

      Microsoft effectively broke Java by extending it to allow the implimention of native windows widgets that wouldn't run cross platform and since Sun owns Java they were able to sue, and win. I think if Java were open source MS would be free to break it again. It's an old argument and one that we have heard over and over again but it has staying power, I believe, because it is true.

      Oh, do read the fscking article before posting, just for once!

      Yes, I too make my living writing (mainly) servlets. I think this article makes a lot of sense. The whole stack of tools I use for Java is open source. Partially this is necessity: the stuff I write and sell is open source, so it can't depend on for pay components. But it also can't depend on closed source components because my customers need to know that they can still maintain it if I walk under a bus. They need to have the source.

      And, frankly, in today's climate, the same applies to Sun. The computer game is too rough and too fast moving for any second-tier player, like Sun, to have any guarantees of surviving. And people aren't going to bet their businesses on a technology which might disappear from under them just because Bill Gates decided to buy Sun with the spare change for a couple of beers.

      If Sun choose - as this article suggests - to dual license Java, with one license being entirely closed and proprietary and the other being the GPL, then Microsoft cannot legally poison the well. Any change they make, they have to publish the source.

      If Sun GPL Java they still own Java and they can still sue if Microsoft breaks the terms of the GPL. For Sun to adopt the strategy outlined in this article would, in my mind, be a win for all of us - for you and me as software developers, for our customers' security in their business strategies, and for Sun. I really hope (but don't in the least expect) that Sun will follow this advice.

      --
      I'm old enough to remember when discussions on Slashdot were well informed.
    3. Re:No relief by Anonymous Coward · · Score: 0

      What Microsoft offered to Sun was access to the enormous number of Windows desktop machines. Obviously that sort of appeal wouldn't work with Linux.

    4. Re:No relief by Trejkaz · · Score: 1

      I think if Java were open source MS would be free to break it again.

      Three letters: GPL.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    5. Re:No relief by Glock27 · · Score: 1
      And, frankly, in today's climate, the same applies to Sun. The computer game is too rough and too fast moving for any second-tier player, like Sun, to have any guarantees of surviving. And people aren't going to bet their businesses on a technology which might disappear from under them just because Bill Gates decided to buy Sun with the spare change for a couple of beers.

      Er, are IBM and HP "second-tier" players also? They both have large Java investments. I'm pretty sure IBM ships makes more Java related revenue than anyone else.

      There are also free Java implementations (Kaffe, gcj etc.) which are making progress.

      In short, I don't see Java going away, regardless of what happens to the various players involved. Mono, on the other hand, is vulnerable to Microsoft legal action.

      If Sun GPL Java they still own Java and they can still sue if Microsoft breaks the terms of the GPL. For Sun to adopt the strategy outlined in this article would, in my mind, be a win for all of us - for you and me as software developers, for our customers' security in their business strategies, and for Sun. I really hope (but don't in the least expect) that Sun will follow this advice.

      As another poster pointed out (but it's worth repeating) GPLing Java won't prevent Microsoft from "polluting" it. I think Sun has found a middle ground which, like all compromises, isn't perfect...but is workable. Perhaps gcj or Kaffe will eventually become usable "free" Java implementations. Sun has no problem with them.

      Blackdown has also done a nice job of doing a third-party port for Linux.

      --
      Galileo: "The Earth revolves around the Sun!"
      Score: -1 100% Flamebait
  20. OpenSource to the rescue? by Anonymous Coward · · Score: 0, Insightful
    Sun needs to do some radical things to improve its chances of survival, and all of them involve Open Source in some form or the other.

    It's ludicrous to think that opensource in _any_ form will save _any_ company. No one has built a successful business model around opensource and Sun isn't going to do it either.

    1. Re:OpenSource to the rescue? by tehdaemon · · Score: 2, Insightful
      Nobody has ever sucessfully visited mars yet either. Does that mean no one ever will?? No.

      That said, the fact that sucessfull open-source companies are rare (red hat anyone?) means that open-sourcing java is not gaurenteed to save the company. Simply put, your argument is incomplete at best.

      Sorry, I am a bit picky about proper logic.

      --
      Laws are horrible moral guides, moral guides make even worse laws.
    2. Re:OpenSource to the rescue? by Anonymous Coward · · Score: 0

      There are theoretical means of travel to Mars that have not been attempted yet.

      There is no theoretical means of profiting off open-source software that hasn't been attempted--and failed in the vast majority of cases.

      Next?

    3. Re:OpenSource to the rescue? by tehdaemon · · Score: 1
      There is no theoretical means of profiting off open-source software that hasn't been attempted

      Prove it. (hasn't been thought of doesn't count)

      I am not convinced that there have not been sucessfull companies using open-source. Which would moot this argument very fast.

      Last point, our economy is going through severe distortions of credit and liquidity. Saying (or even proving) that open-source as a business model dosen't work in this environment doesn't mean much. This is NOT normal.

      --
      Laws are horrible moral guides, moral guides make even worse laws.
    4. Re:OpenSource to the rescue? by Anonymous Coward · · Score: 0

      RedHat? You're kidding right? If that's your model of a "successful" opensource company then you're more delusional than I thought. Any company with a P/E ratio of 368.30 could hardly be considered "successful". Just because they did some creative (can we say Enron) accounting to show some (uh-hem) profitible quarters doesn't mean the company is a success.

      Sorry I am also a bit picky about proper definitions.

    5. Re:OpenSource to the rescue? by tehdaemon · · Score: 1
      The P/E ratio does not say much about a companies success. In this case it says a lot more about people's perception of furure earnings, and stock speculation stupidity than sucess. (the stock is overvalued because too many morons bought it at too high of a price, not because the company is successfull/unsuccessful)

      Most companies lose money at first, the fact that they have many clients and are not losing tons of cash is some measure of sucess.

      I chose red hat mostly 'cause I vaguely recalled somewhere that they were becomming profitable. I haven't studied their finances or the like. I guess Google would be a better example. A buisness model that depends on selling open source software seems to be a hard one to do, but you do not have to sell it to make money on it.

      --
      Laws are horrible moral guides, moral guides make even worse laws.
  21. Mono?? A threat to java?? by Capitis · · Score: 5, Insightful

    To borrow a phrase from John Stossel: Give me a break!

    While Mono is cool project and, like many developers, one I've been following since it's inception, I don't see it ever overtaking Java, or .Net for that matter. It's a simple matter of resources.

    1. Re:Mono?? A threat to java?? by Anonymous Coward · · Score: 0

      Instead of posting crap like this to get easy karma for your slashdot account (so you can post goatse links at '2), why not help them?

    2. Re:Mono?? A threat to java?? by ajagci · · Score: 1

      Linux?? A threat to Solaris/AIX/Windows??

      Gnome?? A threat to CDE??

      X11?? A threat to NeWS/OpenWindows??

      GNU C?? A threat to Sun's C compiler??

      While Mono is cool project and, like many developers, one I've been following since it's inception, I don't see it ever overtaking Java, or .Net for that matter. It's a simple matter of resources.

      No, it's a matter of monopolies. Sun would like to establish a Java monopoly analogous to Microsoft's Windows monopoly. If they succeed, you are right, Mono won't overtake it. Sun will have finally succeeded in making GUIs proprietary again, as they have tried for two decades. Let's hope it won't come to that.

    3. Re:Mono?? A threat to java?? by Anonymous Coward · · Score: 0

      Linux?? A threat to Solaris/AIX/Windows??

      Let's define our scope. Linux is a kernel. Linux is based on Unix (based on in that it has similar look and feel and feature and functionality). That's the only single Linux there is. If you are talking about the entire OS suite that is commonly called Linux, then it is no different from Unix... there's RedHat Linux, Debian Linux, Mandrake, SUSE, .... just like there is Sun's Unix, IBM's Unix, HP's Unix, ... There's no guarantee that something you write for one will work on the other, and nothing stopping one from changing to be incompatible with every other.

      Gnome?? A threat to CDE??

      Again, its a different product. There's Gnome, there's KDE, there's any of hundreds of desktop desktop environments which are (to a greater or lesser extent) incompatible with each other. CDE is an older product, and newer technology has replaced it.

      X11?? A threat to NeWS/OpenWindows??

      Now you are talking one standard versus another standard. You are no longer talking about implementations or products. There's any number of X11 implementations out there, again each slightly incompatible with the next.

      GNU C?? A threat to Sun's C compiler??

      In what market? Sun's C compiler is better in some cases. Sun still sells a whole bunch of licenses for their compiler. So does Borland, Microsoft, IBM, Intel, .... Maybe in your world there is nothing but gcc, but in the real world there are dozens of C compilers, some free, some not and they all get sold, supported, and used.

    4. Re:Mono?? A threat to java?? by Capitis · · Score: 1

      Sun would like to establish a Java monopoly analogous to Microsoft's Windows monopoly

      They are certainly trying to leverage the Java brand, i.e. the Java Desktop Environment (which has very little to do with Java in-and-of-itself), but I'm not so sure about their "monopolistic" endeavors....

      But, that's not the point. My point is that .Net and Java are fairly mature (Java more so than .Net) but are still open to significant changes and improvement. This gives them a tremendous head start over Mono.

      They both have large resource bases working on them.

      They are both freely available, as are many good tools for working with them. (Java is way ahead of .Net AND Mono on that front).

      There are low cost/barrier entry points for enterprises implementing the technology.

      They have a great deal of cross-industry support.

      I guess that in a nutshell: I just don't see any compelling reasons for the industry to put enough weight behind Mono to make it a real player.

  22. Java's fine by Anonymous Coward · · Score: 0

    Though open sourcing Java may be beneficial, Java is doing just fine without it, just look at the Classified section ... most job openings are in Java.

    1. Re:Java's fine by Trejkaz · · Score: 2, Funny

      Yeah, probably three out of the total five programming jobs are Java. *sizzle*

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
  23. Mono? by Anonymous Coward · · Score: 0

    That's because Mono is not a threat. Never has been, never will be.

  24. Laughable? by eidechse · · Score: 5, Insightful

    "Perl and Python are hardly competitors to Java, so warning Sun about Java's impending loss of market share to these two scripting languages is laughable."

    How so?

    The term "scripting language" doesn't have the name meaning it used to; especially where Perl and Python are concerned. They both get compiled to an intermediate form and executed...just like Java. The only difference (other than the internals of the runtime) is that the Java's development "model" is closely related to it's static typing; i.e., you manually compile your code into a binary before executing. Trying to discount Perl and Python by calling them scripting languages is silly. The real issue is what works as an enterprise development platform, not the "taxonomy" of the language. As far as platforms go, Python has got a pretty good thing in Zope/Plone etc. And both Perl and Python have libraries for damn near everything you'd want to do. J2EE may be more prevalent at the moment, but in terms of bang for buck Python and Perl present some interesting alternatives in the long term.

    1. Re:Laughable? by nineoneone · · Score: 0, Flamebait

      Yes. I'm looking at python right now and it seems to offer at least as much as java with the speed bonus thrown in. Certainly it must be as portable as java and its a hell of lot easier to learn.

      --
      sig under development
    2. Re:Laughable? by Anonymous Coward · · Score: 0

      Yup. Java slow, Python fast. :p

    3. Re:Laughable? by kfg · · Score: 2, Insightful

      You are thinking as a programmer, in which case Python, Ruby, Smalltalk and CLOS are all viable competitors to Java.

      The author of the article is thinking in terms of what your boss is going to insist you code in because all the other bosses are insisting that their people code in it and thus it has built up an nearly unassailable position in the business code base and mindshare. MS, of course, is assailing it.

      I'm afraid that's how so. Technical merits and suitability aren't even an issue to be discussed at this point.

      In your own business and projects your milage may vary considerably. Lord knows mine does.

      KFG

    4. Re:Laughable? by eidechse · · Score: 1

      Your point is well taken. I was coming at this from the technical side of things. But I got the impression that the author was as well. At least as far as the "laughable" comment goes.

      As for mindshare, I'd agree that right now it's Sun's to lose (agaist MS). Although I am hopeful/optimistic that the Zope people are making (and will continue to make) progress in this area.

    5. Re:Laughable? by Trejkaz · · Score: 1

      Speed bonus?

      From what you just said, I can instantly assume you are using a lot of trigonometry. :-)

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    6. Re:Laughable? by kfg · · Score: 1

      Yeah, I read it that way too on the first go through, then went back and read it again. He's just talking about IT industry entrenchment, just as there's still a mountain of COBOL code out there that isn't going to be replaced by anything soon.

      KFG

    7. Re:Laughable? by dcam · · Score: 1

      Java is legible. Perl cannot compete with that.

      --
      meh
    8. Re:Laughable? by smallpaul · · Score: 3, Insightful

      1984: Anyone actually working in the IT industry today knows that PC clones are hardly a competitor to genuine IBM machines.

      1993: Anyone actually working in the IT industry today knows that IP is hardly a competitor to NetBIOS and IPX.

      1994: Anyone actually working in the IT industry today knows that Internet Email and the Web are hardly a competitor to Lotus Notes. (or you could use Compuserve)

      1998: Anyone actually working in the IT industry today knows that XML is hardly a competitor to CORBA.

      Now here we are in 2004: anyone actually working in the IT industry today knows that Perl and Python are hardly competitors to Java.

      I've learned over the years that it isn't worth arguing with these people. Just let the change wash over them. They'll never admit in 5 years that they were so short-sighted.

    9. Re:Laughable? by smallpaul · · Score: 1

      The author of the article is thinking in terms of what your boss is going to insist you code in because all the other bosses are insisting that their people code in it and thus it has built up an nearly unassailable position in the business code base and mindshare. MS, of course, is assailing it.

      Bosses are fickle. Remember when bosses thought Unix was dead and then Linux came along? When bosses thought the Internet was too disorganized to be useful and then the Web came along? Perl and Python appeal to the same people who turned those prior technologies from quirky academic experiments into industry standards -- in large part through open source.

      I'm afraid that's how so. Technical merits and suitability aren't even an issue to be discussed at this point.

      I'm sorry, that's too defeatist. We're on Slashdot a site popular with people that believed in Linux when bosses couldn't give a damn. I'm not going to dismiss the long-term business applicability of a technology because something else is faddish with the PHBs. If we tell them about a technology that is better they will laugh today, listen tomorrow and slavishly repeat it as common wisdom next year.

      The article was short-sighted in its viewpoint.

    10. Re:Laughable? by GooberToo · · Score: 1

      Or run long enough so that Java's GC was actually measured rather than pushed out so far to avoid being included in the benchmark. :-) ;-)

    11. Re:Laughable? by Decaff · · Score: 3, Informative

      What a lot of false comparisons!

      "1994: Anyone actually working in the IT industry today knows that Internet Email and the Web are hardly a competitor to Lotus Notes. (or you could use Compuserve)"

      They aren't competitors. Notes is a collaboration/groupware suite.

      "1998: Anyone actually working in the IT industry today knows that XML is hardly a competitor to CORBA."

      They aren't competitors. XML is just one of many protocols that can be used to implement CORBA. Corba is an Architecture, XML is a data transmission format.

      "Now here we are in 2004: anyone actually working in the IT industry today knows that Perl and Python are hardly competitors to Java."

      They aren't competitors. You don't use Java to bind apps together or to write small scripts. You don't (if you are sane) use a scripting language to write enterprise-level apps like finance or CRM software, or secure distributed systems, or high-performance numerical software. Java and scripting languages complement each other - you can embed Python in Java using Jython, or you can use Java itself as a scripting language via the Bean Shell.

    12. Re:Laughable? by Trejkaz · · Score: 1

      Of course the GC is only a major issue when you write code with a stupid number of allocations in a short period of time.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    13. Re:Laughable? by smallpaul · · Score: 2, Interesting

      They aren't competitors. Notes is a collaboration/groupware suite.

      And we aren't collaborating in a group right now? People don't use Intranets and Internet email for what they would have bought Notes for in the mid-90s? I knwo for a fact that that's what happens at non-Microsoft shops. w.g. Oracle doesn't use Notes internally. It uses Internet email, web-based solutions and some collaborative addons of their own.

      They aren't competitors. XML is just one of many protocols that can be used to implement CORBA. Corba is an Architecture, XML is a data transmission format.

      I was talking about XML in the large: XML+SOAP+WSDL, etc. Obviously these are both pitched as enterprise integration technologies and XML-based ones have a lot more traction in business today (think .NET and Axis) than CORBA does.

      You don't (if you are sane) use a scripting language to write enterprise-level apps like finance or CRM software, or secure distributed systems, or high-performance numerical software.

      GNU Enterprise is finance software written in Python. Secure distribute systems in Python? How about mojo nation or ZEO, or the MEMS Exchange or BitTorrent. High performance numerical software? You'd better tell someone down at Lawrence Livermore National Labs that they are insane because they show up at every Python conference and by now have spent millions on Python code. I don't see Java or C# mentioned on their list of key languages. Java in particular is a horrible language for that sort of thing. Do a Google for "Java Floating Point".

      Look: you can understimate Python just as the Unix vendors understimated Linux. In the long run it doesn't really hurt anyone, even you. It is always more comfortable to presume that things will stay in the mental boxes we've built for them in our minds.

    14. Re:Laughable? by Glock27 · · Score: 2, Interesting
      You'd better tell someone down at Lawrence Livermore National Labs that they are insane because they show up at every Python conference and by now have spent millions on Python code. I don't see Java or C# mentioned on their list of key languages. Java in particular is a horrible language for that sort of thing. Do a Google for "Java Floating Point".

      Er, I'd dispute that Java is a horrible HPC language. The last benchmarks I saw that compared Java to the fastest Python implementation the author could find (though he didn't try Jython which might have been faster;) left Python behind by a factor of 10. I don't have the link handy, sorry.

      Python is a nice language, and I'd love to see a very high performance implementation - suitable for 3D game development, for instance. Do you have any pointers?

      TIA!

      --
      Galileo: "The Earth revolves around the Sun!"
      Score: -1 100% Flamebait
    15. Re:Laughable? by warrax_666 · · Score: 1

      Would knowing anything about their actual project, I'd wager that they're using something like NumPy for the actual calculations, and just using Python as "glue" between high-level operations.

      --
      HAND.
    16. Re:Laughable? by Decaff · · Score: 1

      "And we aren't collaborating in a group right now? People don't use Intranets and Internet email for what they would have bought Notes for in the mid-90s?"

      No - yet again you are confusing protocols with applications. E-mail is an appallingly bad collaboration system - security is an add-on, there is no document management system, there is no standard for generation of receipts, there is no version control.

      "I was talking about XML in the large: XML+SOAP+WSDL, etc. Obviously these are both pitched as enterprise integration technologies and XML-based ones have a lot more traction in business today (think .NET and Axis) than CORBA does."
      You said 'XML', not 'SOAP'. Soap is the mechanism, XML is the protocol. Soap is very new, but not proven for scalable high-performance work. (I use Axis, and its great, but its not a fast system).

      I stand corrected regarding the applications. GNUe looks interesting!

      Regarding the numerical work - in your example Python is NOT used for the numerics: It simply makes calls to pre-compiled C libraries. I think that is called cheating! Java can deliver high-performance math with nothing but pure Java code, and can even exceed the equivalent C code.

    17. Re:Laughable? by GooberToo · · Score: 1

      LOL. Never heard anyone put it like that before.

      I, of course, disagree.

      Cheers!

    18. Re:Laughable? by HiThere · · Score: 1

      I think that possibly a combination of PyGame (==SDL) and Pyrex is more what he's thinking of. It's true that Python + NumPy can do a lot, but hardly everything needed for a good fast 3-D game. But then neither can Java.

      OTOH, for fast numerics, Fortran is still the language of choice. But you give up a lot to get that. In particular I believe that access to current graphics libraries is quite difficult...without a glue layer of intermediate code in, e.g., C.

      Also, Jython is considerably slower than native Python owing to the overhead of turning Python code into Java forms. The only real advantage of Jython is that it lets you easily call Java routines from an almost Python environment. Sometimes this is enough of an advantage to make it worthwhile, but not if speed is what you are after.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    19. Re:Laughable? by Glock27 · · Score: 1
      I think that possibly a combination of PyGame (==SDL) and Pyrex is more what he's thinking of. It's true that Python + NumPy can do a lot, but hardly everything needed for a good fast 3-D game.

      Well, if it's Turing-complete, all I need is a highly efficient optimizing compiler. ;-) In fact, that's all I'm after.

      But then neither can Java.

      Why do you say this? Did you ever hear of or see the Grand Canyon demo? Also check out this setup for realtime Java computing with J2SE. Looks pretty good to me. There are also now official OpenGL bindings for Java.

      Also, Jython is considerably slower than native Python owing to the overhead of turning Python code into Java forms. The only real advantage of Jython is that it lets you easily call Java routines from an almost Python environment. Sometimes this is enough of an advantage to make it worthwhile, but not if speed is what you are after.

      I don't think this is right - the Jython page claims there's a compiler to compile Python to Java bytecode - that should be as fast as native Java, assuming the compiler does a decent job.

      --
      Galileo: "The Earth revolves around the Sun!"
      Score: -1 100% Flamebait
    20. Re:Laughable? by HiThere · · Score: 1

      The Java codes aren't a good match for the Python language, so there's considerable overhead, as I understand it.

      Also: If you want to call appropriate machine language subroutines, as the OpenGL bindings do, then nearly any language can handle what you want. But you will be doing most of your computing outside the specified language, so it's not really fair to say that the language is handling, e.g., the 3D graphics.

      Now I must admit that I don't currently use Java. And I haven't bothered to study the coding used in the "Grand Canyon demo", but the text around the link indicated that the codeing wasn't done in Java, but rather that Java was able to pass the necessary info along to the routine that did it in a newly more efficient manner. Quite a different claim. Still, I really doubt that an interpreter can ever produce code as good as a good compiler can, and the JVM is really just a fancy interpreter, even with all the compiled code cache-ing. (It's the same concept as UCSD Pascal, and I always called that an interpreter, even if it isn't the same kind of interpreter as was used by Basics of the same period.)
      I suppose that a claim could be made that rather than a fancy interpreter the JVM was a fancy state machine, but I don't think that improves matters. It's still slow compared to good compiled code. Whether this matters is something else. If you are doing all of your number crunching in some other language, it may not matter.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    21. Re:Laughable? by Trejkaz · · Score: 1

      It is, of course, true. On the JavaCard platform you generally write code which never allocates any memory. So will the GC kick in?

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    22. Re:Laughable? by smallpaul · · Score: 1

      No - yet again you are confusing protocols with applications. E-mail is an appallingly bad collaboration system - security is an add-on, there is no document management system, there is no standard for generation of receipts, there is no version control.

      Email is not a protocol. SMTP is a protocol. Email is an application of SMTP. You can believe it is as bad as you like. People are using it instead of proprietary collaboration systems. Deal with it. Notes is a legacy application at most companies because it was replaced either with Exchange or with Intranet (portal)+Internet Email.

      Regarding the numerical work - in your example Python is NOT used for the numerics: It simply makes calls to pre-compiled C libraries.

      This is silly. The scientist needs to calculate what happens when the bomb explodes. He can reach for Java with its famously terrible floating point or he can reach for Numeric Python. At Lawrence Livermore and NASA they reach for Python. Do they care how much is done in a library and how much is pure Python? Of course not. They are using Python to do heavy-duty numerics in contradiction to your claim that only maniacs would do so.

      I think that is called cheating! Java can deliver high-performance math with nothing but pure Java code, and can even exceed the equivalent C code.

      If the runtime is slower than Numeric Python and the results are less accurate why would the scientist feel better that the library happened to be written in pure Java? Only Sun gets a warm fuzzy from 100% java. It is precisely because Python can so easily delegate work to the Best Language For the Job (which may be C, or Pyrex or Fortran) that it will trounce 100% Java in the long run.

    23. Re:Laughable? by smallpaul · · Score: 1

      The last benchmarks I saw that compared Java to the fastest Python implementation the author could find (though he didn't try Jython which might have been faster;) left Python behind by a factor of 10. I don't have the link handy, sorry

      The guy wasn't doing it the way any real Python programmer would do it: using the library for high-performance numeric computation. If he did (or if he had used Pyrex), Python would have stomped Java. But more to the point, what is the benefit of using Java and getting to the wrong answer faster.

      Python is a nice language, and I'd love to see a very high performance implementation - suitable for 3D game development, for instance. Do you have any pointers?

      Python would be fine for parts of 3D game development (and has been used that way several times already) but I wouldn't use it (or Java or C#) to write a 3D game engine. Let's keep in mind our points of comparison. Python programmers do not claim to compete for performance against C!

    24. Re:Laughable? by Glock27 · · Score: 1
      The Java codes aren't a good match for the Python language, so there's considerable overhead, as I understand it.

      I've been meaning to play with it, so I guess some benchmarking is in order.

      Also: If you want to call appropriate machine language subroutines, as the OpenGL bindings do, then nearly any language can handle what you want. But you will be doing most of your computing outside the specified language, so it's not really fair to say that the language is handling, e.g., the 3D graphics.

      There are two issues. The first is handling computations outside the graphics libraries (AI, physics, object morphing, collisions, LOD and so on). This involves a lot of calculation, which should be as efficient as possible so you can have more complex worlds at higher frame rates. The second issue is passing various data (lots of it!) in and out of the 3D libraries - that is what NIO improved and what made the Canyon demo possible.

      Straight computation in Java is very close to C/C++ levels these days (sometimes it even does better!). Check around for benchmarks if you don't believe me.

      Now I must admit that I don't currently use Java. And I haven't bothered to study the coding used in the "Grand Canyon demo", but the text around the link indicated that the codeing wasn't done in Java, but rather that Java was able to pass the necessary info along to the routine that did it in a newly more efficient manner. Quite a different claim.

      Yes, the main improvement highlighted by the GCD was passing large data buffers more efficiently to C routines - necessary and good stuff.

      However, the other computation that Java was handling was non-trivial - the flight model and world LOD were both done in pure Java. The target system (700 MHz. PIII) was quite modest by today's standards, and the JDK wasn't as good as the current version.

      Still, I really doubt that an interpreter can ever produce code as good as a good compiler can, and the JVM is really just a fancy interpreter, even with all the compiled code cache-ing. (It's the same concept as UCSD Pascal, and I always called that an interpreter, even if it isn't the same kind of interpreter as was used by Basics of the same period.) I suppose that a claim could be made that rather than a fancy interpreter the JVM was a fancy state machine, but I don't think that improves matters. It's still slow compared to good compiled code. Whether this matters is something else. If you are doing all of your number crunching in some other language, it may not matter.

      Nope, you're way off base here. Java is doing very well with straight computation these days. Look for some of the many benchmarks published over the last couple of years, or roll your own. Also, gcj is getting increasingly interesting as a HPC Java implementation - it has good fast math support and you can turn off array bounds checking and GC for your time critical sections. As a traditional compiler, it at least addresses your skepticism regarding "interpreters". ;-)

      Hope you found it interesting!

      --
      Galileo: "The Earth revolves around the Sun!"
      Score: -1 100% Flamebait
  25. Re. Java, who needs it? by Lattitude · · Score: 1

    It never had the performance of native software

    Back when everyone was writing assembly the first C compilers came along and everyone said "it's too slow!". And they were right. But, the compilers improved over time and now no one complains that native code written in C is too slow.

    The same thing is happening with the JVMs. At first, they were dreadfully slow, but they have improved, and will continue to.

    1. Re:Re. Java, who needs it? by Anonymous Coward · · Score: 0

      Then why does it take a full second for a Java app to start up and print out it's version on a 1.8 GHz Athlon? For the sake of argument, I'll say I tested it on Intel hardware, as well.

    2. Re:Re. Java, who needs it? by Anonymous Coward · · Score: 0

      Because java has to unzip and compile all the class
      libraries that are used to do the printf - System, Runtime,
      and things they depend on.

      This constant startup overhead is eliminated on systems (OS/X)
      that have shared java libraries. JDK1.5 also has this I believe.

  26. Whatever by N8F8 · · Score: 1

    I fail to see a decent reason that Sun should do it. Lower the cost of J2EE, sure, but give it away? Is Sun were nothing buy a service businesss I could possinbly agree. Buy Sun wants to sell Java app servers on Sun hardware. Or at least so they get a cut of the package sale.

    --
    "God fights on the side with the best artillery." - Napoleon, Marshal of France - speaking truth to power
  27. What will happen by pope+nihil · · Score: 4, Insightful

    As soon as Sun GPL'd Java, it would start to diverge from Sun's commercial Java. Sun would not be able to incorporate changes made under the GPL into their corporate version. Sure, they could maintain their own "official" GPL version, but the dual license argument is complete rubbish. Java wouldn't die, but Sun would lose most or all control over it.

    1. Re:What will happen by k98sven · · Score: 3, Insightful

      As soon as Sun GPL'd Java, it would start to diverge from Sun's commercial Java.

      Why?
      I don't see that happening with C, C++, Perl, Python or any of the zillion other programming languages which have open-source implementations.

      There's a spec out there, and Sun owns the trademark on "Java". Only compliant implementations can use it. If it doesn't comply, it's not java, it's a java-like language. And few will use it.

      However, it is true that Sun may lose some degree of control, but only by the same way they're already losing control, by not developing it in the direction people need.

      Few people want to fork stuff just for the heck of it.. but if Sun doesn't want to go in the same direction as their developers, they're going to lose control either way.

    2. Re:What will happen by aled · · Score: 1

      "I don't see that happening with C, C++, Perl, Python or any of the zillion other programming languages which have open-source implementations."

      Try .Net Managed C++ or C++Builder. Don't know is there a .Net perl and python yet.

      --

      "I think this line is mostly filler"
    3. Re:What will happen by Hektor_Troy · · Score: 3, Insightful
      I don't see that happening with C, C++
      Really? Funny, because while I'm only still taking classes in C and C++, I keep running into all kinds of idiotic things.

      "Oh, to finish this program, you need the Borland C++ compiler, because it uses some Borland-only calls"

      "Oh, to finish this program, you need the Microsoft C++ compiler, because it uses some Microsoft-only calls"

      "Oh, to finish this program, you need to port it to your favorite C compiler, because it uses standard calls that no compiler implement all off."

      What the fuck? And this is just in classes??? I'm scared to find out what it's like in the "real world".
      --
      We do not live in the 21st century. We live in the 20 second century.
    4. Re:What will happen by zurab · · Score: 2, Interesting
      Few people want to fork stuff just for the heck of it.. but if Sun doesn't want to go in the same direction as their developers, they're going to lose control either way.

      I don't think he meant that it would necessarily get forked. As I understand, SUN would not be able to use any of the GPLed additions/improvements to Java in its commercial offering. In that case, even if SUN was completely in line with their developers, they would either have to give up completely on GPL-only improvements, or duplicate the effort and come up with their own clean-room version of the same. So, dual licensing doesn't give SUN as much advantage as the article would have you believe.
    5. Re:What will happen by deanj · · Score: 1

      Oh it'd happen.... in fact, it already has, and Java was licensed! That's one of the reason why Sun brought the suit against Microsoft.

    6. Re:What will happen by bear_phillips · · Score: 1
      "Oh, to finish this program, you need the Borland C++ compiler, because it uses some Borland-only calls"

      Better hope Borland never goes out of business or you would never be able to finish that program. Sorry boss, or vendor just went under, all our code is worth crap now.

      --
      http://www.windmeadow.com/
    7. Re:What will happen by prockcore · · Score: 5, Insightful

      This the first time I've ever seen someone blame a language specification for allowing the use of libraries.

      FYI, I can write a Java app that requires MS DLLs as well. It's not the fault of the language.

    8. Re:What will happen by Per+Bothner · · Score: 1
      Sun would not be able to incorporate changes made under the GPL into their corporate version.

      Of course they can, as long as they keep the copyright. They can also do what the FSF does: Require a copyright assignment for any code that they accept into the official source (i.e. their) source tree. Of course somebody could make a fork, but a fork is likely to see only niche use if Sun does a decent job of maintaining Java.

    9. Re:What will happen by Anonymous Coward · · Score: 0

      Ask for your money back, you are not taught proper C++.

    10. Re:What will happen by sircrown · · Score: 1

      Right, because when borland.com goes down all copies of their compilers *everywhere* immediately cease to exist! How's that for DRM?

    11. Re:What will happen by Anonymous Coward · · Score: 0

      Unfortunately, new operating systems are released, and increased functionality, security fixes and interoperability with others tend to require you to upgrade. Sucks to be you when your unsupported compiler breaks on the new OS...

    12. Re:What will happen by khchung · · Score: 1
      FYI, I can write a Java app that requires MS DLLs as well.


      Yes, you can, and I damn well expect that your app will work with whatever other Java libraries out there (even some with their own DLLs) as long as all your DLLs are for the same OS.

      Have you ever tried using a C++ library written for Borland compiler in to VC++ project? Good luck trying.
      --
      Oliver.
  28. Grrrr by BeerMilkshake · · Score: 4, Insightful

    [J2EE] has replaced CORBA as the way to go for
    large, distributed enterprise apps

    Has J2EE replaced CORBA in those scenarios where either the client or server is NOT written in Java?

    One of the facts of life in the enterprise is that it is heterogeneous in terms of platforms, operating systems and (maybe) network technologies. Neither J2EE nor .NET is satisfactory in this environment.

    1. Re:Grrrr by kelzer · · Score: 1

      One of the facts of life in the enterprise is that it is heterogeneous in terms of platforms, operating systems and (maybe) network technologies.

      I agree 100%.

      Neither J2EE nor .NET is satisfactory in this environment.

      Care to elaborate on how J2EE doesn't fit into a hetogeneous environment? Java's had CORBA support for about 5 years now. And J2EE has its J2EE Connector APIs to define a standard way to interface with those heterogeneous systems.
      --

      ---------------------------------------------
      SERENITY NOW!!!!!!!!!!!!!!!!
    2. Re:Grrrr by BeerMilkshake · · Score: 1

      > Care to elaborate on how J2EE doesn't fit
      > into a hetogeneous environment?

      Admittedly, I don't know anything about J2EE Connector, but...

      You might want to interface to a scientific application running on a VAX (I worked on one as recently as 1993) implemented in FORTRAN or ADA. Other financial systems are running in COBOL. Telecomms systems are running in C or maybe C++.

      With CORBA, you can find an ORB for the language/platform (there are open-source ones available for many languages) and implement a layer of servants that call into the existing system. Then, over the network you can call those services from your client.

      Don't think J2EE could do this without lots of JNI and language bindings.

    3. Re:Grrrr by Anonymous Coward · · Score: 0

      We interface our payroll java production code with COBOL. Not much of a problem.

      It doesn't sound like you have much of a clue about J2EE, though you are probably right that there are (a few) situtations where CORBA is required and Java dare not tread.

    4. Re:Grrrr by Trejkaz · · Score: 1

      Yeah, I think they're on crack. J2EE uses RMI, and RMI-IOOP is actually CORBA. So technically J2EE uses CORBA, it doesn't replace it.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    5. Re:Grrrr by BeerMilkshake · · Score: 1

      > It doesn't sound like you have much
      > of a clue about J2EE

      Not very tactfully put AC, but yes you are right - my J2EE experience is limited.

      > We interface our payroll java production
      > code with COBOL. Not much of a problem.

      How? Using JNI->C->COBOL or another mechanism?

    6. Re:Grrrr by sporty · · Score: 1

      SOAP? XML-RPC?

      --

      -
      ping -f 255.255.255.255 # if only

  29. Thou hast failed it by ValourX · · Score: 1

    Vested does not mean hidden in any sense. Often it means clothed, but in the context of the referenced post it means "Not in a state of contingency or suspension; fixed." Or at least that's what the dictionary says...

    -Jem

  30. Like Netscape? by demonic-halo · · Score: 1

    That's pretty much what happened to Netscape.. They decided to open source it as a last ditch effort.

    1. Re:Like Netscape? by Anonymous Coward · · Score: 0

      That's pretty much what happened to Netscape.. They decided to open source it as a last ditch effort.

      And then:

      Netscape -> Mozilla -> Firefox

      Think about that one.

  31. Re:Give this man his +5, Insightful by kfg · · Score: 0, Offtopic

    Can I get a bonus point for bringing up CLOS?

    KFG

  32. RTFA by Pieroxy · · Score: 3, Insightful

    The article does mention that the only visible part of the J2EE iceberg (visible to the decision-makers, not the geeks) is webservers such as Websphere and Weblogic. It doesn't say anything else. It does mention open-source implementations.

    What the author is talking about is a lack of the right communication from Sun on this matter. If Sun continue to advertise only WebSphere and WebLogic, they set the visible price very high.

    1. Re:RTFA by aled · · Score: 2, Interesting

      "If Sun continue to advertise only WebSphere and WebLogic"

      I would say they should fire the marketing department if they are promoting for the competence, IBM and BEA.

      --

      "I think this line is mostly filler"
    2. Re:RTFA by Anonymous Coward · · Score: 0

      read: competitors?

  33. People should reread the article by Anonymous Coward · · Score: 1, Interesting

    The author is not saying that sun shouldn't close the source but that if they do keep it open, it won't hurt the closed nature of the project and may not in fact not even have any affect on their desire to not close it.

  34. Open Java vs Communism by pilybaby · · Score: 0, Troll

    Sun and Open source Java are a lot like communism. They're a nice idea in principle but just don't / wont work. I don't think Sun is in the business of giving away it's biggest assets now matter how good this would be for everyone else.

    1. Re:Open Java vs Communism by Anonymous Coward · · Score: 0

      You need to move your 'and' and add comma to that first sentence:

      Sun, Open source and Java are a lot like communism.

    2. Re:Open Java vs Communism by Anonymous Coward · · Score: 0

      Well unlike communism, we've actually seen open source at work. And open source did well, so give communism a chance... the only problem with it is nobody will try it.

  35. Re:Java, who needs it?-Misleading comparison by Anonymous Coward · · Score: 0

    Lots of server side programs become bottlenecks. Clients is where the _free_ mips are. Server mips are _expensive_. The Hotspot compile is cool-but it isn't a solution to a bad architecture. Peer to peer take more work-but it will generate a faster overall solution when properly implemented.

  36. The complexity problem by sfjoe · · Score: 5, Interesting

    The most compelling argument he makes is the complaint about the complexity EJBs:

    An Enterprise JavaBean (EJB), which is a component containing business logic, typically requires 5 to 7 supporting files to deploy.

    This is the real issue that Sun needs to address. Java is widely used in enterprise apps because it is easier and faster (therefore cheaper) to develop apps. However, EJBs have some fundamental flaws that add unnecessary complexity and network overhead. I have developed apps for some of the busiest sites in the world and the requirements to strip the code down to the essentials are not compatible with EJBs. More times than not, EJBs are ditched in favor of a servlet-based front-end and a proprietary persistence solution.

    --
    It's simple: I demand prosecution for torture.
    1. Re:The complexity problem by espressojim · · Score: 1

      Yeah. EJBs take 5-7 files to build. And all but one are built by and 1/2 decent IDE. All you have to do is write the implementation class, and the other classes + XML are automagically generated. And if you don't like that, look into XDoclet.

      EJBs aren't hard at all to use. But use 'em when appropriate - when you need connection pooling, transactions, declarative security. Use them as a facade for plain ol' java classes that do the other heavy lifting. Get the benefits without putting much work in.

      That's what EJBs are for - to utilize services provided by the container, not a catchall place to put *all* your work. A little design goes a long way.

    2. Re:The complexity problem by Anonymous Coward · · Score: 0

      this is being addressed in EJB 3.0, says a little bird.

    3. Re:The complexity problem by angel'o'sphere · · Score: 1

      More times than not, EJBs are ditched in favor of a servlet-based front-end and a proprietary persistence solution.

      When you have understood that, you should also have understood that the first approach to use EJBs was wrong.
      Thats not the fault of EJBs or their specification/implementation but the fault of the architects/designers/coders to go for EJBs.
      EJBs are the first "platform/technology" giving the freedome to code "components". EJBs where the first "standard" way to decouple, coding, assembling and deployment. They made it possible that solution providers offered precoded components, bought by a project on site, assembled together by "architects" and deployed by system workers suiting to the local environment: aka DB and OS infrastructure.

      Its a general failure to start a new project based on EJBs. EJBs are for BUYing or for SELLing, not for making an EJB based project and coding all EJBs your own, because in the later case you combine all drawbacks of EJBs and home grown coding.

      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    4. Re:The complexity problem by Decaff · · Score: 4, Insightful

      There is now a very effective non-proprietary persistence solution - Java Data Objects (JDO). This typically requires no more than a couple of supporting files in each application no matter how many classes you wish to store. Its far more powerful than EJB, with a portable query language and inheritance. There are many high-quality implementations of the javax.jdo.*
      classes.

    5. Re:The complexity problem by Anonymous Coward · · Score: 0

      > EJBs are for BUYing or for SELLing, not for making an EJB based project and coding all EJBs your own, because in the later case you combine all drawbacks of EJBs and home grown coding.

      Wrong. In reality EJB's are only for small projects, you cannot sell or buy them.

      If you look around, you will see that there are more application servers than enterprise beans that are sold.Some companies who have sold EJB beans in the past either went out of business or stopped selling them.

      I personally know from a friend (who got fired) that his former company stopped selling EJB's.

    6. Re:The complexity problem by kubera · · Score: 1

      I agree... that in somany places.. EJB is not used. In my comapny (investment bank) Servlets and JSPs and java soap servers are used... for web apps..

    7. Re:The complexity problem by angel'o'sphere · · Score: 1

      You ar right in the sense that this is the current situation.
      But you are wrong if yoou claim this is natural. The EJB standard was crafted to allow exactly that: selling of components.

      However the pride of project managers and coders often does not allow to buy solutions. They want to craft them their own :D

      You are wrong as well in your claim that EJBs are good for small projects.

      Come on, whats small? One man year? Why the heck should one even consider to use EJBs if the project *is* smal?

      You consider EJBs in case you predict either a hughe project, a growing project or a long livespan and a changing infrastructure. Certainly not for a smal 10 to 15 person month project, except the EJB technology gives you a certain benefit in doing so.

      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  37. Apples to Oranges by r.jimenezz · · Score: 2, Insightful

    I fail to see how many of the article's points relate to Java being open source or not. While we could agree that Sun hasn't been marketing Java the best it could, what's wrong with Ant/XDoclet/JUnit not being developed/sponsored by Sun? Do we really want a single provider like we have with MS? Do we need opensourcing Java if we get many of the benefits as it is, and no bickering/forks/whatnot?

    As for Mono... I will not state my opinion about Mono per se, it's not the point, but let me just say that Mono is trying to catch up on a Microsoft implementation. I fail to see how that compares with opensourcing Java, or even how it is a threat.

    Just my two cents...

    --
    The revolution will not be televised.
    1. Re:Apples to Oranges by xpl_the_myst · · Score: 1

      If they are not developed by a single big entity, they are no longer 'solid' enough for business managers to bet their money on.

      Must be nice telling your manager - "Hey there's this tool that a Dutch programmer out there has put up and I think it will be ideal for our company in the next few decades"

      --
      This sig is empty.
    2. Re:Apples to Oranges by prockcore · · Score: 1

      Mono is trying to catch up on a Microsoft implementation. I fail to see how that compares with opensourcing Java, or even how it is a threat.

      Mono has already surpassed MS's implementation in several ways. One, it works on many different platforms (like OSX).

      Mono already has a kick ass GUI api via GTK#. Java has been around for 10 years and still is only usable for server-side apps.

      Write-once-run-anywhere is useless in Java due to the way professionals use it. (WORA works best on the client side.. but client side java apps are few and far between, specifically because it lacks a decent GUI API).

  38. Haven't we heard this once before? by Lamia · · Score: 3, Insightful

    Hmmm - didn't ESR inspire Netscape to following a similar path to "salvation" back in '98? (Netscape)
    Hopefully (for Sun!) history won't fall into its old habit of repeating itself.

    1. Re:Haven't we heard this once before? by Anonymous Coward · · Score: 0

      That was Salvation 2.0. Salvation 1.0 was Sun inspiring them to rewrite their broswer in Java. Finally, Salvation 3.0 was selling the company to clueless AOL (I guess they learned something from ESR and Sun after all).

  39. Maybe... by Anonymous Coward · · Score: 1, Funny

    Maybe it's because Python breaks compatibility at every major release, is freakishly huge with more add-ons than Mr. Potato Head, has syntax that would drive Intercal users insane, and has documentation that's harder to find than Waldo?

    As for PERL, it's got more dollar signs, at signs, and hashes than TV-edited captions on Scarface and it's so cryptic that several small governments have considered "encrypting" messages into obfuscated PERL for protection. Besides, even the PERL authors admit that other tools are often needed when creating applications, that's why "there's more than one way to do it."

    1. Re:Maybe... by Anonymous Coward · · Score: 0

      He said Perl, not PERL.

    2. Re:Maybe... by GooberToo · · Score: 1

      Two ways to read this reply. You can read it as "funny", which it has been modded as such, or you can read it as, "troll".

      Either way, I understand why it was posted anonymously.

  40. What about IBM Clones? That was successful... by i)ave · · Score: 3, Insightful

    IBM is the first example that comes to mind of a company that successfully built a business model around opensource. I'm specifically referring to hardware and how IBM freely licensed the IBM architecture so that any company could manufacture and sell their own, competing, IBM Clone PCs. Perhaps you will remember the early '80's when Apple had all the market share, followed closely by Commodore and the IBM PC was a fledgling no company was worried about. What happened? They 'opensourced' their hardware architecture which Apple and Commodore refused to do. Within a matter of years Apple and Commodore were suddenly competing not just against IBM, but against scores of rival computer manufacturers. What was the end result? IBM-compatible PCs (clones) were far less expensive, parts were plentiful and easy to find, and all the software developers migrated towards DOS because that's where the market was... once that happened, most of the available software was also IBM PC-compatible which just further encouraged people to buy IBM Clones. Had Apple and Commodore been less stingy with their proprietary hardware technology, things could have played out very differently and today everyone might have an Apple and Microsoft might not even be around. But you might ask, "how is the free licensing that IBM implemented, open source?" It was open source because manufacturers were and still are free to propose and develop hardware standards designed to further improve the IBM Clone architecture and they don't need IBM's permission to do it, they need only to get approval from the various standards bodies. If this is not a clear example of how open-source has worked as a successful business model, then I don't know what is. Rather than fight over the market-share that Apple and Commodore owned, IBM just created an entirely new market -- far larger than the one it replaced. So what if IBM had to compete against their own technology they gave away to other Clone manufacturers? Which would you prefer: 10% of 50 million units, or 100% of 1 million units?

    --
    -- I'd give my right arm to be ambidextrous
    1. Re:What about IBM Clones? That was successful... by SpyPlane · · Score: 2, Funny

      Uh... IBM won?? Am I the only one still using a Commodore Amiga??

      Ah well, back to playing Marble Madness...

      --
      "We need a fourth law of Robotics: Stop Fingering My Wife"
    2. Re:What about IBM Clones? That was successful... by k98sven · · Score: 4, Insightful

      You have no idea what you're talking about.

      The IBM PC was a hit from the start. Apple never had "all the market share" outside of the home computer market.

      Nor did IBM ever license their PC architecture. The PC was built mostly on off-the-shelf hardware. Clone manufacturers just reverse-engineered the BIOS.

      Later, IBM tried to regain a proprietary hold over the PC market by putting a bunch of non-standard stuff in the PS/2, like the Microchannel architecture, which never took off because none of the clone manufacturers bought into it.

      There can be no doubt that IBM wanted the total market control.. indeed, they've been playing that game for over 30 years in the Mainframe market.

    3. Re:What about IBM Clones? That was successful... by Anonymous Coward · · Score: 0

      In fact, Apple never had "all the market share" inside the home computer market either.

    4. Re:What about IBM Clones? That was successful... by cptgrudge · · Score: 1
      things could have played out very differently and today everyone might have an Apple and Microsoft might not even be around.

      So I could have been working/living on Apple computers with OS X now instead of dealing with problems with Microsoft products? Everyone could have?

      I just wet myself!

      --
      Qualitas edurus commercium, nullus penitus net rimor, nullus deus beneficium
    5. Re:What about IBM Clones? That was successful... by Anonymous Coward · · Score: 0

      geez, paragraph much?

  41. Open Source it, but under a new license by Anonymous Coward · · Score: 2, Insightful

    They shouldn't use the GPL, they should use a new license which says its basically open source, so as long as you follow the standards for it set out by them. We don't want variants not fully functional and implementing things in different ways, so I need to have 15 Java VMs on my machine, and we don't want it to turn out like browsers where half of them don't support most of the standards making design a PIA.

    1. Re:Open Source it, but under a new license by Anonymous Coward · · Score: 1, Interesting

      We already need at least two JVMs on the machine. OpenOffice recommends Blackdown, and all serious development recommends Sun. This just sucks arse, it's almost like either the Blackdown or the OpenOffice team need to be bludgeoned over the head a few times until they make their stuff compatible.

  42. How does GPL dual licensing work again? by mr_majestyk · · Score: 2, Interesting

    Can someone please give me a refresher in how dual-licensing with the GPL works?

    I know that MySQL charges only when the user redistributes its code for a profit, while internal use is free.

    But the MySQL code is still under GPL, right? Doesn't the GPL require that the code be redistributed for free?

    1. Re:How does GPL dual licensing work again? by paulthomas · · Score: 4, Informative

      Because MySQL AB (the company) retains copyright on the software they can license it however they please. In this case, the company takes advantage of the fact that some people don't like the terms of the GPL (people wanting to build and distribute closed software that is based on MySQL) and lets a company buy a license that allows for use without the so-called "viral" properties of the GPL.

      You can use and distribute MySQL under the GPL as long as you comply with the letter (and spirit :) of the agreement. This does not preclude turning a profit on the distribution. The GPL doesn't require code to be monetarily free (aka 'as in beer'), only that you furnish, for free (or a nominal media cost), the source code of the application to whomever you distribute it.

    2. Re:How does GPL dual licensing work again? by chromatic · · Score: 1
      Doesn't the GPL require that the code be redistributed for free?

      The license does not apply to the copyright holder, who can do anything he wants.

    3. Re:How does GPL dual licensing work again? by Trejkaz · · Score: 1

      Yes, so if you redistribute the MySQL binaries as part of your product and you licensed it under the GPL, then you need to distribute the source or make it easily available.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    4. Re:How does GPL dual licensing work again? by mr_majestyk · · Score: 1

      OK, I think I get it. So MySQL releases a version of its code (call it Snapshot A) into the GPL, but keeps a different version (call it Snapshot B) closed-source, available for licensing and possibly applying its own proprietary enhancements, right?

      So, what impact do fixes and enhancements that are applied by the community to the GPL-ed Snapshot A have on the proprietary Snapshot B? Are MySQL and its licensees allowed to apply those changes to the (closed-source) Snapshot B, without revealing all of the other enhancements that they made to the proprietary version?

      In other words, is it correct to think of GPL dual licensing kind of like a "private" BSD license, i.e. proprietary extensions are permitted but only to the owner of the copyight and its licensees?

      I'm just trying to make sure I understand, thanks.

    5. Re:How does GPL dual licensing work again? by spitzak · · Score: 2, Informative

      A dual license is like the New York Times saying "you can read our paper and it only costs 50 cents a copy. You can also buy rights to copy article into other publications, and that costs $1000." It should be obvious why somebody would pay $1000 for the same text that somebody else would pay 50 cents for.

      For some reason, the idea of the GPL gets people so confused they can no longer see clearly. I'll try to explain: the GPL may be like the New York Times saying "it only costs 50 cents if you are only copying for educational reasons". I.E you can violate their copyright, but only under certain restrictions (such as for educational use only). It should be clear in the NYT case why somebody would still be interested in paying $1000 for the rights to republish an article in a for-profit book.

      In GPL the restriction is you must also grant anybody receiving the copy the same rights the GPL gave you. Now if you don't want to give people your code, it is pretty obvious that you will not be satisfied with the conditions that you can violate the copyright on the GPL code with.

      In this case you can completely ignore the fact that the GPL exists, because the rights it grants do not concern you because you don't plan to take advantage of them. Instead you can pretend it is normal copyright, and then it should be clear that you must talk to the original authors and see if you can purchase rights to violate their copyright.

    6. Re:How does GPL dual licensing work again? by Anonymous Coward · · Score: 1, Insightful

      No, you misunderstood again. See, copyright is immediately assigned (regardless of license) when a work is produced. You don't have to do anything. If you write an e-mail, it is immediately copyrighted to you. You can optionally register the work as yours, to prevent others from claiming it belongs to them, but under copyright law, you are implicitly protected.

      Now, by default, copyright law affords no right to any party to copy, distribute, use, eat, burn, whatever any work that does not belong to them (in the sense of copyright law). Therefore, licenses were born. These say "we agree to allow you to use the work we wrote, on condition x, y, and z." That's why licenses are legal even if you don't sign anything. Because if you don't accept the license, you have no rights.

      Now, getting to open source. The intrinsic problem with open source lies in the creation of a derivative work. I write some source code and post it on the net; as sole author, I "own" (in the sense of copyright) the work. However, if you come along and edit my code, you own the portions you wrote, whereas I own the portions I wrote (assuming that my licensing allows the creation of a derivative work.)

      So, for example, Linux is not copyrighted to Linus Torvalds -- parts of it are, but the vast majority of the code is copyrighted by the individual people that make contributions. So in this case, Linus cannot "relicense the code" under some other license, because he does not own it all.

      Now, being based on the GPL, MySQL cannot prevent anyone from making a derivative work and maintaining copyright on their changes; however, they can state that any would-be-submitter of a patch or change to the main MySQL tree must assign his copyright to MySQL, and not reserve those rights for himself. Nothing prevents Joe Bob Hacker from saying "fuck you", but he'd have to fork the project. So if he wants his bug fixed and put into the main tree, he needs to accept that his code will be copyrighted by MySQL, and not by himself.

      Still with me?

      So, because of this, MySQL "owns" (in the sense of copyright) the entire MySQL source tree, despite the fact that they are not responsible for much of the code. Because the source belongs to them, they can license it in any way they choose.

      So, they don't need to keep two forks. Does that make any sense?

    7. Re:How does GPL dual licensing work again? by MarkCollette · · Score: 1

      Right, and how long have opensource people been bitching that MySQL is not opensource enough? Why has so much attention shifted to PostgeSQL ?

      Admit it, nothing will make you guys happy until it's fully GPLed. And at that point the Java architecture will not be a single target, but a set of disparate versions, and Microsoft will have won. You just don't understand that supporting Java is a concious choice to lose certain benefits of internal competitiveness, as a price to maintain the common goal of portability. If you want to improve it, then work inside the JCP. That's the only way for now.

      It's nice to theorise what might happen if it remains closed, but I can guarrantee you what will happen if it gets too open.

  43. Java by rshimizu12 · · Score: 3, Insightful

    This guy must be a MS partner.........Most of the .NET development is taking place primarilly in Windows only shops. Also the great majority of .NET development is VB .NET. After seeing how Microsft corrupted the JVM and developed J++ it's hard to see how moving Java to pure open source will help. As for the desktop .NET is only strong because because it has the propietary features to lock people in.

    1. Re:Java by occamboy · · Score: 1, Insightful

      Sorry, but I disagree.

      We switched from Java to C#, and it was a great switch, we're much more productive now:

      - C# is a much better language than Java (pre 1.5).
      - Development tools for doing GUI stuff (web or Windows forms) are much, much better than anything available for Java.
      - Deployment on .NET is really a breeze.

      Yes we're locked into MS products, sort of. If they ever do anything really horrible, we can do a rewrite: rewrites are much easier than first tries. But I've been locked into MS before, and the possible problems generally never turned into real problems. Nobody from Redmond came to grab my code. When their products sucked, e.g., VB4 or Access (data corruption), I switched to something that didn't suck.

      However, developing in Java was absolutely a real problem. And we solved it.

      That being said, C#/.NET is only as good as it is because of the competition from the Java world. Java 1.5 seems to be a good language, finally. I really hope that Java also gets a good development environment, good (easy to use) servers, and good documentation. I'd love to switch back.

    2. Re:Java by moexu · · Score: 1

      Actually, I think most new .NET development is in C#. VB.NET might be favored for legacy VB6 apps, but I see a lot more newsgroup postings about C# than VB.

      --
      "Seek first to understand." - Socrates
    3. Re:Java by rshimizu12 · · Score: 1

      I rarely haar of anyone talk about C# development. Now it could be that it is the people in the Mono .NET community who are developing in C# primarilly.

  44. Where's the +5, Anecdotal Evidence? by Anonymous Coward · · Score: 1, Funny

    Really need that right about now...

  45. Open Source Java by ajs318 · · Score: 4, Insightful

    While Java stays Sun's closed-source product, Sun retains control over it. Releasing it open-source would mean relinquishing that control forever. Imagine, if you will, the overthrow of an essentially benevolent dictator followed by a less desirable character seizing power.

    The questions Sun needs to ask itself are (1) whether or not Java is ready for that -- or is it more likely that differing implementations would lead to fragmentation, and thus nullify the whole point of Java?; and (2) if Java is ready to go open-source {and I personally believe it is}, what would be the best licence to ensure against fragmentation whilst not putting off purists?

    All these things being said, Java is only a programming language -- a means to an end. Programming languages come and go. There is no reason why another contender should not arise to solve the same problems for which Java was invented, and eventually displace Java. Mono may be that, of course. It is just as likely that something totally new could arrive on the scene and change the whole picture.

    --
    Je fume. Tu fumes. Nous fûmes!
  46. I don't care anymore by ajagci · · Score: 2, Insightful

    Until a couple of years ago, it mattered to me that Java was closed source and that the Java specification itself was closed. (Yes, the Java specification is not open--you can't just implement it without violating Sun's intellectual property.)

    Now, I just don't care anymore. Java has fulfilled its function: it has made garbage collection and runtime safety acceptable among commercial programmers. The Java language and libraries themselves are nothing to write home about and never were. Java could have become a good, general-purpose language and a good, general-purpose platform, but it never really fulfilled its promise. It's become a mediocre specialty language mostly for some kinds of server-side hacking. Open sourcing it or opening the spec would only prolong the agony.

    People should move forward and widen their intellectual horizons again. Look at languages other than Java and get over this illusion that we will ever have a single language in which everything will be done on every platform.

    1. Re:I don't care anymore by Anonymous Coward · · Score: 3, Informative
      "Yes, the Java specification is not open--you can't just implement it without violating Sun's intellectual property."

      Not true at all.
      Go read Sun's license for use of their Java API docs..
      Sun also grants you a perpetual, non-exclusive, worldwide, fully paid-up, royalty free, limited license (without the right to sublicense) under any applicable copyrights or patent rights it may have in the Specification to create and/or distribute an Independent Implementation of the Specification that: (i) fully implements the Spec(s) including all its required interfaces and functionality; (ii) does not modify, subset, superset or otherwise extend the Licensor Name Space, or include any public or protected packages, classes, Java interfaces, fields or methods within the Licensor Name Space other than those required/authorized by the Specification or Specifications being implemented; and (iii) passes the TCK (including satisfying the requirements of the applicable TCK Users Guide) for such Specification. The foregoing license is expressly conditioned on your not acting outside its scope. No license is granted hereunder for any other purpose.
      Or in english:
      You can use this to implement your own Java, as long as it is fully compliant with the Java specification.
    2. Re:I don't care anymore by ajagci · · Score: 1

      That is exactly what the license says, and what that means is exactly that you cannot implement Java without violating Sun's intellectual property: if you implement it, you have to implement all of it before you can release any of it (which is pretty much an impossibility for open source) and even then, Sun is the final arbiter whether your software is, in fact, compliant. That is not an open standard, it is one of the most restrictive standards imaginable. Every single non-Sun implementation of the Java platform is in violation of this license right now and can be shut down by Sun at any time.

      If this kind of standard came from Microsoft, would you consider it "open" if Microsoft said "but we are the final arbiters of whether your implementation is compliant? I don't think so. So, why do you take that bullshit from Sun? The fact that Sun misrepresents this kind of proprietary standard as "open" only shows that, in addition to not being open, they are also being deceptive. That's not the kind of company I want to do business with or I want to help "beat Microsoft".

  47. Mono is a threat by Anonymous Coward · · Score: 3, Funny

    My roommate just got mono and trust me, you want to avoid it at all costs. You're sick and tired and it lasts for weeks.

  48. Open Source is magic pixie dust... by mr_majestyk · · Score: 1

    ...you sprinkle it on failing companies, and they spring back to life.

  49. Shit happens, but it doesn't run by Anonymous Coward · · Score: 1, Funny

    Yeah, but I find I can't get shit to run no matter how it's compiled.

  50. Avoid SWT on OS X by Jord · · Score: 2, Informative
    Just don't use SWT on Mac OSX. It is a horrible implementation that is slower than Swing on the same machine.

    What were they thinking implementing SWT in Carbon. Even that is not an excuse for the slowness though. About the only full blown java IDE that is slower than Eclipse on OSX is Netbeans :(

    1. Re:Avoid SWT on OS X by Anonymous Coward · · Score: 0

      Use Swing on Mac, SWT on Windows. How is this portable? Is it "portable" in the sense that I have to port all of my software to multiple competing architectures?

    2. Re:Avoid SWT on OS X by smittyoneeach · · Score: 1

      Before I rant, let me just shout out to the dudes doing that excellent work over at Jakarta. Jakarta, Indonesia may be rather hellish (at least it was last time I went there, in '97), but j00 guys are teh 5hizn17. Tomcat is everthing IIS wants to be when it grows up, though I haven't looked at the .Net version, so maybe it has been drinking milk.
      Now: rant. It just blows me away how thoroghly the 'write once, run everywhere' ideology has been crushed by these competing GUI libraries.
      As somebody who is relatively new to the scene, about to do a school project, I'd like to throw a loud WTF? to the java community.
      While it's cool that everyone has room to express themselves in Open Source, keep in mind that your fragmentation, across the board, helps darn few outside the Monopolistic Satrap in Redmond. I have no guess as to which one is the optimal choice for the front end of my project. Probably just shag it all and do a straight web front end.
      Next time you have an "I'll re-invent this wheel; I can make it rounder! A rational pi!" moment, contribute to an existing project instead.
      Thankee.

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  51. Avoid SWT on Linux too. by Trejkaz · · Score: 1

    The Gtk implementation of SWT is slower than Swing also.

    Actually the only implementation of SWT I've seen which isn't slow is the Windows implementation, and until you hack your Java installation it doesn't look anything like Windows.

    --
    Karma: It's all a bunch of tree-huggin' hippy crap!
    1. Re:Avoid SWT on Linux too. by sbrown123 · · Score: 1

      I run SWT apps on Linux and only had a problem when I used the Motif version. The GTK2 version is as fast as C GTK apps. Sadly, thats not saying much. But hey, GTK is programmed in C right? Wheres that lightning speed? Oh, its on top of X. Great....

    2. Re:Avoid SWT on Linux too. by Trejkaz · · Score: 1

      Well Qt seems to have lightning speed. It might be that Gtk double-buffers everything which makes it feel slower, but I have no idea and don't want to start a war on that.

      So which SWT apps aren't slow? I figure it's the same as with Swing: Swing is perfectly fast as proven by software like IntelliJ IDEA, but most developers are bad at making it fast so it gets a bad reputation.

      In the same way, the only well-known SWT app is Eclipse, and Eclipse is dog slow. But I figure that's because the Eclipse team don't know how to use SWT very well, and some app written in it will actually be fairly swift.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    3. Re:Avoid SWT on Linux too. by Jord · · Score: 1
      Scary to think that the team that wrote SWT have no clue how to make it fast.

      However since Eclipse is plenty fast on Windows, I think that the team is more than likely a bunch of Windows developers who are writing extremely poor ports of SWT to the other operating systems.

      OS X is a prime example of this. Writing the SWT in Carbon is just plain laziness. There is absolutely no excuse for it. And while carbon apps are not slow, it is clear that the developers who wrote the OS X port did a fairly bad job of it.

  52. C#, Java & GNOME by fantastic+max · · Score: 3, Insightful

    I don't understand why Sun is, on the one hand, so active in and dedicated to the GNOME desktop, whereas on the other hand, they're not doing a single thing about Mono becoming an important part of the desktop, pushing Java back even further.

    Face it: Sun, one of the head developers of GNOME, is losing the fight of Java versus C#, which is the official language from GNOME (Linux)'s biggest enemy Microsoft. Where's the logic? I mean, if Java loses even *this* battle, then how are they ever going to keep any significant marketshare?

    So yes, Sun should do something.

    1. Re:C#, Java & GNOME by chromatic · · Score: 2, Insightful

      The conspiracy minded might wonder if Sun sees Java -- not Linux -- as the most important part of the Java Desktop System. As long as people are migrating away from Windows, why not sell them an OS where Java is the preferred system programming language?

    2. Re:C#, Java & GNOME by Trejkaz · · Score: 1

      I wish they would go whole hog and build a whole OS based on it if they were going to do that...

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    3. Re:C#, Java & GNOME by chromatic · · Score: 1

      If everything interesting lives one layer above the OS, it may not matter which OS it is.

    4. Re:C#, Java & GNOME by Trejkaz · · Score: 1

      Well I guess if you abstracted absolutely everything to the point where the 'cp' command were implemented by using FileChannel.transferTo, then nobody would care. And if every device were just a File object and the drivers were written on top of that. Then, it would probably be quite nice. But that amounts to the OS being Java anyway.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    5. Re:C#, Java & GNOME by Anonymous Coward · · Score: 0

      Congratulations, you get a cookie. They don't call it the "Java Desktop System" for nothing. This is not just a conspiracy theory.

  53. Programming Language Popularity Trends TIOBE by Anonymous Coward · · Score: 3, Informative

    This Dutch company produces some interesting stats for those interested in the popularity trends of languages TIOBE Programming Community Index February 2004

    1. Re:Programming Language Popularity Trends TIOBE by Ricin · · Score: 1

      Shows that people ought to buy a python book for Sunday afternoons :)

  54. Great Idea! by Anonymous Coward · · Score: 0

    Sun needs to do some radical things to improve its chances of survival, and all of them involve Open Source in some form or the other.

    I hope they do this so they can end up just like another famous company who did the same thing: Netscape. OSSing your company's products is a winning recipe, so we've seen.

    PS: Last quarter was Sun's best in 3 years. They're just waking up.

  55. facts and not BS by Anonymous Coward · · Score: 5, Interesting
    Ok, I work in the financial software domain and from first hand experience, I see the opposite happening. the article says this, but I see no proof of it.

    However, if you put your ear to the ground, you will discover that Microsoft's .NET framework is finding its way even into such organisations as a "tactical solution" for smaller, departmental level projects. It is dangerous for Sun to ignore this trend. In the early nineties, Sun's workstations were far more capable (and far pricier) than the humble PC powered by a lowly Microsoft OS called DOS. Today, Sun has lost the workstation market to an evolved PC, running an evolved Microsoft OS, in spite of its initial advantages in power and openness.

    Java never had a strong presence on the client side. I know of several financial software companies that are going with a java middle/backend and .NET front end. There are several reasons for this: the first one is webservices and the second is proven scalability of java application servers. I won't name the companies, but those in the OMS (Order Management Systems) industry will know this is one trend. Just google for it and you'll see several of the top companies are moving towards J2EE for the serverside. In fact the companies winning in the financial software world is changing as a result of OpenSource software and J2EE.

    Rather than see Sun simply OpenSource Java, I would rather Sun do two things. the first is make it a real standard and resubmit it to a standard body. the second is provide a BSD style license of Java. When I say Java, I mean just the JVM/JRE. I work with .NET on my day job. MS has made great strides with .NET, but scalability for large systems still sucks big time. Websites that used to use ASP + MTS will see great improvements in reliability and performance. What they won't see is a great improvement in scalability. That basically means transactional systems that were hard to maintain and difficult to develop previously on windows will be easier to build and maintain.

    A professional developer, who is open minded will already know this. The real problem with using .NET is if your business needs to grow to support large scale deployments, it's a dead end. Eventually, the system will have to be replaced with a proven J2EE solution. what do I mean by large? Large might be a transactional system that is message oriented and needs to handle 300-500 transactional messages a second, or requires distributed transactions. Doing these things in .NET still very difficult, but like these types of applications were ever easy. The fact is, .NET makes easy stuff easier to build, but for hard stuff, it basically can't do it well. That's where java shines. Java is harder to learn for simple stuff, but ultimately allows you to scale to massive levels, like handling 2K transactional messages a second.

    Most companies don't need that kind of power and probably never will. Microsoft is strongest in small and medium/small firms. Ignoring all the PR BS, that world has remained basically the same.

    1. Re:facts and not BS by Anonymous Coward · · Score: 0

      I would agree with a lot of this article. In my experience, the Open Source / Java model has created a lot of WINNERS when it comes to software suppliers and development projects in corporations. This trend seems likely to get even bigger, as the wider world adopts open source. MOST people have not heard of Open Source...yet. There are several years to run - this is just the beginning.

    2. Re:facts and not BS by Ricin · · Score: 1

      Thanks, very interesting.

    3. Re:facts and not BS by cyberjessy · · Score: 5, Interesting

      Who modded this interesting!

      Websites that used to use ASP + MTS will see great improvements in reliability and performance. What they won't see is a great improvement in scalability. That basically means transactional systems that were hard to maintain and difficult to develop previously on windows will be easier to build and maintain.

      ASP.Net is one of the most scalable web platforms available. Which is why match.com(serving 30 million pages/day) uses ASP.Net. The whole system runs on around 40 servers, each balanced at 50% load. Microsoft's msn.com + microsoft.com get more hits than any other site in the world after yahoo. Based on the projects i ve worked on, we were able to achieve better scalability than anything I have seen in Java at a lower cost.

      Large might be a transactional system that is message oriented and needs to handle 300-500 transactional messages a second, or requires distributed transactions.

      You said you work with .Net on your day job! I cant believe you have no clue how to do distributed transactions on .Net. You can read the DistribTransaction sample source code that installs with .Net. Distributed Transaction support is very strong in .Net.

      --
      Life is just a conviction.
    4. Re:facts and not BS by Anonymous Coward · · Score: 2, Interesting
      You said you work with .Net on your day job! I cant believe you have no clue how to do distributed transactions on .Net. You can read the DistribTransaction sample source code that installs with .Net. Distributed Transaction support is very strong in .Net.

      Is this reasoning backed up by facts and real data? I don't know match.com, but I seriously doubt it is transactional. Unless match.com needs to have real-time transactional capabilities, they shouldn't be transactional at all. Well aside from registration, which I doubt is more than a couple hundred a day. I have no clue how match.com is designed, but a simple caching mechanism would scale well and negate the need hit the database at all. I've read the distributed transaction samples in .NET, and they aren't the same thing as EJB's. I could be wrong, but I believe there is some truth to the original post. The project I've been working on needed to use messaging, but after looking at the benchmarks of biztalk, it doesn't come close to matching IBM MQSeries. In terms of distributed transactions, I don't know of anyone that uses COM+ for it. In fact, there are several MSDN articles that caution developers towards using it. In most of the articles I've read on either MSDN/Technet or other sites, the recommendation is to make absolutely sure you need distributed transactions and write your COM+ component carefully. Managing complex distributed transactions in COM+ is generally not recommended by those who write transactional systems for large corporations. Most go with Tuxedo or something similar. I'd love to be proven wrong, so point to facts and real data if you can prove it. That way, it will shut OSS fanatics up for a few seconds.

    5. Re:facts and not BS by Anonymous Coward · · Score: 0

      You might want to check your argument:

      30,000,000 hits/day
      divided by 86400 seconds/day
      divided by 40 servers @ 50% utilization
      -------
      ~18 hits/second per server

      Even if you assume that those 30 million hits take place in 8 hours instead of 24, I certainly wouldn't consider this incredibly low rate evidence of scalability. Quite the opposite really.

    6. Re:facts and not BS by scrytch · · Score: 1

      Distributed Transaction support is very strong in .Net.

      Does it still only work with the MS SQL Server DTC, or is it now a generic API like JTA?

      (eat your alphabet soup, it's good for you)

      --
      I've finally had it: until slashdot gets article moderation, I am not coming back.
  56. The threat of Mono?!? Get Real! by Anonymous Coward · · Score: 0

    Mono (and .NET by extention will never amount to much in the
    Linux/BSD/Open Source/Free Software space. Why you ask? Because
    outside of the wannabe Windows developers nobody in the Open Source
    world really gives a damn about either Mono or .NET. There isn't
    really a whole lot of interest in Java for that matter either.

  57. Fight the hype by Anonymous Coward · · Score: 0

    Don't just swallow all the hype. Think twice before bying in to child of marketing that is Java.

    Java: Language of Tommorow
    Java: Failure or Crime
    many anti-Java rants on The Bile Blog
    Sun itself won't use Java internally

    1. Re:Fight the hype by Anonymous Coward · · Score: 0

      Sun itself won't use Java internally

      I can tell you for a FACT that is utter bollocks. Which leads me to take your other 'references' with a pinch of salt.

    2. Re:Fight the hype by Pieroxy · · Score: 1

      Do you really believe all that you read on the Internet?

  58. Why is Mono a "threat"? by fitten · · Score: 2, Funny

    Why is Mono a "threat"? Is it not possible for both to exist? Perl and bsh both exist on my machine and it doesn't explode even though they overlap in functionality.

  59. mono IS a threat... by what+the+dumple+is · · Score: 2, Funny

    According to popular legend, once all of Issaquah high school came down with mono.

    I've never had mono, but it sounds like a shitty way to spend a month.

  60. Some evidence by Anonymous Coward · · Score: 0

    For some good information about why this is the case, I strongly suggest checking out the informative whitepaper [msdn] Microsoft (yeah, I know) has on the CLR. It's a good explanation of some pretty high-level stuff, without the usual MS-ass-kissing you find on MSDN.

  61. Comparing apples and oranges---See DCOM and CORBA by Brian_Ellenberger · · Score: 3, Interesting

    This is the real issue that Sun needs to address. Java is widely used in enterprise apps because it is easier and faster (therefore cheaper) to develop apps. However, EJBs have some fundamental flaws that add unnecessary complexity and network overhead. I have developed apps for some of the busiest sites in the world and the requirements to strip the code down to the essentials are not compatible with EJBs. More times than not, EJBs are ditched in favor of a servlet-based front-end and a proprietary persistence solution.

    I don't mean this negatively, but if your problem is simple enough to solve with servlets then use servlets by all means. And yes, Entity Beans suck and should be avoided at all costs. And much of the time EJBs are overkill.

    But if you need clusterable objects with failover and seemless transaction support nothing is easier than EJBs. Go try and do some CORBA or DCOM programming and see how complicated is can get. More power=more complexity.

    Brian Ellenberger

  62. Lots of stuff on javalobby.org by memmel2 · · Score: 2, Informative

    If you want to read quite a bit of diffrent views on the subject there are several threads on http://www.javalobby.org I think they cover this topic in painful detail. My favorite quote is by Guillaume http://www.javalobby.org/thread.jspa?messageID=917 90106&threadID=11559&forumID=61

  63. Thin clients by Trejkaz · · Score: 3, Interesting

    One interesting thing the article brings up is XUL. Since it seems to do so well provided a pretty platform is written to run it, maybe it would be a good idea to, as they suggest, get it standardised at the W3C.

    Actually in general, I feel it would be a good idea for Sun to start pushing towards an architecture which allows for server-side (in the X sense, where the server is the terminal) widgets, whether they use something like SWT (which will never happen due to wars with IBM) or even an improved AWT.

    Server-side widgets would make the client even thinner, and if it were all in script you could just use the same code on all platforms and the rendering mechanism would determine how it looks. Maybe if Y-Windows ever takes off you could even have an implementation for that, and things would be lightning fast. :-)

    --
    Karma: It's all a bunch of tree-huggin' hippy crap!
  64. Re:Java, who needs it?/Bytecode vs. native code by sploxx · · Score: 4, Insightful

    Well, you're right, but there tools that do profiling for C/C++. This thread should rather be named "(JIT) Bytecode vs native code"
    Java".

    The front-end languages C++ or java don't really do much about the perfomance (except that you can manually optimize things you can't do in java because of missing pointers etc.) (*)

    IMHO, java bytecode suffers from the following things (and so do the users of java programs) - [they are the reasons,I think, why all java programs I've seen so far (and all the not-for-java-crafted benchmarks) are running considerably slower than C/C++]:

    Technical:
    - Java bytecode is low level enough to lose certain optimizations (JITs have to apply decompilation techniques) which you can do in C/C++. You can of course compile Java natively (e.g. with gcj), yes. But then, you lose portability.

    - Java bytecode is not low-level enough that you can take advantage of the features of the particular hardware. Java's ints are 32 bit. What if you run your numerical java code on 64 bit machines?

    Political:
    - The java bytecode format is so specific that it is impossible or rather hard (there was once a java backend for egcs, admitted) to get other languages like C/C++ to run on it. Why does one have to chose the platform java with the language java? I don't know .NET, but from what I heard, multiple frontends for arbitrary languages are possible.

    I'd like to have a VM for C++ *and* Java. That would surely rock and end some of the flamewars.

    (*)- The often stated security argument (java has no pointers and is therefore inherently more secure than C++) would fall with C++ on a VM.

  65. IRTFA by angel'o'sphere · · Score: 3, Interesting

    I read the f***ing article.

    After the 5th paragraph I stopped reading. After the 5th paragraph the new headline "Rephrasing Eric Raymond" I stopped reading.

    Sorry folks .... probably the article has some insights but the start is way off.

    If I count commercial, non open source, Java implementations I count ... 3? Probably 3. Not sure.

    If I count open source java implementatinos I count ... 10? 15?

    Why ... why should SUN "Open Source Java"? What bullshit idea. Probably there are indeed reasons to do so. However, the article completely fails to show them. Heck! Why should Mono be a competition to Java? Why should Mono, Open Source, cool ... Microsoft .Net, not Open Source ... cool either, why should that be a reason to Open Source Java?

    Man, this Open Source ... Closed Source, commercial ... discussion just sucks. Mono or .Net are no competition to SUN/Java.

    Why should PERL be a competition to C++? This "are programming languages"!!!!! Sure, .NET is a platform also, Java is a platform as well, also. But, the heck, where is the relation to Open Source in that regard?

    Do you think any german customer, using Java takes a shit if it is Open Source? I would bet that 90% of the german projects done in Java, just download the JDK and code it, and thats it. No SUN, no IBM, no Open Source, no idiology involved.

    Why the heck should anyone care if it is Open Source or closed? Especially if tehre are 5 times the Open Source implementations existing than closed ones? Especialy if none of the open ones are used in commercial projects?

    Do you really think "Deutsche Bank" would "take" an Open Source java implementation for their next Enterprise Portal?

    No, they take the CPL SUN implementation, or the semi open AIBM implementation, or the Apple colsed source implementation or the HP closed source implementation or the BEA JRocket, closed source JVM or any other closed source JVM.

    SUN has absolutely no benfit in a contract with Deutsche Bank about a offering an Open Source Java ... as Deutsche Bank buys not JAVA, they buy consulting.

    Using any JDK and Deploying any JDK based application is FREE as in BEER regadless which JDK you use, SUNs, IBMs, HPs, Apples.

    The real world does not care if it is free as in SPEECH as long as they dont have to PAY FOR IT.

    angel'o'sphere

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    1. Re:IRTFA by Anonymous Coward · · Score: 0
      Despite the ranting tone (which I can empathize with), this post is the most sensical I've read here. This self-centered belief that open source has the clout that corporations really care about is laughable. Talk about giving an inch and taking a mile.

      I hate to break it to you, folks, but Linux and open source are still just a small segment of the demographic. Where do you think all the folks writing open source software work during the day? Almost by definition, open source < closed source.

    2. Re:IRTFA by hughk · · Score: 1
      Do you really think "Deutsche Bank" would "take" an Open Source java implementation for their next Enterprise Portal?
      But they, along with many other major institutions want to avoid suckage and do not run a standard JVM. I otherwise agree and don't think that open source bothers them though, just support. A large enterprise does tend to push the limits simply because of scale and more implementations can mean better performance. If it screws up, it must be Somebody Else's Problem and the enterprise must have someone prepared to "own" the support problem.
      --
      See my journal, I write things there
    3. Re:IRTFA by Anonymous Coward · · Score: 1, Interesting

      Why was such a text modded to 4 (interesting)?

      One that admits that it hasn't read the article it is talking about. Furthermore the author seems to have problems with the ***, !!! and SHIFT keys. :)

      He mentiones Deutsche Bank. Does he know that they do not use java anymore but PHP to represent their web pages?

      Yes, script languages such as PHP, PERL etc. are a thread for java, even more so the free .NET implementation MONO.

      Iff JAVA were open-source from the start, such broken technologies such as EJB, JNI would have never appeared. Instead we would now have java on the desktop because it supported an equivalent of c# unsave code.

      As an example how java sucks on the desktop: It is impossible to write java code that calls a native library on any platform! Imagine that, admittedly the java print API is complete crap, but yet the vendors have no way to fix this by calling native print services directly. You cannot write and sell a pure java program that can print on windows, linux and mac.

    4. Re:IRTFA by angel'o'sphere · · Score: 1


      It is impossible to write java code that calls a native library on any platform!

      modded down by me: -1, reason: wrong

      The rest of your comment unfortunatly shows that you have not much knowledge about Java. Why should JNI not exist if Java was Open Source?

      In what regard is "EJB a broken technology"? I mean: calling it a technology is slightly exagerated allready, and claiming it is broken sounds wiered.

      Further more: where in any part of my starting article did I mention WEB? And where did I compare PERL/PHP with Java and why do you think if PERL and/or PHP *is* a thread to Java, why should open sourcing Java *rescue* it?

      IMHO the fact that PHP is open source and PERL is open source does not make them a thread to Java. IMHO Java can not be rescued, if thre is a thread, by making it open source as well.

      The point is: if I choose Java or PERL or PHP depends on the problem, not on its open source ness, or lack of that.

      Oh ... I forgot:
      You cannot write and sell a pure java program that can print on windows, linux and mac.

      modded down by me: -1, reason: wrong
      E.G. you could call native print services :-D And the printing API is updated since a while, likely you missed it.

      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    5. Re:IRTFA by Anonymous Coward · · Score: 0

      >>It is impossible to write java code that calls a native library on any platform!"
      >modded down by me: -1, reason: wrong

      Care to tell us how you write a native library call in java?

      This is simply not possible unless you write a JNI wrapper. As you know (or probably not) a JNI wrapper involves C code, so you must ship C code to you clients and require that the client must install a C compiler to compile the wrapper.

      Imho you should learn a little bit about java before you write such nonsense here.

      > Why should JNI not exist if Java was Open
      Source?

      Read the article again. Open-Source is developed bottom up, not top-down. I admit that one may find the java dev. process appealing until one experiences its limits.

      The EJB and JNI technology is broken because it is an over-abstraction. Try to develop a non-trivial EJB which must access files, must render or handle native images (awt.headless vs. JDK1.3), or threads. Threads, native images etc are simply not allowed in EJB. Is that broken or not?

      Or try to write pure java code that must call some native library. Or the nonsense with checked exceptions (read the article from the C# dev. why this is broken). Just a hint: Every JDBC exception must be wrapped on a higher layer into another exception until you end up with remote exceptions (EJB) which are sent to the client. At the end the customer complains that your EJB is wrong because all it sees is the wrapped exception from your component (which wraps the remote (which wraps the XA (which wraps the JDBC (which wraps the ...

      > And the printing API is updated since a while, likely you missed it.

      No, I haven't missed this. Go, ask your customers about the Postscript PrinterJob on Unix and how this sucks. Or the 1.4/1.5 printing on windows...
      Or the fact that java is the only one in our world that measures in pixels, instead of points.
      No, sorry, but the java print API is broken by design and sun can't fix this anymore.

      I see that you have started a consulting service on this topinc. Hmm, are you really sure you know enough about java to make such statements?

    6. Re:IRTFA by Anonymous Coward · · Score: 0

      "It is impossible to write java code that calls a native library on any platform!"
      "wrong"

      I think what he means is that you cannot call an arbitrary library from within java. This is different from the approach of other languages such as Pascal, Basic or C#, which let you call native libraries but call this code "unsave" or something.

      See, the difference here is: impossible in java, possible but disregarded in other languages.

      Compare JNI with the open-source (GNU) java implementation which uses CNI. In CNI it *is* possible to call external code, but it is still disregarded.

      "In what regard is "EJB a broken technology"? "

      * Threads are not allowed
      * You must write a JDBC wrapper to access external resources
      * The EJB Module concept orthogonal to the java module concept
      * The "roles" don't work in reality. Customers generally want a solution, not pay additional fees to third parties such as assemblers, deployer etc.
      * Not object-oriented.

      "I mean: calling it a technology is slightly exagerated"

      Right. How should we call it? The old joke about VI comes to my mind which is said to be designed by communists who wanted to tear down the US software industry... :)

      "Further more: where in any part of my starting article did I mention WEB? "

      Not web? Okay, I take it. Probably java is not so good for web-services but for developing kernel drivers. By the way, do you know that RedHat Enterprise Linux3 ships with ant, junit, Eclipse and other java tools mentioned in the article?

      ldd `which ant`
      lib-org-apache-tools-1.5.2.so => /usr/lib/lib-org-apache-tools-1.5.2.so (0xb73c4000)
      lib-javax-xml-parsers-2.2.1.so => /usr/lib/lib-javax-xml-parsers-2.2.1.so (0xb705e000)
      lib-org-apache-commons-logging-1.0.2.so => /usr/lib/lib-org-apache-commons-logging-1.0.2.so (0xb704e000)
      lib-org-apache-regexp-1.2.so => /usr/lib/lib-org-apache-regexp-1.2.so (0xb703a000)
      lib-org-w3c-dom-2.2.1.so => /usr/lib/lib-org-w3c-dom-2.2.1.so (0xb7038000)
      lib-org-xml-sax-2.2.1.so => /usr/lib/lib-org-xml-sax-2.2.1.so (0xb7015000)
      lib-org-apache-bcel-5.0.so => /usr/lib/lib-org-apache-bcel-5.0.so (0xb6e76000)
      lib-javax-xml-transform-2.4.1.so => /usr/lib/lib-javax-xml-transform-2.4.1.so (0xb6e61000)

      Cool, eh? Open-Source tools ship with enterprise systems, but no java. Instead they use the open-source gcj to compile the java tool into native code and ship that. I haven't yet looked at the additional modules that RedHat packets with its Eclipse, but I bet there are some C# modules.

      _SO YES, THE ARTICLE MAKES VALID CLAIMS_

      " why should open sourcing Java *rescue* it?"

      I guess because the open-source model is different from Sun's "I invent interfaces and you can implement that" which has shown not to work. What we need is a step-by-step development from the ground up. BTW: I don't think it will rescue Sun, but merging cygnus' improvements with IBM/Sun's will definitely change the world. In the open-source world we have different competing vendors such as Suse, Redhat, but the GPL forces them work together on the basis. This has shown to work better than the sun model.

      "Java can not be rescued, if thre is a thread, by making it open source as well."

      I don't want to rescue java as it is. I want that ibm, sun, redhat, the open-source community work together on this base. What java needs are environments (module/library system), true generics (1.5 generics are useless because they are not visible via reflection), a simple pre-processor to create more than one version from the same code etc. The open-source comunity can and will deliver this and furthermore they will happily beta-test the releases.

      - Peter

  66. So Sun should.... by Anonymous Coward · · Score: 1, Funny

    Open Source Java,
    Use Linux instead of Solaris,
    Move from UltraSparc to AMD64...

    Hmmm, seems like a great business plan.

    1. Re:So Sun should.... by codemachine · · Score: 1

      Well they already are doing the Linux and AMD64 thing now, even though the Open Sourcing of Java woud've done very little to hurt their profits, unlike a full takeover for Linux and x86 would.

  67. Funny post by brokeninside · · Score: 1
    Netscape. OSSing your company's products is a winning recipe, so we've seen.
    Two words: Open Office
    Last quarter was Sun's best in 3 years. They're just waking up.
    Which means they ought to be doing more of what they've been doing in the past, no? Which would mean opening up more of their products, no?
    1. Re:Funny post by Anonymous Coward · · Score: 0

      Two words: Open Office

      One word: haha! How much money has that made them?

      Which means they ought to be doing more of what they've been doing in the past, no? Which would mean opening up more of their products, no?

      I agree with the first part but not the second part. Sun has a history of contributing to standards and open projects but does not have a history of opening their CSS applications.

  68. What a dumb article by Decaff · · Score: 5, Insightful

    Its full of contradictions and silly mistakes.

    J2EE is small and easy, not large and expensive. Anyone can build JSP pages or use Servlets on a free but high-quality App server like Tomcat - this may not involve Enterprise Java Beans (the least used aspect of J2EE), but its still J2EE and it costs nothing.

    How can .Net be a threat when Microsoft is struggling (making a loss!) on the server side? Unless the Mono folks unwisely give Microsoft an escape route, the eventual rise of Linux on the desktop will squash .Net flat. This rise is starting: I develop websites for international use. If I deploy anything that requires Microsoft on the client (as do .Net apps), I soon get enough complaints to convince me otherwise!

    Why does Java need to be Open Source to ride the Linux revolution? High-quality Java VMs are ready for Linux.

    Java is the most widely requested language for development, and its use is still rapidly expanding. Sun has nothing to fear.

    1. Re:What a dumb article by earache · · Score: 1
      If I deploy anything that requires Microsoft on the client (as do .Net apps), I soon get enough complaints to convince me otherwise!

      You're ignorance will get the better of you in the long run. ASP.NET applications work fine for every browser under the sun (no pun intended).

    2. Re:What a dumb article by Decaff · · Score: 2

      The article was talking about client-side components running on enhanced browsers:

      ".NET boasts components on both the client and the server"

      Obviously if you use only server-side .Net this will not arise.

    3. Re:What a dumb article by steveorama · · Score: 1


      "J2EE is small and easy, not large and expensive. Anyone can build JSP pages or use Servlets on a free but high-quality App server like Tomcat - this may not involve Enterprise Java Beans (the least used aspect of J2EE), but its still J2EE and it costs nothing.

      I partially agree with this point. Anyone can easily download, install Tomcat, and have a light J2EE app running fairly quickly. However, we're talking enterprise software here, and most big businesses want the advanced features and support that they need to run mission critical software. It's big business and it's big money.

      "How can .Net be a threat when Microsoft is struggling (making a loss!) on the server side?"

      I think that's part of the point. Microsoft may be struggling to gain a foothold, but it looks like they might actually get one. As the article mentioned, decision makers often don't look past the superficial solution and as a result Microsoft might eventually overtake Sun in this space and kill Java. That doesn't seem like a contradiction to me.

      "Why does Java need to be Open Source to ride the Linux revolution? High-quality Java VMs are ready for Linux.

      The JVMs are ready for Linux, true. However, they are not shipped with Linux by default. A new license that would allow them to ship with the linux CD could bolster support.

      "Java is the most widely requested language for development, and its use is still rapidly expanding. Sun has nothing to fear."

      This just seems like a complacent, arrogant statement. Sure java is important now, but do you seriously think that things can't change? I could list example after example of how this kind of hubris has resulted in the death of companies, but I just don't feel like wasting the energy.

    4. Re:What a dumb article by Decaff · · Score: 1

      "This just seems like a complacent, arrogant statement. Sure java is important now, but do you seriously think that things can't change? I could list example after example of how this kind of hubris has resulted in the death of companies, but I just don't feel like wasting the energy."

      Java is not Sun's. If Sun were to crash, IBM would still do Java, as would Apple, HP, GNU etc. etc.

    5. Re:What a dumb article by steveorama · · Score: 1

      "Java is not Sun's. If Sun were to crash, IBM would still do Java, as would Apple, HP, GNU etc. etc."

      So shouldn't your original post have said that Java (and maybe Java users) has nothing to fear. I think Sun, as the company steering Java (JCP, I know, I know - in practice almost every spec lead I know is a Sun employee), has a lot to fear right now, and needs to very carifully have a look at what their future with respect to Java is.

  69. OK without RTFA,, Sun does alright as it iit seems by Ricin · · Score: 2, Insightful

    It's more important to get binary packages qualified (FreeBSD...). But other than that, come on, Java can be used pretty much unencumbered. What's the problem for end user apps?

    Heck look at the wave of new cellphones, they all have Java and Real as far as I'm aware. This is also where the DRM fight is going to be, not on your PC (otherwise I don't use the little plastic critters at all -- don't ask me).

  70. Mod parent up, please. by theTerribleRobbo · · Score: 1


    And preferably mod the grandparent down.

  71. Ugh s/iit/is/ by Ricin · · Score: 1

    That was all

  72. Open sourcing Java give MS free reign by geekee · · Score: 3, Interesting

    "The GPL is also the only Open Source license that can keep Microsoft from "polluting" Java."

    If Java is Open Source. MS can change it all they want from the Sun standard. The only stipulation is that they then must release their source code. MS would love this as it puts them in a far better position than they're in now, where they're not allowed to ship non-compliant versions of Java as ordered by the courts.

    --
    Vote for Pedro
    1. Re:Open sourcing Java give MS free reign by ClosedSource · · Score: 2, Insightful

      Actually, I don't think MS would bother. If they released a new version of Java it would look like a they had no confidence in .Net.

    2. Re:Open sourcing Java give MS free reign by Rocinante · · Score: 1

      Yes, and any interesting/compatibility-breaking changes they made in their version could immediately be added to all other GPL implementations. It might let them "pollute" Java (if people actually cared to use their changes), but it wouldn't let them "hijack" Java, which is the real concern.

      --
      Just trying to open someone's head! I mean "mind!" Open someone's mind, um, to the possibilities! With explosives!
    3. Re:Open sourcing Java give MS free reign by geekee · · Score: 1

      " Yes, and any interesting/compatibility-breaking changes they made in their version could immediately be added to all other GPL implementations. It might let them "pollute" Java (if people actually cared to use their changes), but it wouldn't let them "hijack" Java, which is the real concern."

      Yes, but MS gains defacto control of Java by their vast momentum, which means Sun and the OSS community would spend all their time making their version compatible with MS's version, instead of the other way around. In the end they may even give up and let MS maintain it.

      --
      Vote for Pedro
  73. "Java will not really take off"? by Decaff · · Score: 1

    "Java will not really take off"??

    Seems to be some kind of reality blockage somewhere. I look forward to future comments such as:

    "Linux will not really become widespread until..."
    "Windows will not dominate the desktop unless..."

    Hint: Scan the job ads. Java has taken off.

  74. Re:IRTFA +5 by Ricin · · Score: 1

    "Knows stuff"

  75. The majority of dot net is VB.net? by brokeninside · · Score: 2, Informative
    Where do you get that idea from? VB (all incarnations) has many more users than C#. C# is tremendously growing in marketshare. VB is not. Most VB users learning dot net are switching to C# over VB.

    Don't believe me? Don't take my word for it.

  76. Exactly! by Lysol · · Score: 1

    (EJBs)...typically requires 5 to 7 supporting files to deploy. Most development tools (IDEs) generate these automatically, but each in its own proprietary way.

    By open sourcing this, it will make it worse. The EJB spec states bare minimum. It's up the the vendors on how to implement most of it. This it not an issue OSing Java will fix.

    I dunno, there are a lot of reasons why I don't think making Java any more open, read: diluted, will help. But it's getting late, so...

  77. One word: cygnus by brokeninside · · Score: 1
    Cygnus, purchased by Red Hat, was not only a profitable firm before being purchased by Red Hat, it is also largely responsible for the profitable quarters that Red Hat has had over the past couple of years.

    Cygnus built their business around open source. Their main product was offering support for the Gnu Compiler Collection.

  78. Your points 3 and 5 are Just Plain Wrong by Anonymous Coward · · Score: 0

    An optimizing JVM will often have to insert guards in order to guarantee the correctness of specialized code. Thus it not only should not, but for the sake of correctness CAN NOt "just get out of the way of the program and just let it run." Further, program behavior can change, and so a different version my become more appropriate as the program continues to run.

    As for performance of Java on IA64, current benchmarks show very good performance. Future potential is even better, because there is a lot more scope for adjusting code based on observed behavior than there is in most architectures.

  79. Another ignorant article by Anonymous Coward · · Score: 1, Insightful

    If you download the SDK, you've got the source. It's usually in src.zip.

    You can change it. You can give your new stuff to whoever.

    You just can't call it "java", you'll need to think of a new name,
    like "java++".

    If you want to make changes and call it java, don't be an ESR and whine, just joint the JCP. Java is "community guided" open source. It's a new concept I guess, but new concepts do come up sometimes.

    If you reject any new variants of "open source" you still have plenty of options - there are many existing open source java implementations.

    By ignoring all these facts, the article is effectively saying
    something quite different than what the title indicates. An open source java is not what is wanted -- that already exists in many forms. What's the problem then?

    I can only explain by analogy-
    let's pick Gimp. It's open source. Photoshop isn't. Now, I write
    a paint program called BozoPaint, give away the source, but
    say that, to keep some level of compatibility, changes to
    the BozoPaint file format have to be proposed and voted
    on by the BozoPaint steering group, which anyone can join.
    Completely reasonable...

    The author of this article evidently cannot tolerate an article
    in which BozoPaint (and Photoshop) exists.

    This is the thing that really bugs me about the Linux community.
    Linux is great, but so many of the people who speak up about
    it are wacos.

  80. Re:Open Source Java by Christ-on-a-bike · · Score: 2, Insightful
    While Java stays Sun's closed-source product, Sun retains control over it. Releasing it open-source would mean relinquishing that control forever.

    Kind of like how Linus Torvalds completely lost control of Linux? </sarcasm>

    Sun would retain copyright and the right to relicense or dual-license. The scenario could be parallel to Mozilla or Qt, but with Sun Java's existing huge userbase.

    If the JVM (at least) was Qt style relicensed GPL, we might perhaps see some performance enhancements on Linux, as well as integration of Sun's JVM into GNU/Linux distros like Debian and Fedora Core. Sun would surely like that.

    This makes a lot more sense than relicensing under BSD, as that would enable MS (say) to quickly release broken/incompatible JVMs in their future OSs without breaching their legal obligations and without giving the source away.

    To sum up, My answer to your query (2) is 'GPL'.

  81. Is SUN stupid? by Anonymous Coward · · Score: 0

    It seems Sun needs to make Java to be open, not closed source if they want Java to be more popular.

  82. A Tale Of Two Javas by TrancePhreak · · Score: 2, Funny

    A long time ago there was the MS Java JIT. It loaded up and ran Java applets and played nicely with others. The web was browseable and never caused the evil BSOD to appear. However, the father who never liked this child wanted to push their own JIT upon the people. It was known as the Sun JRE. It didn't like Windows, and often crashed it out of hatred. A great many web pages were blockaded by the JRE. It brought the terrible BSOD any time it could.

    To be continued....

    --

    -]Phreak Out[-
    1. Re:A Tale Of Two Javas by Anonymous Coward · · Score: 0

      moronic, and not at all accurate

    2. Re:A Tale Of Two Javas by toriver · · Score: 1

      However, the father who never liked this child wanted to push their own JIT upon the people.

      Nonsense, the JIT shipped with the Sun JRE was from Symantec.

  83. IBM urges Sun to make Java open source by rshimizu12 · · Score: 1

    (http://news.com.com/2100-1007_3-5165427.html?tag= st_lh) "IBM on Wednesday sent an open letter to Sun Microsystems urging Sun to make Java technology open source, CNET News.com has learned. In a letter sent by Rod Smith, IBM's vice president of emerging technology, IBM offered to work with Sun to create a project that would shepherd development of Java through an open-source development model. If implemented, portions of Sun's most valuable software asset--Java--would be freely available, and contributors ranging from volunteer programmers to large corporations would submit changes to the Java software."

    1. Re:IBM urges Sun to make Java open source by Anonymous Coward · · Score: 0

      Of course. IBM wants to wrest control of Java from Sun, and getting Sun to make Java open source is the easiest path to doing that.

  84. Mod parent up! by earache · · Score: 4, Interesting

    We just scaled a single server asp.net solution to a 5 server farm without a single code change or recompile.

    I did have to change one line in the web.config file though. I guess that 10 minutes of my time isn't a great improvement in scalability? :p

  85. Re:shit by Anonymous Coward · · Score: 0

    Can you make it a double homicide and go kill Michael Simms now. Do it for the children man.

  86. We need Javalobby's opinion by Anonymous Coward · · Score: 0

    like we need a bad rash.

    Now everyone sing:
    Yeah for Java! Yah!

  87. IBM urges Sun to make Java open source by burtonator · · Score: 4, Interesting

    This was just published an hour ago:

    IBM on Wednesday sent an open letter to Sun Microsystems urging Sun to make Java technology open source, CNET News.com has learned.

    In a letter sent by Rod Smith, IBM's vice president of emerging technology, IBM offered to work with Sun to create a project that would shepherd development of Java through an open-source development model. If implemented, portions of Sun's most valuable software asset--Java--would be freely available, and contributors ranging from volunteer programmers to large corporations would submit changes to the Java software.

    http://news.com.com/2100-1007_3-5165427.html

  88. The real danger by denks · · Score: 2, Insightful
    Sun would not be able to incorporate changes made under the GPL into their corporate version

    I call bullshit on this. If Sun released a GPL'ed version of Java, as they own the copyright to it, they can include whatever changes they made in their GPL'ed version into their own commercial version. On top of that, as they own the copyright to the name "Java", they could set the standards (as they already do) where if implementations did not conform to their standard, then the implementations could not be called "Java".

    The real danger, which until now fortunately has been avoided, is when developers are presented with the choice of either having to open their source code when using the GPL Java, or paying Sun a fee for using the commercial Java. How can this be considered more "free" than the current situation where you can do what you please with your own software? If you want to GPL your software, go ahead. If you want to keep it closed, you are free to do so.

    Currently as far as I understand you can implement Java any way you wish, as long as it conforms to Sun's standards. Isnt this what the OSS community has been calling for? Open standards? This appears to present us with both the advantages of OSS and commercial software. A central controlling body for the standard, with the openness to implement how anyone sees fit.

    --

    I am Monkey, the Great Sage, equal of heaven!
  89. who cares of standards? by Arioch_BDV · · Score: 4, Insightful

    Take a look at .NET
    IT has open ECMA specification - and Microsoft made a great P on that.

    But the real programs will be made upon MS .NET with all it's propietary extensions to the standard. The standard itself is gonne mean nothing.

    Projects like www.DotGNU.org understands it well, so they are running behind (and trying to chase) the very MS libraries, not only the standards.
    And Microsoft said that it is their strategy - add new technologies so fast, that competitors have no time to invent their own one.

    1. Re:who cares of standards? by malachid69 · · Score: 2, Interesting

      If I remember right, the reason that Sun did not make Java an ECMA standard was because Microsoft was on the ECMA board.

      Honestly, with their business practices, I wouldn't want to submit my designs to anything Micro$oft has a hand it. Would you?

      --
      http://www.google.com/profiles/malachid
    2. Re:who cares of standards? by Arioch_BDV · · Score: 1

      I do not like C-styled languages.
      If Java was muti-langauge at its roots...

      IF there will be share of .NET applications, that are compatible with ECMA standardf and do not need MS-only extensions to it, i will move towards.
      Otherwise... At least 'no news' will make not thinggs worse :-)

    3. Re:who cares of standards? by chicogeek · · Score: 1
      And Microsoft said that it is their strategy - add new technologies so fast, that competitors have no time to invent their own one.


      Do you have a reference for this information?
    4. Re:who cares of standards? by Arioch_BDV · · Score: 1

      Bill Gates
      Business at the speed of thought.

      It was not so expressive there, of course

  90. Opensource is not the all answer by ducomputergeek · · Score: 5, Insightful
    There are a few in the Opensource community that would love all software to roam "free" in all sense of the word, but I for one do not think that Opensource is the answer to every problem. Java is one of those tools that I fail to see what the beneift would be, hell it could be even worse if it went OSS.

    Why? Well remember JVM and how Microsoft corrupted the compatiablity? Java's goal is to be cross platform and to do so means there needs to be a centralized development effort. If suddenly there are 50 versions of J2EE on the market, each with its unquie traits, which do I run? How do I know that the app I program will work on the others? If it doesn't run on everything, hasn't the point of Java been defeated?

    I once worked for a company that was looking to port some of its Solaris & AIX Applications to Linux, but 3 months into the project, the question became what distros to support. They tried porting their application with some modifications. Got it to run fine on RedHat 5.x (it was a while ago), but then it took some playing around to work with SuSE and we never did get it to compile on Slackware. When they said they planned to support RedHat default only, meaning if system admins were using a tweaked box or kernal, we would not offer support. Needless to say, potential clients scoffed at the idea and after 6 months they decided that the Linux Market wasn't worth the hassle until some standards had emerged. This is why a lot of developers won't port to linux, especially desktop applications: too many variations.

    I see the same potential of Java, to become slpit into so many forks, that it defeats the purpose in the first place.

    I like opensource applications, but I don't think that Opensource is always the answer. Another good example is a good friend that is developing a support ticket application for the company he works for. I asked him, "Isn't there several GPL'd apps outhere that could installed within a couple hours?" He responded of course, but he put it this way: "I like to use my own code and not other peoples. Its a lot less messy that way." and I see his point.

    IF it wasn't for opensource, I would have never learned how to program in PHP, PERL, and various SQL databases, it was a great learning tool, but like every tool, there is the correct tool for the job. I say this as I switched from Linux to Macintosh almost two years ago now and I am willing to pay for the luxury of having everything work. Just like we now pay for managed instead of self-managed servers for our business. There is only 3 of us and we now have enough business that its costing us more to run our own servers than to pay a little extra for managed services where the keep up with the updates and such.

    All I am saying is that projects have goals. Sometimes Opensource meets those goals, but its not a cure all. The beauty is that we have the choice of using Opensource or to use a propritary solution.

    --
    "The problem with socialism is eventually you run out of other people's money" - Thatcher.
  91. Re:Open Source Java by willdenniss · · Score: 2, Insightful

    While Java stays Sun's closed-source product, Sun retains control over it. Releasing it open-source would mean relinquishing that control forever. Imagine, if you will, the overthrow of an essentially benevolent dictator followed by a less desirable character seizing power. I'm getting sick of everyone saying this - Sun has actually given up a lot of their control with the introduction of the Java Community Process. Please research you facts! Will.

  92. write once by jdew · · Score: 0, Troll

    ...debug everywhere

  93. Author can't read financials. by maysonl · · Score: 1

    The author of the LinuxToday article obviously can't read a financial statement very well. The reconciling amounts he goes on at length about are mostly corporate-wide expenses which can't be allocated easily by company segment. The biggest piece of them is stock compensation expenses which are not really expenses at all, but accounting fictions based on the imputed value of options granted and exercised.

  94. facts? by darekana · · Score: 2, Insightful

    I seem to have missed the facts part... too.

    Orkut is another example of a .NET system that is getting scaled right NOW to zillions (approx.) of users.

    Granted they are hitting some bumps, but I've seen java based shopping sites with bigger problems and fewer active users. They ended up taking the site down for weeks. Not to mention the site was unusable while up.

    Just goes to show that it's not the language... it's how you use it.

  95. A More Pragmatic Request by rmathew · · Score: 2, Insightful
    Tom Tromey, one of the leading developers on
    the GNU Compiler for Java (GCJ) posted a very nice and
    much more pragmatic request to Sun. Reproduced below:

    > Getting more contributors to OSS Java projects would
    > be a pragmatic and actually helpful goal to work
    > towards. As opposed to demanding Sun give away their
    > source. IMHO

    Just for reference, those of us currently involved in
    developing free implementations of Java have not, to
    my knowledge, demanded that Sun give away any source.
    ESR has, but he doesn't speak for us.

    Of course it would be hugely helpful if Sun gave away
    their source. That would be man-years of work we wouldn't
    have to do. For instance, right now some people are
    actively working on Swing. I would expect this to take
    quite a long time... Sun could shorten that considerably

    We don't really expect that, however. And we don't really
    need it; we'll do ok at our own pace.

    The things we really could use, and that I at least really
    would like Sun to change, are:

    * Access to the TCK. No free implementation has ever
    been run against the TCK. It has never been available
    under suitable terms. E.g., becoming a Sun licensee
    is not acceptable.

    * Access to the JCP. I'm told that at the moment there
    are still terms in the JCP that prevent developers of
    free Java implementations from participating. So, for
    the most part, we stay away. This is particularly
    unfortunate as participation in the JCP would be
    mutually beneficial.

    * Lift restrictions on subsetting. Those of us working
    on free implementations all understand that there is
    a huge amount of value in compatibility. We don't
    want to fragment the platform -- we aren't MS. However,
    free software isn't well suited for a "have one big
    complete release" model. Instead we do things piecemeal,
    as they are implemented. In the past anyway, Sun
    has frowned on this sort of thing and made various
    attempts (e.g., in JSR click-throughs, or even in
    licenses at the front of books) to prevent this.

    The next question, though, is "what's in it for Sun?".
    What is their incentive for opening things a bit more?
    Unfortunately, I don't have very good answers here, yet.
    I do think the free software community and Sun could
    be natural allies in this space. Java has made good
    inroads into free software, however it is still a work
    in progress. E.g., Mono has appeared, perhaps in 5
    years C# will have displaced Java in the free world
    as well.
    1. Re:A More Pragmatic Request by pjt33 · · Score: 1

      I presume that he's deliberately refrained from looking at the Swing code. I have looked at quite a bit of it, and it seems to be the worst implemented part of the standard libraries. Far better if GNU write their own.

  96. ARTICLE HITS THE NAIL ON THE HEAD by Anonymous Coward · · Score: 1, Interesting

    Everything the article mentions about J2ee VS .NET and why .NET is advancing quickly is so true.

    IDE, UI, productivity, these are things MS has been working hard at for years even as big iron has been chuckling at the concepts for years.

    Now all that ignorant laughter is beginning to pay off for MS. These are things the java community, Unix, Linux can not ignore.

    There is something to be said for a good productive development IDE that works on top of a powerful development platform. and no Mr legacy, a good GUI IDE does not mean a color coded text editor, and some pretty graphics.

  97. Java on OS X... by CoolCat · · Score: 1

    What does people here use to develop java on OS X? I've tried Eclipse, wich is fast, but lacks of GUI editor. Netbeans would be great, if it wasn't that it is horribly slow and bind CTRL-C and CTRL-V for copy and paste operations (We apple folks uses APPLE key+C/V for that stuff).

    I'm considering JBuilder X ... wich seems the best option so far..

    1. Re:Java on OS X... by Anonymous Coward · · Score: 0

      Emacs, of course.

    2. Re:Java on OS X... by pjt33 · · Score: 1

      SubEthaEdit and Terminal.

    3. Re:Java on OS X... by Anonymous Coward · · Score: 0

      Intellij Idea is the best for the money and runs great under OSX

  98. /.READ ME by essreenim · · Score: 1

    Do any of you know the real issues:

    The survival of Java is important not because it's an alternative to C++. You could not compare them in the beginning and this is even more so now.
    Java is best compared with M$ .NET at the moment if you read up on the issues at all. It's domain more an enterprise framework now - not just a program language, so you should really all have been moderated as offtopic.

    Why open source it?

    Because, inevitably (almost certainly) if Sun don't do this M$ will coax every enterprise and small business into using .NET. So you'll all end up giving more cash to MS because of the stupid java vs. c++ fantasy.
    No, this is much more about J2EE vs. .NET - thats where the cash is.

    So, if Sun makes Java open source this trend can be bucked because no matter ho cheap M$ go with .NET - they cannot compete with free software that is fully controlable - open source, and a lower over all total cost of ownership. Essentially, we could see a new dominant force in the web domain - Linux and J2EE dominating over M$ and .NET

    And also, I'm tired of hearing that you think Java is inefficent. Java uses far more native code nowadays, so actually when it comes down to it, thats c code being executed in the end when your app runs. It's very good c code too. For example, the the CDC (Connected Device Config) used in mobile devices uses the CVM I believe, a very fast and efficient VM programmed in C.

    In summary, you should read the article..

  99. Re:Java, who needs it?/Bytecode vs. native code by pjt33 · · Score: 2, Insightful
    Why does one have to chose the platform java with the language java?
    I think you mean that the other way round - there's nothing in principle stopping you from writing a Java-to-C++ source-to-source compiler. (Note: I don't know enough about how C++ handles method dispatch to comment on how easy it would be).

    I think it basically comes down to design intentions. The Oak project was intended to provide WORA with a sandbox model to reassure people that it was safe to run applets. The CLR, OTOH, was designed to allow people who already knew any VS language to write for .NET. I don't know quite what that means in terms of sandboxing, but I haven't noticed MS release an applet-style plugin.

    As far as getting C/C++ to run on a JVM is concerned, I think someone with enough dedication and compiler skills could probably write a compiler which got most of it to run. Most pointer idioms can be rewritten, autogenerated mixins can simulate MI. Variant fields in structs could be tricky, although I think they could be hacked up. The question, though, is why people would want to run C++ on a JVM. Surely the reason for using C++ is obsession with speed or a desire to do really low-level stuff? If you're obsessed with speed, you should take to heart the mantra "Don't optimise. (For experts) Don't optimise yet", and if you want low-level stuff then you don't want a VM in your way.

  100. .NET Dev, and I Hope They Dont by Numen · · Score: 3, Interesting

    As a .NET developer I'll be up front and say over the long haul I sincerely hope that Sun don't Open Source Java. More specificallymy hope is that Sun keeps Java closed for at least another 3 years.... I fugure it's going to take another 3 years for .NET to mature as a cross-platform prospect.

    IF... and it's an if, it might never happen... Mono matures over the next 3 years it is going to be absolutely excrutiating for the Open Source community to justify a closed Java.

    As a MS .NET developer you can't begin to imagine the childish glee I get from saying to Java developers... "my platform's more open than yours."... to which I'm quickly told "but there's 5 Java jobs for every .NET one", and I have to shut up.

    And yes it's incredibly childish, but at least half the motivation behind any platform comparison is childish spite that exposes the facet of a developer that has more in common with a cheer-leader than anything else.

    More seriosuly Java has 3 years to go open or the Open Source and Free Software community will have it's nose rubbed in .NET... I can't believe the OS community will stand and defend Sun when it's setting them up for such humiliation.

    We could argue the detail, we could justify, but .NET is more open than Java.... the Mono CLR on Linux is more open than the Sun JVM on Linux. You can't dodge that.

    What the Open Software community should be doing is screaming blue murder at Sun, not sticking their fingers in their ears and saying "nah nah nah nah, it's not happening, it's not happening".

  101. Other languages that produceJava bytecode by KamuSan · · Score: 1
    - The java bytecode format is so specific that it is impossible or rather hard (there was once a java backend for egcs, admitted) to get other languages like C/C++ to run on it. Why does one have to chose the platform java with the language java? I don't know .NET, but from what I heard, multiple frontends for arbitrary languages are possible.

    There are several languages with which you can write Java bytecode programs, like Jython .
    See here, so it is possible with Java bytecode as well.
    1. Re:Other languages that produceJava bytecode by sploxx · · Score: 1

      Yes, but pointers and similar stuff is hard to implement on the JVM.

  102. How much money has that made them? by brokeninside · · Score: 1
    200 million copies worth in one deal and 10,000 copies worth in another. That's just within the first ten hits on google. I'm sure they have lots of smaller deals that don't get press releases.

    Aside from the annual subscription rate for the software, they also stand to make money on selling hardware and services for infrastructure from these deals. Even if the actual office suite is be a loss leader (which I do not believe to be the case, but I could be wrong), it still brings in a tremendous amount of income on other fronts which would make it analagous to Microsoft and Internet Explorer.

  103. IBM was not the first "Open" PC platform by Wudbaer · · Score: 1

    Had Apple and Commodore been less stingy with their proprietary hardware technology, things could have played out very differently

    This more or less BS. Back then you either got the whole completely detailed hardware documentation with the system on purchase (Apple II) or you could buy it cheaply afterwards (C-64). Both platforms were excellently documented and there were numerous Apple-II clones around. IBM PC did not win because they were "Open Source", they just gave the new PC segment credibility.

  104. What a load of pap.... by MosesJones · · Score: 3, Interesting

    Sun has lost control of the Java development space. It does not provide leadership anymore or set the agenda. Open Source does.
    There is a wellspring of innovation in Open Source that beats the productivity of Microsoft's friendly tools.


    It mentions the JCP but ignores the power of that organisation over the OSS world. Open Source certainly does NOT provide the leadership in the Application Server space, BEA, IBM and SAP do. Open Source does not provide leadership in the IDE space, BEA, Borland, Compuware and IBM do. Open Source does not provide leadership in the J2ME space, Sun, Nokia and Ericsson do.

    What annoys me about this article is its assumption that XDoclet and Ant can be compared with a J2EE application server. And that _standards_ are not important. The JCP is the key to all of this. In the same way as Ethernet won because it was a standard the JCP lays down standards for the Java space. ANYONE can take part, it doesn't even cost you money. And you can have a say in the direction of the platform, in a much more direct way that you could have with Linux for instance.

    The point this misses is that Java has not succeeded as well as it has by being fragmented, it has succeeded because it is standardised. The JCP enables all of the partners to determine what goes into the platform. Sun propose JSRs, but so do IBM and BEA... and Oracle.... and SAP... etc etc etc.

    Open Source could learn much by looking at the JCP.

    Consider Wi-Fi, why is 802.11x successful ? Because its all open source ? Or because a regulated standard works well in a commodity marketplace.

    Sun with have commoditised the Application Server and Mobile platform spaces. The JCP has for several years been the key to that success.

    The trouble with Open Source advocates is sometimes they see everything as a nail.

    --
    An Eye for an Eye will make the whole world blind - Gandhi
  105. I'm not a developer but by Stone316 · · Score: 1
    from the outside looking in Java looks very complext especially when you talk about web applications.

    One problem I had with Java was cross platform compatibility. I developed on Linux but the GUI looked like crap in Windows, font sizes were different, etc which made it look, quite frankly, ugly.

    The other big problem I had was I could get code to work fine in one browser (it was a simple applet) but other browsers and their plugins would have different issues.

    I'll admit, i'm not a professional programmer (DBA) but I have a CS background and just do this stuff for fun but I ran into alot of issues that I though Java was supposed to solve. If your developing an application (not talkigna bout jsp and servlets here but applets or straight java 2/3tier apps) as long as you can specify which browser and JRE to use your fine but once you try and support different variations your asking for trouble.

    I don't intend this to come off as a troll because I do indeed love Java but I think there are some other issues that need to be addressed other than if Java should be opensource or not. Plus, by what I have read their community procces looks fine.

    --
    "Thanks to the remote control I have the attention span of a gerbil."
  106. JNI ugly/cumbersome? by Gr8Apes · · Score: 1

    It works, and it works well. And it's something that is much easier and elegant to use than, say, CORBA. Just because it's not as elegant as .NET is like saying lemons aren't as nice to eat as oranges, much less apples. .NET is targeted at running multiple languages on a single platform, java is targeted at running a single language on multiple platforms. Minor different in target audiences.

    --
    The cesspool just got a check and balance.
  107. solutions by Mr.+Underbridge · · Score: 1
    I'd like to know how "not let any 3rd party distribute their own Java" qualifies as open sourcing Java. See Open Source Definition

    It's "open" in the sense that you can see it. I don't think many of us are interested in a pedantic analysis of terms that mean something specific to one group and something general to another. In other words, not all of us subscribe to the Gospel according to Stallman, Perens, or whoever. You knew what he meant, so did the rest of us, let's move on.

    What's more likely is that any 3rd party can distribute their own "Java", but they can't call it "Java". without Sun's permission because Sun owns the trademark.

    That would help with confusion, but would still create dilution. I don't blame Sun for not wanting incompatible versions, even if they're not called Java (which obviously they couldn't be without permission that would certainly never be given). Even still, I agree with g'parent, access to view code without distributing it makes more sense.

  108. Onno Kluyt is irrelevant by ajagci · · Score: 1

    That's not so; this week at Javalobby Sun JCP Director Onno Kluyt states that looking at Java sources does not taint

    What Onno Kluyt says on Javalobby is legally irrelevant. What matters is what the license says and the license says you are tainted. And that's not hypothetical either: Sun has caused other companies problems with those clauses.

    and is willing to answer FSF questions on the issue.

    If Sun's licenses require Onno Kluyt to answer questions, then Sun's license is not written clearly enough. Sun needs to fix their licenses, not try to explain away deficiencies in their licenses in legally non-binding PR talk.

    Sun likes to talk a lot of PR talk, but they are unwilling to address concerns by putting their licenses in clear, unambiguous terms. And after half a dozen years of waffling on legal issues, one has to conclude that Sun isn't ever going to fix these legal problems.

    Besides, at this point, there isn't any reason to look at Sun's source code anymore anyway. There is nothing of technical interest in Sun's source code, and in practical terms, Sun's legal control over the Java standard and their Java-related patents mean that trying to create an open source implementation of Java is pointless anyway.

    1. Re:Onno Kluyt is irrelevant by aled · · Score: 1

      Almost every licence I know (IANAL) is confusing and subject to interpretation, even GPL. I agree that's not legally binding but that was not my point. JCP has agreed in the past that open source implementations should be accepted, which is more than you can say of MS.

      --

      "I think this line is mostly filler"
    2. Re:Onno Kluyt is irrelevant by ajagci · · Score: 1

      Almost every licence I know (IANAL) is confusing and subject to interpretation, even GPL.

      Sure, but the way in which the GPL is confusing is different from the way Sun's licenses are confusing. At issue is a specific and crucially important area in which Sun's license is unclear.

      Furthermore, the GPL gets updated periodically in response to input to try to make it clearer, but while Sun has changed their licenses, they have left the contamination and compliance clauses as vague and dangerous as always. The only conclusion we can have is that they want it that way: they want to be able to say one thing ("Java is open") but still have the option to pursue a different legal course.

      JCP has agreed in the past that open source implementations should be accepted,

      I have no idea what that statement is supposed to mean. JCP isn't a person, and "agreeing" has no legal force if it isn't written in the licenses.

      This kind of on-going vagueness is exactly the problem with Sun: they talk a lot and promise a lot, but they deliver much less in writing.

      The fact is that, under the current set of licenses, there cannot be a fully open source implementation of Java because Sun effectively can always gain control over any such implementation.

      And Sun is quite proud of this, too: it's their stated policy to guarantee WORA across all implementations. That policy is fundamentally incompatible with open source or independent implementations. And it sums up the problem with Java: Sun's standards suck, yet they have the power to enforce them and do so.

      which is more than you can say of MS.

      No, it is less than you can say of MS. C#, the CLR, and large parts of the .NET APIs are unquestionably open and can be freely implemented. Furthermore, Rotor clearly does not contaminate you because its license explicitly guarantees you that it does not.

  109. REAL facts by 110010001000 · · Score: 1

    The facts are that .NET is an extremely capable platform for both small and large solutions. The combination of dev tools + languages + framework + documentation is UNMATCHED in the industry. Sun should be damn worried, since .NET is only in its second generation.

    Its no wonder that Sun is bringing back all of their founders that have brains. They are concerned about the direction that Java tech is going.

  110. I'm not sure this is true. by OmniGeek · · Score: 1

    As another poster pointed out (but it's worth repeating) GPLing Java won't prevent Microsoft from "polluting" it.

    Sun owns the Java spec, also the trademark. Would Open-Sourcing Java necessarily allow MS to pollute it? I would think that such a polluted version would still violate the specification, hence could not be called Java or Java-compatible, or a Java implementation; trademark law and all that. True, it might be a bit more tedious to sue MS for calling it any of the above, but what essential protection would Sun lose here?

    --

    "My strength is as the strength of ten men, for I am wired to the eyeballs on espresso."
  111. Learn from Apple + Darwin and Open Source the JVM by iradik · · Score: 2, Insightful

    I don't know about the libraries, but Sun should definitely open source the JVM. I mean that's something where Sun would really benefit, and would still maintain control. Much like the way Apple benefits from developers working on Darwin, without losing control of OS X.

  112. Re:Learn from Apple + Darwin and Open Source the J by iradik · · Score: 2, Insightful

    Then it's conceivable that GNU, IBM, Sun, and Apple could all work on a unified JVM.

  113. Um... hello? by GreyWizard · · Score: 1

    Have you not looked around lately? In addition to virtual machines from Sun, IBM, HP, BEA and the like there are plenty of crufty proprietary clean-room implementations from tiny vendors who support them poorly. There are even high quality free software versions such as Kaffe and gcj/gij. A bewildering array of Java forks already exists and as it is these are often incompatible in strange ways, not least of which that most lack features found in Sun's J2SDK 1.2 and higher. And then there are the various forks that Sun perpetuates, such as J2ME and J2EE.

    The likely effect of making Java free software would be to make at least the free software virutal machines *more* compatible, not less. People in the free software community actually want their virutal machines to be as compatible as possible and consider operational differences to be bugs. Notice efforts like GNU Classpath which tend to un-fork free implementations. The major obstacle to compatability is the need to create clean-room implementations of absolutely everything, and making the J2SDK free software would solve that problem.

    --
    Not all those who wander are lost.
  114. MS paranoia is founded! by wizardmax · · Score: 1

    Tell me this. What would stop MS from shipping a version of Java that it calls, lets say 'Java Lite'. Now what MS would do is simplify it by stripping all the 'extra' features. Of course it distributes it back to the community as GPL. Now, what you have is 90% of user computers running a crippled version of Java and there is nothing you or the GPL license can do about it. I like the fact that there is only 1 Java and it works for me (nearly perfectly) everywhere. I am happy enough with the JCP (Java Community Process). I am a Java developer and I am happy! Leave it (me) be!

    --


    Free speech is getting expensive...
  115. Re:Open Source Java by ajs318 · · Score: 1

    Yes, BSD-style licencing is a serious pitfall; IMHO the BSD licence as it stands is overly permissive, in that it allows you to modify something ever so slightly and then lock up the source code. The GPL is unpopular with many corporations, almost certainly because it forbids precisely that.

    Dual licencing, a la MySQL, might work; but it could lead to a division between the "paid" and the "Free" versions, depending on what the terms of the commercial licence say about distributing modified versions. But maybe I'm just being pessimistic; it would be nice to see something done well for once, and the ability to include a JVM as part of a downloadable Linux distribution would certainly be a Good Thing.

    --
    Je fume. Tu fumes. Nous fûmes!
  116. back to history? by Arioch_BDV · · Score: 1

    Hey, then let's look at Pascal (say, Component Pascal - latest Wirth's creature) - it is Pascal that created the very terms of "p[ascal]-code" and "virtual machine" :-)

    And read about Lilith project - CPU was designed for Pascal, OS was written in Pascal, Office components were written in Pascal, etc :-)

    BTW, i've heard that "esmertech" made some Java-based realtime environment "Jbed" sized less that 300Kb. Don't know nothing but rumours though.

  117. Java is bad, as it is VM? but Mono is too! by Arioch_BDV · · Score: 1

    Is Mono (or better and faster www.DotGNU.org) closer to native code than Java?

    I hope sooner or later SuperCompiling (www.refal.org) will be completed for Java, then .NET will go to sleep.

    On the other hand, let Java be highly optimised server environment, and let .NET be relativelly slow client environment (non-optimised but enough for Office-like needs), why not ?

  118. Kaffe? by Anonymous Coward · · Score: 0

    I know this is about Sun's sources itself being opened, but what about Kaffe?

  119. Java, who needs it when he got Lisp? by boelthorn · · Score: 1
    Still in college, are you?
    University. ;-) But how is this related? You can write a quick and dirty message-passing OO system in about 30 minutes in ANSI Common Lisp ... I learned nothing about Lisp sofar in my lectures, but did find a job where I can code Common Lisp for money.
  120. Missing the point. by GreyWizard · · Score: 1

    There are a few in the Opensource community that would love all software to roam "free" in all sense of the word, but I for one do not think that Opensource is the answer to every problem.

    People who want to see all software "roam" free don't necessarily believe that this is the answer to every problem either. We do think it is the answer to some problems, though. For instance, it is a potent cure for vendor lock-in and protects important freedoms that we value. What problem does the proprietary approach to software solve that is worth giving that up?

    Meanwhile, you seem to have completely missed the point that the article in question makes. The author spells out clear and convincing reasons why in the particular case of Sun and Java, a free software license is the right tool for the job -- not the job of making free software advocates happy, but rather for making Sun a dominant player in the information technology industry. He doesn't say that every software package should be free software.

    If suddenly there are 50 versions of J2EE on the market, each with its unquie traits, which do I run? How do I know that the app I program will work on the others?

    This is already the case. There are already a bewildering variety of Java virtual machines with unique traits available. Sun, IBM, HP, BEA and so on offer their own brand of JVM. Clean-room varieties of all shapes and sizes exist. Most are proprietary software. Why would making the Sun implementation free software aggrivate this problem? Most likely it would make things better as many vendors would use the Sun code to increase the compatability of their own versions.

    This is why a lot of developers won't port to linux, especially desktop applications: too many variations.

    This is nonsense. First of all, Windows is not a single operating system. In the last decade Microsoft has deployed NT, 95, 98, 2000, XP, ME and CE systems out there (I'm probably forgetting a few), and each is different in subtle ways. Somehow this collection of platforms manages to get plenty of applications. Second, a much more important reason vendors don't port to GNU/Linux is that they judge the available market to be too small for the effort. Remember that BeOS didn't go anywhere, and there was just one variation of that. Third, many developers do port to some subset of GNU/Linux systems successfully in spite of the variations. Some just pick a popular distribution such as RedHat. Of course, people creating free software applications can just wait for patches from people who prefer this or that obscure distribution. Meanwhile, a great deal of innovation is quietly proceeding in the many distributions available.

    I see the same potential of Java, to become slpit into so many forks, that it defeats the purpose in the first place.

    Perhaps your crystal ball needs a bit of polishing. At any rate you've given no convicing reasons why we should expect a free software release of the Sun JDK to result in forks. Most of the variety in free software comes from completely separate applications that share no code at all. That's not a fork. Actual forking is rare and usually happens for good reasons. Even then, much compatability is often preserved. For example, some RPM packages can be installed just as easily on RedHat as on distributions derived from it.

    Another good example is a good friend that is developing a support ticket application for the company he works for. I asked him, "Isn't there several GPL'd apps outhere that could installed within a couple hours?" He responded of course, but he put it this way: "I like to use my own code and not other peoples. Its a lot less messy that way." and I see his point.

    This is completely irrelevant. Not only does it have nothing to do with Java or this discussion, but it is completely unrelated to the difference between free and proprietary software. I could tell rather similar stories about avoiding messy proprie

    --
    Not all those who wander are lost.
  121. Re:Java, who needs it?/Bytecode vs. native code by GreyWizard · · Score: 1

    I'd like to have a VM for C++ *and* Java. That would surely rock and end some of the flamewars.

    So would I, but please let's not make it anything like the tortured and ugly Java Virtual Machine. I suggest using MMIX (Donald Knuth's updated virutal machine developed for demonstrating algorithms in assembly for his books). Start with a high quality free software implementation of this and make use of the GCC back-end for its instruction set, and all that's left are some browser plugins. Every language GCC supports (including Java) should work with this approach.

    (*)- The often stated security argument (java has no pointers and is therefore inherently more secure than C++) would fall with C++ on a VM.

    Not quite. The virtual machine doesn't really understand pointers at all, so implementing C++ on it -- which would probably involve simulating pointers using byte arrays -- might produce code with faulty security assumptions, but it would not enable malicious code to escape the sandbox. I'm not convinced that the lack of pointers as a security feature is really all that effective, but it will take a better argument than that to make progress on the issue.

    --
    Not all those who wander are lost.
  122. Assorted grumbling by GreyWizard · · Score: 1

    I am also tired of all the "Java-should-be-Open-Source" by people who have never bothered to spend 10 minutes looking into the JCP and how Java IS currently Open Source and how Java is NOT run exclusively by Sun anymore. Every couple days/weeks, I log onto Slashdot and someone else is making these presumptious claims without looking into the facts.

    No doubt this situation is complicated by the fact that "Java" means several dozen things, but Java (meaning the Java Developer Kit) is NOT Open Source. As a result, it is impossible to distribute it with any operating systems without obtaining some sort of permission from Sun. This is a real problem, especially for freely redistributable systems like Fedora and Debian.

    As for the Java Community Process, while it is much more open than it could be, it is NOT Open Source. As a result, there are ongoing problems with free software projects such as JBOSS. Though Sun has taken some steps to address these, there is more work to be done. Surely you're right that there is plenty of ignorance in the Slashdot community that works against Sun, but the truth is there are real problems created and perpetuated by choices Sun has made and continues to make.

    2) The coder wrote it in AWT

    I like the concept of the AWT. A consistent look and feel for applications is desirable. Also, having as much as possible of the system -- and especially the fundamentally non-portable things -- implemented in a more efficient language[1] is a good thing. All of the advantages of Java are application focused, which may be why things like JavaOS never went anywhere. The trouble with AWT as I see it is that the interface caters to the lowest common denominator, which is backwards. An interface should cater to the highest common denominator and emulate features on systems that don't have them.

    Sure, use a Java tree widget on platforms that don't have tree widgets, but give me an AWT interface that makes it impossible for me to tell that native code isn't being used without a special query. This lets the system improve as the underlying platform does without forcing anyone to rewrite code. Methods that can't be supported can throw exceptions (runtime exceptions please -- I loathe checked exceptions).

    The problem I have with Swing is that it has so many bells and whistles that I don't need or even want, but nevertheless have to pay a performance cost for. I use GTK+, so I've already got a theme engine. An AWT backed by GTK+ would give my applications a consistent look of the sort I want. This will happen before long because of gij, but exposing all of GTK+ would either require more widgets or non-portable code.

    [1] Please don't pester me with breathless praise of HotSpot here. I understand and agree that it is in principle possible for dynamically compiled Java code to be faster than C code in some cases. However in practice this just doesn't happen. All of my C applications run significantly faster than equivalent Java applications for all cases I have ever tested. I use Sun J2SDK 1.4.2 for this kind of testing.

    I also concede that higher productivity can outweigh higher performance in many cases, and that some programmers do better in this regard when using Java. I'm not one of them. My productivity is consistently with object oriented C (and even C++). Feel free to presume that this is because I don't know this or that important facet of using Java effectively, but try not to think about how this undermines the argument that Java is easier to use. ;-)

    --
    Not all those who wander are lost.
    1. Re:Assorted grumbling by malachid69 · · Score: 1
      ...but Java (meaning the Java Developer Kit) is NOT Open Source. As a result, it is impossible to distribute it with any operating systems without obtaining some sort of permission from Sun. This is a real problem, especially for freely redistributable systems like Fedora and Debian.

      Please explain this further. Debian should have absolutely no problems (even less than FreeBSD, who do distribute their own JDK), since Sun provides the Linux JDK for free. Are you saying that the problem is that they can not download it and put it on the Debian CD for redistribution? If that is the entire problem, why can't they do it like the BSD port system, where the makefile downloads the most recent one and installs it?

      I am not clear why you prefer AWT. It is less efficient, uglier, etc. Swing doesn't have to be slow, and is cross-platform (the same hexagon widget is easy to implement regardless of platform).

      All of the advantages of Java are application focused

      That is not really true. I have the PTSC JavaChip (haven't gotten around to using it for anything). I also have a TINI board (currently running telnet, ftp, http) on the network. Since the Java chips are 32-bit with only 8-bit operands, they are able to grab 4 instructions and use 1 every clock cycle, unlike the Intel chips that regularly take 4 clock cycles to grab and use 1 instruction. In these examples, Java is great for the hardware.

      Now, after writing that, I realize you said "application" not "software". Oops. What do you mean by this? Do you mean that it is no good for server software (which it is even better for than GUIs), or do you mean that it is not good for things like device drivers? If that is the case, I would recommend taking a look at the various JSRs and Sourceforge, you might find some things that suprise you... like USB drivers for Java. I do agree, however, that I would like a little more control over what I send over the network interface. Currently, unless it has recently changed, we are limited to TCP and UDP.... I would rather be able to construct a byte[] for an ICMP packet or something and send that. Not sure if there is any intention of allowing such a thing.

      runtime exceptions please -- I loathe checked exceptions

      You've REALLY got to be kidding. That is one of my biggest problems with Smalltalk! Let me explain my position as clearly as I can... Every single time you see any application crash in your OS, that is a runtime exception. Every single time you have decided not to use program X or program Y because it crashes all the time, you quit using that program because of runtime exceptions. Every runtime exception that a user runs into makes your application (and your development skills) look unprofessional and sloppy. If every single one of those were checked exceptions instead, then the user would at least be popped up some message that said there was a problem and to contact such-n-such. Or, click here to send the details to support. But, although you CAN catch runtime exceptions, the fact that they are not checked means that you wll most likely miss many of them. My point is this, runtime exceptions make your programming look sloppy, while checked exceptions prevent you from sending shoddy software to the customer.

      An AWT backed by GTK+ would give my applications a consistent look of the sort I want.

      Regarding the Swing/AWT + GTK. You say that, instead of using Swing + GTK (which you can currently do), you want them to make it possible for you to use GTK on AWT. You do realize that the act of doing that (besides not working very well because of the AWT being heavy components) would require that they add a Theme engine to AWT so that you COULD use the GTK. Basically, for them to add the functionality you want into AWT, they would pretty much have to rewrite Swing. If you are having problems with Swing applications have performance problems, then post your code on a Forum somewhere and ask everyone if there is some way to op

      --
      http://www.google.com/profiles/malachid
  123. Re:Java, who needs it?/Bytecode vs. native code by sploxx · · Score: 1

    > tortured and ugly Java Virtual Machine
    I did not want to be that explicit since I am no *expert* in the JVM, but it seems to be not really well implemented.
    I have found an interesting thing, an alleged internal java memo from sun:

    http://www.internalmemos.com/memos/memodetails.p hp ?memo_id=1321

  124. More assorted grumbling by GreyWizard · · Score: 2, Insightful

    Are you saying that the problem is that they can not download it and put it on the Debian CD for redistribution?

    Yes. Other more subtle problems of a similar nature lurk here as well.

    If that is the entire problem, why can't they do it like the BSD port system, where the makefile downloads the most recent one and installs it?

    That isn't the entire problem, but even so a BSD like port system is not a good solution for everyone. For example it doesn't work well for people who have low bandwidth or inconsistent connections. Obviously you're right to point out that Java is somewhat accessible to Debian and FreeBSD users, but that is not what Open Source means. I use the Sun JDK on Fedora for everything GCJ doesn't currently do. Still, significant problems would be solved if Java were more open.

    I am not clear why you prefer AWT.

    I am more pleased with the concept of AWT than with the actual implementation. As you say, it is dreadful. However, as I understand it -- do correct me if I'm mistaken -- Swing is built on top of AWT, which means that while it doesn't have to be slow, it can't plausibly be much faster. Also, AWT is certainly as cross-platform as anything else in Java.

    Do you mean that the look and feel varies by platform? I consider that a good feature in principle since I prefer applications to be consistent across a desktop. Clearly that's a matter of taste though, and there's no accounting for it. Naturally the lack of GTK+ and Qt based AWT implementations makes things much uglier than they need to be in practice.

    I usually find myself implementing lighweight components in AWT, but then I generally use HTML and forms backed by Python for everything they can support and wheel out Java only for custom widgets. I suspect that if I were writing entire applications with Java I would grudgingly prefer Swing in spite of the look and feel issue.

    Since the Java chips are 32-bit with only 8-bit operands, they are able to grab 4 instructions and use 1 every clock cycle, [...]

    This is not an advantage that is unique to Java. Donald Knuth's MMIX architecture has the same property and there is a GCC back-end so C, C++, Fortran, Java and other languages can be used with it easily. Unlike the alleged .NET language neutrality no changes to syntax are required. Even standard libraries only need to be changed enough to make low level system calls work.

    What do you mean by ["the advantages of Java are application focused"]? Do you mean that it is no good for server software (which it is even better for than GUIs), or do you mean that it is not good for things like device drivers?

    I mean the latter. (I don't dispute the utility of Java for server software, but I prefer Python for a variety of reasons.) Well, actually, I mean that the advantages of Java are not especially compelling for system software in general. A Write Once Run Anywhere kernel seems a bit nonsensical. Similarly, running system daemons on top of a virtual machine seems unlikley improve anything.

    USB device drivers are an interesting counter-example, though I think the notion that software which communicates with a device over a USB bus is a "device driver" is a bit misleading and conceals what makes USB great: it transforms something that was once clearly system software into something more like application code.

    Every single time you see any application crash in your OS, that is a runtime exception.

    That's an interesting way of looking at things. Are you saying all exceptions ought to be checked exceptions? Does that include NullPointerException and OutOfMemoryError? Plenty of shoddy software that doesn't deal with these gets sent to customers. What makes exceptions useful in the first place is that they allow parts of a program to ignore problems that they couldn't reasonably do anything about. Checked exceptions take that advantage away, often tearing enorm

    --
    Not all those who wander are lost.
    1. Re:More assorted grumbling by malachid69 · · Score: 1
      For example it doesn't work well for people who have low bandwidth or inconsistent connections.

      I can see that. So, really, what we need is a solution where an open-source OS (thus alleiviating their fear of M$ practices) could include it on the install disc?

      as I understand it -- do correct me if I'm mistaken -- Swing is built on top of AWT

      From the way I understand it, AWT uses Native Peers to talk to the OS, and that is why they are considered heavyweight. Swing uses actual drawing routines (pixels, shapes, etc) to draw the screens (which is why they can implement Theme options easily). However, at the VERY top level, there is an AWT component for the main window. The difference, I think, is that for Swing, that is the ONLY one. I could be wrong there.

      Do you mean that the look and feel varies by platform? I consider that a good feature in principle since I prefer applications to be consistent across a desktop. Clearly that's a matter of taste though, and there's no accounting for it.

      Well, with Swing, you have the option of your application looking the same on every platform, OR the option of your application looking like other native applications (to an extent on Windows). For Linux, however, they really do have great theme support, especially if you use the SkinL&F.

      I usually find myself implementing lighweight components in AWT

      I don't think that is technically possible. I believe using AWT components at all is considered heavyweight because of the way they interact with the OS. Many problems that people report with Swing is actually because the developer mixed AWT and Swing, and things get screwed up when overlayed. Really should not mix AWT (heavyweight) with Swing(lightweight).

      but then I generally use HTML and forms backed by Python for everything they can support

      Honestly, I usually use XML (and JAXB specifically) for all data -- local, remote, etc. I know a lot of people say XML adds a lot of complexity or whatever, but I find it extremely easy since I add one line to my ANT build script and I have OOP access to a specific XML format.

      I suspect that if I were writing entire applications with Java I would grudgingly prefer Swing in spite of the look and feel issue.

      I still don't understand. AWT is the one that looks really ugly, Swing has the look-n-feel/theming options.

      Well, actually, I mean that the advantages of Java are not especially compelling for system software in general.

      I disagree. I prefer writing all of my BSD software (and am in the process of replacing all my httpd, ftpd, sshd, smtpd, etc) in Java, because then I don't have to be tied to any specific OS. I write it on M$, copy-paste it to BSD, and email it to my friend running his Mac laptop. That is the most compelling reason anyone could choose any specific language. Especially since (with NIO) it seems to be extremely efficient.

      A Write Once Run Anywhere kernel seems a bit nonsensical.

      I am actually working on something like that, because I think that idea is the perfect solution. Make a Java-based OS on CDR(W), and run it on and i386, mac, ps2, dreamcast, etc. Much cheaper, in the long run, then writing a different kernel for each one. And definitely much easier to maintain and keep all versions up to date. Realistically, I haven't gotten very far yet, but I am working on putting a team together.

      Similarly, running system daemons on top of a virtual machine seems unlikley improve anything.

      Actually, the last time I was unemployed, I spent 2 weeks and wrote a NIO replacement for Apache (actually uninstalled Apache on my system after people 30 hops away told me mine was faster). Since I lost the code, I am currently rewriting it, and using JMX as the management interface (as a way to teach myself JMX) and find that performance is actually REALLY good, especially when using NIO.

      software which communicates with a device over a U

      --
      http://www.google.com/profiles/malachid
  125. Different front-ends going to JVM backend by Keybounce · · Score: 0

    I haven't looked at this since Java 1.0 or 1.1, so this might be out of date.

    Java "binaries" are restricted in two ways:

    #1: It must fit the machine's CPU -- the byte ocde sequence which is legal for the JVM.

    #2: It must fit the restirctions imposed by the class loader.

    #2 is critical. Years ago, there was an Objective C compiler that compiled to Java byte code. The implementation managed to do everything except (if I remember correctly) poseAs, and I'm not sure about categories (I believe that did work, don't quote me).

    The problem? It was legal JVM code, but not legal according to the class loader.

    C++ and Java are NOT closely related. Years ago I worked for a company that had a data architechture that started from (and still needed to support) 8 bit device drivers on IO boards; at the other end, they ported a large C code system into Java, and made it instantiable -- specifically to permit multiple copies of this large system to run at the same time. The entire high end of the system needed to suport all of C++, Java, and Objective C (this was running on Mac Os X).

    The design results? C++ was the limiter. Both Objective C and Java were effectively identical -- either of them could do what the other could do, they could talk to each other (apple's native bridge), etc. But C++ was highly limited. The inheritance system of C++ is vastly weaker and more limited, the bridging for C++ had to be completely manual, etc.

    I'd be suprised if you could get a C++ compiler to compile to a Java backend. It seems to me that the basic assumptions of the languages is just too different.

  126. Language Differences by GreyWizard · · Score: 1

    I can see that. So, really, what we need is a solution where an open-source OS (thus alleiviating their fear of M$ practices) could include it on the install disc?

    Yes, that would be a considerable improvement. Note though that there are plenty of other benefits of making j2sdk free software, both for the world at large and for Sun Microsystems. I thnk the parent article on LinuxToday makes the case for that quite well.

    From the way I understand it, [...] there is an AWT component for the main window.

    This matches my (somewhat rusty) understanding of things.

    Well, with Swing, you have the option of your application [...] looking like other native applications

    I've not tried this, but I suspect that things will not work the way I want them to because, as you pointed out, Swing uses Java code to do the drawing of components. I want the buttons, scroll bars and other widgets to use whatever GTK+ theme I have configured. I also want it to change dynamically at runtime if I alter my GTK+ theme. Using GTK native peers would accomplish this easily, but to do it in Java code seems impractical.

    I don't think that [implementing lighweight components in AWT] is technically possible.

    I should have been more clear about what I mean. I create subclasses of java.awt.Component and override the paint() and update() methods. According to the API reference this creates a lightweight component with no native peer, much the way Swing does. A JButton is a subclass of java.awt.Component too.

    I usually use XML

    I do that as well. This has advantages over relational databases in places where absolute performance is not critical. I meant that for user interfaces I use Python CGI scripts that generate a web based user interface. (I keep meaning to try mod_python, but so far in spite of my best efforts I've been unable to make my Python code slow enough for this to be worthwhile. Imagine invoking a new Java VM for every incomming web process!)

    I still don't understand. AWT is the one that looks really ugly, Swing has the look-n-feel/theming options.

    I didn't mean that I think Swing is ugly (or that AWT isn't ugly -- though really the problem is that Motif is ugly and AWT uses Motif). I meant that the look and feel doesn't match my desktop GTK+ theme as I mentioned above.

    I prefer writing all of my BSD software (and am in the process of replacing all my httpd, ftpd, sshd, smtpd, etc) in Java, because then I don't have to be tied to any specific OS.

    I suppose time will tell and I wish you luck with the project, but I'm skeptical. Packages such as Apache (and even OpenSSH, which does run on Windows) are quite portable. All one saves with Java is a compile step, and while this is a powerful advantage for applications I think the dynamics of system software are less affected by it. Most people get their operating systems on CDs and through vendor updates, so code mobility is not a concern.

    On the other side, I believe performance will suffer, particularly on non-Windows platforms where the Sun VM is grotesquely slow. Non-blocking I/O is indeed efficient (though it is best to combine it with threading for SMP systems), but this feature is at least as easy to use in C.

    I am actually working on something like that, because I think that idea is the perfect solution. Make a Java-based OS on CDR(W), and run it on and i386, mac, ps2, dreamcast, etc.

    Again, good luck but I'm skeptical. Ultimately you will need something very much like a Unix kernel to talk directly to the hardware and implement the Java VM. I'm also not convinced that maintenence will be much easer. Most C projects separate and minimize platform specific code. A JavaOS would still need testing for each platform, and for the same reasons. Note that Sun and IBM have tried and failed to create a viable JavaOS already. That do

    --
    Not all those who wander are lost.
    1. Re:Language Differences by malachid69 · · Score: 1
      Using GTK native peers would accomplish this easily, but to do it in Java code seems impractical.

      Swing implements GTK through com.sun.java.swing.plaf.gtk. I don't honestly know how difficult it would be to have the Swing team add the ability to ask the OS which theme is current, but it would probably be a hell of a lot easier than rewriting all the native peers to use AWT instead. They have been very responsive to my inquiries before, so I would highly recommend it if that is something you really want.

      According to the API reference this creates a lightweight component with no native peer, much the way Swing does. A JButton is a subclass of java.awt.Component too.

      Looking at the page you referenced, what it said was A lightweight component is a component that is not associated with a native opaque window. So, I guess the Component class itself is not associated with a Peer... utilizing any of the other AWT classes should cause it to be heavyweight. In fact, here's the list of AWT Peers from java.awt.peer in 1.5:

      ButtonPeer,CanvasPeer,CheckboxMenuItemPeer,Checkbo xPeer,ChoicePeer,ComponentPeer,ContainerPeer,Dialo gPeer,FialDialogPeer,FontPeer,FramePeer,KeyboardFo cusManagerPeer,LabelPeer,LightweightPeer,ListPeer, MenuBarPeer,MenuComponentPeer,MenuItemPeer,MenuPee r,MouseInfoPeer,PanelPeer,PopupMenuPeer,RobotPeer, ScrollbarPeer,ScrollPanePeer,TextAreaPeer,TextComp onentPeer,TextFieldPeer,WindowPeer

      Imagine invoking a new Java VM for every incomming web process!

      I don't need to do that. I start up a couple threads/selectors for each port, but I have no need to start a new process or thread for each request. I did look into using some of the Apache java mods, but I couldn't get them to work right.

      I meant that the look and feel doesn't match my desktop GTK+ theme as I mentioned above.

      Swing can, if we can determine which one is current... then again, maybe the GTK theme in 1.5 DOES use the currently selected GTK theme? Have you tried GTK in 1.5 to test it?

      All one saves with Java is a compile step

      After working for companies that build everything on Windows, Linux, Solaris, HP-UX, AIX, AS/400, etc.... I can't tell you how happy I am to only compile once. I no longer have to modify the makefile every time we try to build X or Y on platform Z... it really is a HUGE timesaver for the developer.

      In addition, I have downloaded services for my BSD box (that were newer than the Port Collection), and been completely unable to figure out how to get them to compile properly, and fix the errors. Had they distributed it as a jar (especially over JNLP), I would not have had to go through all that hassles, and those services would be currently running.

      On the other side, I believe performance will suffer, particularly on non-Windows platforms where the Sun VM is grotesquely slow.

      I am not sure where you have been running it, but the Linux JDK on my 350MHz BSD box has no apparent speed problems at all. And I haven't even tried JDK 1.5 on BSD yet, which should be faster still.

      Non-blocking I/O is indeed efficient but this feature is at least as easy to use in C.

      How so? It is extremely easy to use in Java. I wrote a couple base classes (which I learned how to do originally from this article), and now all I have to do is call super() and call startServer(port).

      On the flip side, I have done some select() work in C(not C++) and found that the behavior was inconsistent between the various platforms I mentioned above. Some of the functionality wasn't implemented on a couple of the platforms, and some of the functionality behaved completely different with Winsocks 2. It took me less time to write the NIO base classes for Java than to debug the s

      --
      http://www.google.com/profiles/malachid
  127. And this was very odd because they hadn't any feet by GreyWizard · · Score: 1

    I don't honestly know how difficult it would be to have the Swing team add the ability to ask the OS which theme is current, but it would probably be a hell of a lot easier than rewriting all the native peers to use AWT instead.

    Why would I bother? As I said the GCJ and GNU Classpath developers are already doing this for me. Furthermore, I think having Java code that somehow emulates the current GTK+ theme would be much more effort and perform much worse than rewriting all the native peers. After all the native peers are *designed* to be rewritten for each new platform Java is ported to. All that is really involved is using JNI to bind constructors and methods to the appropriate underlying GTK+ functions. Simple.

    Looking at the page you referenced, what it said was A lightweight component is a component that is not associated with a native opaque window. So, I guess the Component class itself is not associated with a Peer...

    Exactly. I usually place my lightweight custom components inside an applet window and integrate them into a web application. Using Swing would be overkill in such cases. I suppose that technically I'm not using much of AWT other than the event model and graphics processing routines it shares with Swing.

    I don't need to [invoke a new Java VM for every incomming web process].

    Of course you don't. That would be insane. The point I was trying to make is that this is *not* insane for all but the most demanding Python applications. I think this says something troubling about Java performance in general, and in fact people at Sun think so too. That's not to say that a clever Java programmer can't make a reasonably fast application, just that he or she has an uphill battle.

    Performance is not critical for every aspect of every application. And the good news is that the Python example suggests that much of the Java performance problem is due to poor virtual machine implementation rather than any fundamental flaw. That means things might get better over time. I don't think Java will ever be able to compete with C for speed in all cases, any more than C will ever be able to compete with assembly for speed in all cases. But surely Java could catch up to Python. Releasing a free software version of the Sun VM might bring that about since it would give more people a chance to make suggestions and test experimental virtual machine variants.

    After working for companies that build everything on Windows, Linux, Solaris, HP-UX, AIX, AS/400, etc.... I can't tell you how happy I am to only compile once. I no longer have to modify the makefile every time we try to build X or Y on platform Z... it really is a HUGE timesaver for the developer.

    Actually I've worked for companies that build for each of those platforms except AS/400 (plus some others like s/390 Linux). I never found the compile isses terribly challenging, and we used scripts to automate nightly and release builds. Much more problematic were things like the lack of a good pseudo-random number generator on many proprietary platforms, and these issues often affect Java no less than C or any other language.

    In addition, I have downloaded services for my BSD box (that were newer than the Port Collection), and been completely unable to figure out how to get them to compile properly, and fix the errors. Had they distributed it as a jar (especially over JNLP), I would not have had to go through all that hassles, and those services would be currently running.

    I think you underestimate how much this kind of problem affects Java. Just try installing two or more major enterprise Java applications. Each will require a virtual machine from a specific and often mutually exclusive subset of vendors and version numbers. Perhaps someday the Java platform will be less of a moving target and this argument will be stronger. A free software virtual machine

    --
    Not all those who wander are lost.
  128. Re:And this was very odd because they hadn't any f by malachid69 · · Score: 1
    All that is really involved is using JNI to bind constructors and methods to the appropriate underlying GTK+ functions. Simple.

    But, since Swing ALREADY has the GTK theme, I have to disagree that writing all the peers is any easier than calling a single line of code to switch themes.

    I usually place my lightweight custom components inside an applet window and integrate them into a web application.

    Hmmm.. I haven't done any applets or AWT for a couple years now. I always use Swing over JNLP. However, the key to my decision is the fact that AWT is always considered unacceptable in the looks department. If you need it embedded, I can understand using an Applet -- but otherwise, JNLP provides MUCH better performance (only updates jar-diffs if the jars have changed, instead of redownloading everything every time you hit the page). The apps I have been doing are Swing over JNLP -- and we have not had any speed problems. I can't speak to the overkill, as I think I would have to brush up on AWT to even remember how to do it.

    The point I was trying to make is that this is *not* insane for all but the most demanding Python applications

    I disagree. Starting a new process for every incoming request is insane regardless of language. Otherwise, Thread Pools wouldn't exist.

    Python example suggests that much of the Java performance problem is due to poor virtual machine implementation rather than any fundamental flaw

    I think it more likely that the Apache mod is the problem, rather than the Java VM. Pure java apps from the command-line seem to run very fast on both Windows and BSD. It is only from Apache that they seem slow.

    I think you underestimate how much this kind of problem affects Java. Just try installing two or more major enterprise Java applications. Each will require a virtual machine from a specific and often mutually exclusive subset of vendors and version numbers.

    Personally, I have installed a few different applications that installed their own JRE, and I submitted bug reports to those companies because A) They were installing JDK 1.2 when I already had 1.4.2 on my system; B) They were ILLEGALLY installing the JRE (which gets back to your original point). Of course, if they were using the Sun licensing correctly, their installer could have installed the newest JDK (or none at all since I had it installed already) instead of forcing me to install and end-of-lifed product.

    As far as the enterprise software... I have installed a few of them, but none of them were pure-Java (WebSphere for example). The problem is that many of those Enterprise applications are being installed by big companies that have to have 100% control instead of doing 10 minutes of research to find the best way. JNLP is definitely the best Java solution for installs, but unfortunately very few big companies use it yet.

    I think an open-source VM (not GPL, since they wouldn't use that) would not alleviate the problem you mention. Currently, the problem is that many times they include an end-of-lifed version of Sun's JVM. Making it so that they each have a slighty modified VM would definitely make this problem worse. IBM would have an extra opcode that no one else has, Oracle would have some pre-processing stuff that no one else has. It would more likely fracture the java stability instead of encouraging they all distribute the same thing. As an easy example, if they wanted to distribute Linux on their CD -- which would they use? RedHat? Slackware? Debian? Their own distro? I think you get my point.

    Compare the sizes of the resident images, or use the "time" utiltiy (under Cygwin on Windows).

    I am not sure what you are talking about with the "resident images", but using Cygwin is NOT the correct solution for measuring time on a Java platform. If you would like the correct source code to accurately measure how much time is taken on ANY platform, I can send you a copy of my class I wrote to test encryption/de

    --
    http://www.google.com/profiles/malachid
  129. Orange Marmalade by GreyWizard · · Score: 1

    But, since Swing ALREADY has the GTK theme, I have to disagree that writing all the peers is any easier than calling a single line of code to switch themes.

    This is misleading for two reasons. First, what Swing has already is NOT what I want. Since it is necessarily written in pure Java, the best it can do is emulate the look and feel of GTK. Perhaps it can do a reasonably good job, but it seems unlikely to be perfectly correct in all cases and even a small visual inconsistency can be distracting. Swing is less likely still to quickly adjust to GTK theme improvements over time. Of course, having a Swing theme that emulates the *default* GTK theme and one that emulates the *current* GTK theme whatever it may be are different things. I very much doubt that Swing does or will ever do the latter. (I notice that gtkswing clearly states that only the default theme is supported. Is that the theme you are referring to?) Remember that new GTK themes are created all the time, just as Swing themes are. How could Swing possibly have support for all of them, and why would the developers even bother trying? Using AWT peers will give complete and correct support for the current -- not just the default -- GTK theme no matter when it was created or where it came from, for no additional effort.

    Second, much of the work needed to write such peers has already been done. Perhaps the GCJ team is reusing work done for java-gtk in which case the heavy lifting is already finished. Either way, from my perspective it's just a matter of waiting. Meanwhile my AWT applications, while terrifically ugly, are quite functional and will get better looking with no code changes when the GTK peers appear.

    Starting a new process for every incoming request is insane regardless of language. Otherwise, Thread Pools wouldn't exist.

    Not so. Starting a new process for every incomming request is perfectly sensible if performance requirements are within a certain range (this depends on the hardware in use and what other applications need to run on the same machine). Clearly a persistent approach such as mod_python or servlets will give better performance, but this is not always needed and is always more complex. That means more time consuming to create and debug. Consider a company that needs a prototype of a web application, for instance. A few simplistic Python scripts can be put together easily and will likely be more than fast enough to get the point across. Doing the same thing with Java is not likely to be a good idea, because the syntax is more complex, because there is a separate compile step (Python compiles to byte-code as it runs) and because performance is sure to be dire.

    I think it more likely that the Apache mod is the problem, rather than the Java VM. Pure java apps from the command-line seem to run very fast on both Windows and BSD. It is only from Apache that they seem slow.

    I think it is impossible for Apache to be the problem, because it has no idea what language a CGI script is written in and therefore would have to deliberately introduce delays to slow down Java. In my experience the overhead required to bring up a Java virtual machine is considerable, and this makes command-line performance unacceptable for many purposes where Python does fine. This point of view is seconded by engineers at Sun Microsystems in the internal memo I linked to last time.

    Personally, I have installed a few different applications that installed their own JRE, and I submitted bug reports to those companies because A) They were installing JDK 1.2 when I already had 1.4.2 on my system; B) They were ILLEGALLY installing the JRE (which gets back to your original point).

    Point A is quite deliberate and I expect your bug reports don't get far before being stamped WILL-NOT-FIX. These vendors want a JRE that they can depend on to behave pre

    --
    Not all those who wander are lost.
  130. Re:Green Eggs and Ham by malachid69 · · Score: 1
    course, having a Swing theme that emulates the *default* GTK theme and one that emulates the *current* GTK theme whatever it may be are different things. I very much doubt that Swing does or will ever do the latter. (I notice that gtkswing [sourceforge.net] clearly states that only the default theme is supported. Is that the theme you are referring to?) Remember that new GTK themes are created all the time, just as Swing themes are. How could Swing possibly have support for all of them, and why would the developers even bother trying?

    I have no idea what the current Swing implementation does, as I don't run GTK. That's why I asked if you had yet tested it. What I thought it *might* be doing is something like SkinL&F, which, as I understand it, can read the GTK and KDE themes themselves, thus emulation should be completely accurate. I am not sure if that is what the Swing team did or not. I also am not sure if they have the JVM setup to use the default GTK theme, or the current one, since I am not using GTK myself. That is why I suggest you try it and see. It *might* do what you want *now*.

    Consider a company that needs a prototype of a web application, for instance. A few simplistic Python scripts can be put together easily and will likely be more than fast enough to get the point across.

    A few scripts might get the point across, but every time I have seen this situation, they stress tested the website to determine how well it would scale. Any time something needs to scale or get stress-tested, I can't believe launching processes is the best way.

    Doing the same thing with Java is not likely to be a good idea, because the syntax is more complex, because there is a separate compile step (Python compiles to byte-code as it runs) and because performance is sure to be dire.

    That would depend on the approach. Serlvets or JSP, perhaps. In my approach, I simply load a compile .class file. You COULD precompile the script (whenever the timestamp changes) automatically inside the server, thus getting the type of behavior you are expecting... Personally, I leave it at letting them run javac, as all Java developers are used to that -- but I agree, the web-app concepts all suck for distribution. That's why I am not using them in my server.

    In my experience the overhead required to bring up a Java virtual machine is considerable

    I am not having that experience on FreeBSD or WinXP. I can not attest to Linux speeds, but I am using the Linux JDK on my BSD box. I use Java for a lot of command-line stuff (sometimes using a batch file to launch it so I don't have to worry about where it or the supporting classpath are)... but I never have any speed problems. It launches, parses the command line, determines what to do, and can be done before my finger leaves the enter key.

    What I was saying was that I think the Apache java mod was the problem... I mean, they did make one that is supposed to be A LOT faster, but I could never get it to compile.

    These vendors want a JRE that they can depend on to behave predictably and whatever version you have on your system -- whether newer or older -- is considered too great a risk.

    I understand these arguments, and have heard them many times from previous employers. The fact is, however, they complain about performance and bugs, but prefer to stick with one that is no longer being patched instead of using the one that fixes their issues. They should have at least 1 engineer that is able to test their system with the newer JDKs. I mean, realistically, it is a very stupid argument on their part - they spend a lot of money (billions, depending on the company) because tech support calls increase as people are using a newer version that doesn't work with their product. In my personal experience, the only problem (other than the 'assert' or 'enum' changes) is that they specifically create a JVM in JNI code, which breaks because the u

    --
    http://www.google.com/profiles/malachid
  131. Two Gold Stars by GreyWizard · · Score: 1

    What I thought it *might* be doing is something like SkinL&F [l2fprod.com], which, as I understand it, can read the GTK and KDE themes themselves, thus emulation should be completely accurate.

    I am skeptical that it is even possible to do what I want with pure Java for the reasons I already mentioned, but I'll check it out.

    A few scripts might get the point across, but every time I have seen this situation, they stress tested the website to determine how well it would scale.

    One stress tests a prototype to learn how much performance needs to improve, not because it is expected to be fast enough for production use. The point, after all, is to get something work ing quickly to prove that the application as proposed can get the job done. Python CGI scripts are great for this purpose. Clearly a mod_python application will beat the performance of a CGI Python version, and I have never said anything to the contrary.

    The point is that Python is more flexible than Java because (among other reasons) it permits this simple and effective techinque. Servlets and JSPs are demonstrably more complex to create and install. Python is also every bit as portable and free of pointer problems as Java. And as for simplicity, try teaching both to a non-technical user. I could go on, but you've clearly made up your mind that Python is no good ages ago.

    I am not having [the experience of considerable overhead required to bring up a Java virtual machine] on FreeBSD or WinXP.

    I suspect that is because you don't compare apples to apples by considering equivalent C programs. No doubt once one is conditioned to accept the sluggish start-up time of a Java virtual machine everything seems fine. I use shell scripts for many kinds of task and find them much snappier than command-line Java programs even though they often need to launch several processes running C programs.

    However, without hard numbers which neither of us have at hand or are inclined to go generate, this is just so much subjective chatter. Go ahead and use command-line Java programs if you find that helpful for getting work done. I'll stick with C programs and shell scripts, thanks.

    The fact is, however, they complain about performance and bugs, but prefer to stick with one that is no longer being patched instead of using the one that fixes their issues.

    This supposes that later editions of Java simply fix their issues and introduce no new problems. That simply isn't true. Backward incompatible changes constantly creep into Java releases. On the basis of technical intuition, I doubt that the increase in support calls on this issue will cost more than the extra development time needed to identify and work around version compatability problems. Of course, any such problems that escape the testing net will generate those extra support calls anyway. Apparently the professional bean counters whose job it is to make such calculations for those vendors based on hard numbers agree.

    In my personal experience, the only problem (other than the 'assert' or 'enum' changes) is that they specifically create a JVM in JNI code, which breaks because the user has a more up-to-date system then the distro.

    And you think it is acceptable that JNI code can break between minor VM releases? I don't. Release a new interface and implement the old one interms of it, if necessary. Anyway there are plenty of actual classes that change their behavior between releases, so JNI is not the whole of the problem by any means.

    Back to that argument? If Sun were to make the single class 'Object' GPL, it would cut off most of their development support.

    Back? Please consider what I actually wrote: Actually, if Sun does choose to release a free software virtual machine they will certainly use the GNU GPL or something like it. Are you really unable to distinguish between the Object class and a virtual machine? As far as making Object GPL goes, y

    --
    Not all those who wander are lost.
  132. Re: damn, a red checkmark by malachid69 · · Score: 1
    And you think it is acceptable that JNI code can break between minor VM releases?

    Well, the problem is in the C code. The situations I have seen, they hard-code the location to load jvm.lib/dll from. In my experience, that was the reason they included Java at all, so they would know where to find that library. Unfortunately, however, if I am calling into their program, and it loads their archaic version of Java, some of the features my code might rely on may not exist yet. The problem was in the C code, though, not the Java code.

    Back? Please consider what I actually wrote: Actually, if Sun does choose to release a free software virtual machine they will certainly use the GNU GPL or something like it.

    Back, because discussions about "Open Sourcing Java" was what started this conversation.

    Are you really unable to distinguish between the Object class and a virtual machine?

    No, but the assumption is that they would have to OpenSource the core libraries as well as the VM itself.

    As far as making Object GPL goes, you may be right that this would require derivative works to be released under a GPL compatible license (and you may be wrong, depending on how a court chooses to interpret a derivative work)

    Even if a court chose to say otherwise, doesn't the whole concept that EVERYTHING extends Object (even if you don't do it explicitely) require GPL, by the Spirit of the GPL?

    I doubt that Sun would do such a thing. More likely they would release the virtual machine under the GPL and the class libraries under the LGPL.

    That, IMHO, would be a much more reasonable approach. I have nothing against the LGPL. Although, wouldn't LGPL allow two different vendors to have a DIFFERENT implementation of the Object class, perhaps with its own methods that only exist on their platform? That could break cross-platformability.

    but your claim that this license hurts the open source community is completely preposterous

    Since many companies have made me rewrite things because the current implementations were GPL (ie: reinvent the wheel), I claim this hurts the open source movement. Had those library been LGPL, for example, those companies would have allowed me to use and even improve upon (and return to the community) those libraries. Since they were GPL, we were not even allowed to download them. I can honestly say that I think the LGPL helps the community, but the GPL ensures that the same code gets rewritten over and over and over instead of being improved upon by those that can not use the GPL for one reason or another.

    And by the way, how exactly do you reconcile despising the GPL while rallying to the defense of the much more restrictive license under which the Java virtual machine is currently distributed? That must be an interesting bit of mental gymnastics, and I'd like to know more about it.

    Simple, I can license my Java programs under any license I want. The GPL restricts my rights to my own code -- the Java licenses do not. You say that they are more restrictive, but proof-in-point is that GPL puts restrictions on your Java program that Sun/Apache/etc do not. When I can do whatever the hell I want, I do not feel restricted.

    Upgrading a platform does not have to make it unstable

    If you look at the FreeBSD documentation, they explain that the reason they do not do lots of updates like Linux does is because sometimes those patches introduce problems, whereas BSD makes sure they don't before releasing them.

    I never said Java was unusable, it just requires obnoxious steps like bundling a known good virtual machine version in some cases

    I have never had to bundle a JVM with any software I have written. In fact, the last major software I did, the readme (html-based) had a link (JNLP) to launch the application, and a link to install the JRE if the JNLP link failed. But, I didn't have to include a JVM.

    Linux is an excellent example. A c

    --
    http://www.google.com/profiles/malachid
  133. GPL, Fragmentation, Exceptions, Javadoc by GreyWizard · · Score: 1

    No, but the assumption is that [Sun] would have to OpenSource the core libraries as well as the VM itself.

    Certainly. But the assumption that the libraries must be released under the same license as the virtual machine doesn't follow from that. Even the Free Software Foundation notes that the GPL is not the best license for all software. They recommend a BSD-style license sometimes, as for the Vorbis libraries. More to the point, the FSF already distributes GNU Classpath, which implements much of the Java standard library, under an LGPL-like license.

    Anyway, I think we can all agree that retroactively revoking the freedom to create non-GPL licensed Java libraries and applications (even if such a thing could be done, which seems improbable to me) would be quite impolite and not especially clever. People who wish that Sun would release the virtual machine under the GPL or some other free software license most likely do not mean anything of that sort. I certainly don't.

    Since many companies have made me rewrite things because the current implementations were GPL (ie: reinvent the wheel), I claim this hurts the open source movement.

    I would believe you if said this hurt you or the company that paid you to rewrite things, but I don't see how this hurts the free software movement (sorry, but I don't particularly care about the open source movement). Reinventing the wheel is the price one pays for not cooperating with the community.

    Had those library been LGPL, for example, those companies would have allowed me to use and even improve upon (and return to the community) those libraries. Since they were GPL, we were not even allowed to download them.

    Why did you put "return to the community" in parenthesis? This is the *only* germane part of your argument. No amount of harm to you or your company counts when asking whether the GPL harms the free software community, of which a company that forbids even *downloading* anything licensed under the GPL (an idiotic policy, by the way) is clearly not a part. Also, you are failing to distinguish between GPL applications and GPL libraries. Anyone willing to return improvements to the community should have no problem with the former. Do you admit that what you really despise is the use of the GPL for libraries and not the license itself?

    As far as libraries go, even the FSF notes that whether the GPL or LGPL is preferable depends on strategic concerns. When there are competing proprietary libraries they prefer the LGPL for exactly the reason you mentioned. Only when a library is unique and innovative do they recommend the GPL. In such cases the loss of your potential improvements is probably made up for by the incentive this gives to more sane organizations to make their application free software. Remember that helping people to create proprietary applications is not the goal of the free software community.

    Even if a court chose to say otherwise, doesn't the whole concept that EVERYTHING extends Object (even if you don't do it explicitely) require GPL, by the Spirit of the GPL?

    Not really, no. The GPL was created in order to prevent companies from improving free software and releasing the result under restricive proprietary licenses instead of giving those improvements back to the community, essentially tempting users away from free software using the efforts of free software developers themselves. This is essentially the situation economists call the Tragedy of the Commons. Public domain software and software that is licensed under BSD-style terms is regularly treated this way.

    (In practice free software development has turned out to be so effective that proprietary companies have trouble keeping up. BSDi isn't as successful as FreeBSD, for example. Still, that isn't the case for every project and there are other good reasons for using the GPL in many cases. For example, I don't want soft

    --
    Not all those who wander are lost.
    1. Re:GPL, Fragmentation, Exceptions, Javadoc by malachid69 · · Score: 1
      I would believe you if said this hurt you or the company that paid you to rewrite things, but I don't see how this hurts the free software movement (sorry, but I don't particularly care about the open source movement). Reinventing the wheel is the price one pays for not cooperating with the community.

      It isn't that they don't want to cooperate, but that (at least they feel) GPL doesn't give them the necessary freedoms TO cooperate. Sure, reinventing is a waste of my time and their money, but wouldn't it be better for the community (and even what they claim to be encouraging) if I were to make their product better for the whole community? The only reason I can't is because it is GPL instead of BSD or even LGPL. It hurts the open source community because they are getting less input and fixes than they would have had with ANY other license.

      Why did you put "return to the community" in parenthesis? This is the *only* germane part of your argument.

      It was an aside.

      No amount of harm to you or your company counts when asking whether the GPL harms the free software community

      The developers and companies would be willing to spend their time and money giving back to the community, but can't because they can't use GPLd software. The part that hurts the community, as in the previous section, is that they are forcing companies and people to turn away that would have helped out otherwise.

      a company that forbids even *downloading* anything licensed under the GPL (an idiotic policy, by the way)

      If I am writing a Grep utility, and I download (and thus possibly browse the source for) a GPLd version, I am breaking the spirit of the license, even if not the letter of the license, by using GPL ideas to write non-GPL code. Thus, companies (like Intel) have forbade me from downloading GPL software. It isn't that we can't download ANY GPL software, just none that has any similarity to anything that we are writing. And, to be honest, due to the spirit of the GPL, I think that is the right call -- the GPL community doesn't want their code, ANY of their code, to influence non-GPL code. You can correct me if I am wrong there.

      Also, you are failing to distinguish between GPL applications and GPL libraries. Anyone willing to return improvements to the community should have no problem with the former. Do you admit that what you really despise is the use of the GPL for libraries and not the license itself?

      It isn't always a library issue. For example, the Grep utility would be considered an application, not a library. Sure, I can improve grep for everyone -- but that doesn't help with the project I am being paid to write, since I could not link against it or anything (for say a Find button in the GUI). Since I can not use the grep application from the find button in my GUI, I am not about to download and wade through the source when I have other things I am required to do. Instead, I will have to write my own version (and thus REALLY don't want to download or wade through the original source).

      When there are competing proprietary libraries they prefer the LGPL for exactly the reason you mentioned. Only when a library is unique and innovative do they recommend the GPL.

      I understand that, but it isn't just libraries that logic applies to -- a'la Grep.

      In such cases the loss of your potential improvements is probably made up for by the incentive this gives to more sane organizations to make their application free software.

      What incentive? Even as an independant developer, I don't see that part of it.

      Remember that helping people to create proprietary applications is not the goal of the free software community.

      Yes, I agree. However, the "Open Source Community" these days seems to be more GPL vs. Non-GPL. It should not be that way. There are many non-GPL licenses that are considered Open Source, but the GPL movement discourages those (and even public domain) just as much as propriet

      --
      http://www.google.com/profiles/malachid
    2. Re:GPL, Fragmentation, Exceptions, Javadoc by GreyWizard · · Score: 1

      Sure, reinventing is a waste of my time and their money, but wouldn't it be better for the community (and even what they claim to be encouraging) if I were to make their product better for the whole community?

      You've said this before, and I've already addressed the loss of your potential input and fixes. Plenty of people much smarter than you are not troubled by the GPL and are more than happy to contribute improvements. Obviously the programmers who chose the GPL believe that losing the few people who think the way you do is more than made up for by those who will be encouraged by the GPL to make their applications free software. You are welcome to disagree, but there is a vast body of widely used GPL software out there that you need to explain. Why is over half (and that's a conservative estimate) of all free software covered by the GPL if that license harms the community?

      The developers and companies would be willing to spend their time and money giving back to the community, but can't because they can't use GPLd software.

      This is complete nonsense. Almost every Fortune 500 company is using GPL licensed software in one form or another today and many contribute improvements to the community. For instance, IBM contributes to the Linux kernel even though they also sell a variety proprietary operating system kernels. Companies that "can't" use GPL licensed software in general are simply those who have been misled by ignorant statements of the sort you are making.

      If I am writing a Grep utility, and I download (and thus possibly browse the source for) a GPLd version, I am breaking the spirit of the license, even if not the letter of the license, by using GPL ideas to write non-GPL code. [...] You can correct me if I am wrong there.

      You are wrong there. In the first place, copyright covers expression and not ideas, the dreamy hopes of proprietary software companies notwithstanding. Furthermore, one of the four fundamental kinds of freedom required for free software is to allow people to study source code and learn from it. You violate neither the letter nor the spirit of the GPL by downloading code, studying it and using ideas to inspire your own independent and original work. Go to the FSF philosophy pages and do some reading before making comments on the spirit of the license.

      What incentive? Even as an independant developer, I don't see that part of it.

      First, if you make your application free software using a GPL compatible license (such as the BSD license without advertising clause) you can link with that vast body of GPL licensed code I mentioned. That means fewer wheels reinvented and more time to focus on other aspects of the application. Second, if you actually use the GPL you need not fear that your competitors will take your application, improve upon it and use your own work against you in the marketplace without making their changes available in turn.

      I accept that this sort of thing is beyond your understanding and I don't expect to penetrate your closed mind on the matter. Still, if this incentive is so inscrutable, how do you explain the preponderance of GPL licensed code out there?

      Yes, I agree. However, the "Open Source Community" these days seems to be more GPL vs. Non-GPL. It should not be that way.

      Actually, it is not that way -- except perhaps in the minds of a few people like yourself. People who like and advocate the GPL usually don't object to non-GPL licenses. Even the Free Software Foundation, which is surely the most avid of GPL proponents, does not suggest using the GPL for all software and considers non-GPL licensed free software to be perfectly acceptable.

      I'm sorry. I am not familiar with BSDi.

      BSDi is a company that made a proprietary version of FreeBSD. They didn't succeed in overshadowing FreeBSD. This fact is often used by BSD license advocates to demonstrate that

      --
      Not all those who wander are lost.
    3. Re:GPL, Fragmentation, Exceptions, Javadoc by malachid69 · · Score: 1
      Why is over half (and that's a conservative estimate) of all free software covered by the GPL if that license harms the community?

      While that may be true on the Linux platform, I do not believe that to be accurate on either my Windows or BSD box. MOST of the software on my BSD box is free and NOT GPL.

      Companies that "can't" use GPL licensed software in general are simply those who have been misled by ignorant statements of the sort you are making.

      I don't see how it is ignorant of Intel to tell me that I can not browse, say GPLd networking code, when working on their proprietary networked application.

      At the same time, if a company wants to release a product under the Apache license or BSD license, I do not think it ignorant of them to prevent me from looking at GPL source when writing those programs.

      Do you disagree? Are you saying it is OK for me to scavenge code from GPL software to make other non-GPL free software? You make it seem like GPL is the only 'free' solution. Even IBM has their own open source license.

      You violate neither the letter nor the spirit of the GPL by downloading code, studying it and using ideas to inspire your own independent and original work. Go to the FSF philosophy pages and do some reading before making comments on the spirit of the license.

      Hmmm.. I looked at that page, and I see nothing wrong with it or the linked Categories of Free Software (which GPL is just one of). However, nothing on either of those pages show anything about the "Spirit of the GPL". However, a quick search of Google OR Slashdot will show that people quite regularly complain about projectX or licenseY breaking the Spirit of the GPL.

      It is my understanding, and I would assume that of everyone I have worked for due to their constraints, AND most people who have complained about GPL-violations; that you are not supposed to use GPL source for ANYTHING unless you make the resulting work GPL. Perhaps this is an issue that would be better resolved directly with licensing@gnu.org, with whom I will email directly to get clarification.

      First, if you make your application free software using a GPL compatible license (such as the BSD license without advertising clause) you can link with that vast body of GPL licensed code I mentioned.

      And can that resulting application be BSD-licensed? NO! It has to be GPL'd.

      That means fewer wheels reinvented and more time to focus on other aspects of the application.

      However, if the code was Public Domain, then NO ONE would question that everyone could use it without reinventing the wheel. GPL does not add this capability -- since Public Domain (BSD, etc) all have been around with that same incentive long before GPL.

      Second, if you actually use the GPL you need not fear that your competitors will take your application, improve upon it and use your own work against you in the marketplace without making their changes available in turn.

      I don't agree. First of all, there is the whole argument that MicroSoft breaks their license agreements all the time anyways -- that doesn't change.

      Even outside of that, if I have some project, say, NetBeansX as GPL -- someone can fork that code, and take all the developers to create EclipseX and thus my project is ground to a halt. Just because they are non-proprietary doesn't make them non-competitors.

      I accept that this sort of thing is beyond your understanding and I don't expect to penetrate your closed mind on the matter.

      No need to resort to name calling. Keep in mind that most BSD-advocates would say the same thing about you.

      Still, if this incentive is so inscrutable, how do you explain the preponderance of GPL licensed code out there?

      How do you explain the amount of code released under NON-GPL, ie: BSD, MIT, Apache, Artistic, Public Domain, Simtelnet, etc etc. You make it sound like GPL is the #1 license out there -- but that is only true for the linux

      --
      http://www.google.com/profiles/malachid
  134. On the effectiveness of the GPL by GreyWizard · · Score: 1

    Here is an article that offers further explanation of how the GPL helps the free software community and is even advantageous for corporations in many cases.

    --
    Not all those who wander are lost.
    1. Re:On the effectiveness of the GPL by malachid69 · · Score: 1

      That isn't what I got from reading that article. They explained that there were two camps: BSD (maximum usage of the code) and GPL (only non-proprietary use of the code). He also said that most of the developers he talked to were GPL-fans, which obviously skews the overall results.

      He did say that the BSD license is more likely to lead to widespread usage, and that GPL is not good if that is the goal.

      I think that is where you and I differ. If I had to choose between everyone (even MS) using my code or only the Linux users using my code (because that is where most of the GPL development is), I would choose widespread usage. Realistically, I wish *all* code was Public Domain -- I don't believe information should be copyrighted or copylefted -- it should be free. Everyone should have access to all information (with slight exception for personal privacy).

      --
      http://www.google.com/profiles/malachid
  135. Two and Two by GreyWizard · · Score: 1

    That isn't what I got from reading that article.

    Apparently you overlooked passages like this one:

    Why does it appear that so many of the new and most actively developed open-source projects these days are being done under the GNU license, rather than the BSD one which proponents say is more business-friendly?

    And this one:

    Likewise, IBM, SGI, and other companies don't want to contribute source code to the community if competitors can use it against them.

    And this one:

    And while some big companies such as Microsoft and Apple use BSD-based code, few of them encourage its use by others.

    I could go on, but before long I'll have quoted most of the article. Once again, the point is that many companies prefer to contribute to GPL licensed projects. That makes your claim that this license is hurting the community because companies are afraid to deal with it seem rather weak, to say the least.

    He also said that most of the developers he talked to were GPL-fans, which obviously skews the overall results.

    Exactly how does it skew the results? This wasn't an election. He was collecting arguments and attempting to understand why corporate sponsors seemed to prefer GPL licensed projects. Are you suggesting that there are BSD license advocates with powerful points to make who simply didn't bother to communicate them for some reason? Or are you just seizing a point you barely understand and waving it around as usual?

    I think that is where you and I differ. If I had to choose between everyone (even MS) using my code or only the Linux users using my code (because that is where most of the GPL development is), I would choose widespread usage.

    No, I think you have managed to misunderstand yet again. For one thing, you have failed to distinguish between running code and integrating it into proprietary applications. I have no objection to Microsoft or anyone else running my code for any purpose, studying it to learn from it, redistributing copies or improving the program for the benefit of everyone. What I don't want is to permit a situation like what happened with Kerberos, where Microsoft made proprietary changes to create incompatability and refused to release them. Notice the BSD-style license there. I also want to prevent organizations that might one day maintain my code from later deciding to make the code proprietary, as almost happened to the X Window System twice now. Again there is a BSD-style license involved. Have you ever heard of something like this happening to a GPL project? I haven't.

    I find the GPL an effective tool against that, and so do many people around the world. Maybe you don't care if your code becomes the next thing Microsoft mangles in an effort to protect market share. In that case, go ahead and release your code under a BSD license if you want, or just commit it to the public domain. Any contribution to the free software community is a good thing, so I'll not complain. But spare me the nonsense about how the GPL is hurting the community.

    For another thing, your claim that most GPL development is done on Linux is suspicious. Maybe it's even true, but it is certainly unenlightening. FreeBSD, NetBSD and OpenBSD all ship GPL licensed applications in their distribution. I am sure you are using plenty of GPL applications on your FreeBSD machine without even knowing it. I'm also sure that many capable engineers from all three projects have made valuable contributions to GPL projects over the years, just as people who prefer the GPL have nevertheless been quite willing to contribute to projects using BSD-style licenses. I know for a fact that some FreeBSD kernel hackers have contributed to the Linux kernel and vice versa. The quasi-religious schizm you imagine is mostly fictional among the people who do the heavy lifting.

    Realistically, I wish *all* code was Public Do

    --
    Not all those who wander are lost.
    1. Re:Two and Two by malachid69 · · Score: 1
      Once again, the point is that many companies prefer to contribute to GPL licensed projects.

      That may be true. Obviously, neither of us have worked for every company. However, I can tell you that every company I have worked for forbade GPL, but have encouraged me to contribute to multiple projects using Apache, BSD and SCSL licensing. Actually, even a few LGPL.

      Exactly how does it skew the results? This wasn't an election. He was collecting arguments and attempting to understand why corporate sponsors seemed to prefer GPL licensed projects.

      If I go and collect the opinions of all the people on the JCP (whom all use different licenses) or just Java-using companies in general, the results would be just the opposite. The statistics don't mean much if they are not truly representative.

      For one thing, you have failed to distinguish between running code and integrating it into proprietary applications.

      For something like the Grep utility, there is no difference if it is run from a GUI find-button; as I understand it. We will know for sure when licensing@gnu.org replies to me.

      I can understand you not wanting Microsoft to steal your code. When I first signed onto the IBM Developer site back in... 1994? There was a part of the license agreement that said you could not release any of the information to Microsoft (because of the OS2/Windows scandal). Everyone is afraid of Microsoft stealing their code and claiming it to be their own. I just don't honestly think any license will stop them, since they seem to break them all the time. Sure, they end up in never-ending lawsuits, but they still do it.

      , NetBSD and OpenBSD all ship GPL licensed applications in their distribution. I am sure you are using plenty of GPL applications on your FreeBSD machine without even knowing it.

      Yes, I know there is some GPL software on my box. My statement was just that the GPL-community is mostly made up of Linux-users. There are others, Windows users for example; but GPL and Linux go hand-in-hand. I think the percentage of GPL software on ANY Linux distro is going to be MUCH higher than it is on my FreeBSD or Windows box.

      The quasi-religious schizm you imagine is mostly fictional among the people who do the heavy lifting.

      When contributing to the Apache Ant project, they insisted I not event look at GPL code. Every software project I have worked on has insisted I not read GPL source. How is this imaginary?

      A copyleft license is in some sense an attempt to bring about exactly the result you claim to want. A world where all code was released under the GPL would not be much different from a world where all code was in the public domain. What a shame that you are incapable of putting two and two together on this point.

      That is an interesting point. At first glance, one would say that the difference is that Public Domain does not limit what you can do with the code -- but if any derivative was forced to be public domain, then you are right, it would be similar to GPL.

      I think where the difference comes in is that, until such a point where ALL code is such, there is a huge difference. I can use public domain for any project I am hired onto, but I can not use GPL code for those same projects. That doesn't mean Proprietary, even free software like Apache Ant as I mentioned earlier.

      So, while we agree with the end-result, there is a difference until then.

      --
      http://www.google.com/profiles/malachid
  136. Dish out, take in by GreyWizard · · Score: 1

    While that may be true on the Linux platform, I do not believe that to be accurate on either my Windows or BSD box. MOST of the software on my BSD box is free and NOT GPL.

    Over half of all free software available on the most important internet archives for the stuff is licensed under the GPL. Check the statistics found here. I didn't say that half of the software on your FreeBSD or Windows machines was GPL licensed. More than half the software on your Windows machine is surely proprietary. I'm sure that the FreeBSD base system is almost entirely BSD licensed. However, stroll over to the ports system. There you will find a convenient way to install GCC, Bash, Emacs, and an endless selection of powerful and useful GPL applications and libraries.

    Does FreeBSD even come with a C compiler that isn't GCC? On my FreeBSD machine "cc --version" gives me GCC output, but the first thing I do when I install such a thing is setup a variety of useful GPL applications, so I very well may have clobbered or overlooked some anonymous BSD licensed compiler along the way.

    Do you disagree? Are you saying it is OK for me to scavenge code from GPL software to make other non-GPL free software? You make it seem like GPL is the only 'free' solution.

    Are you even paying attention? I did not say it was acceptable for you to scavenge code from GPL software and place it into proprietary code. However, merely looking at GPL code will not prevent you from writing your own oringinal non-derivative but possibly similar code that does similar things. Read the GPL and tell me where it says that you can't do this.

    Even IBM has their own open source license.

    I have said over and over again that the choice of whether to use the GPL is a strategic one. Have you read the IBM public license? Here is what the FSF has to say about it:

    The IBM Public License is incompatible with the GPL because it has various specific requirements that are not in the GPL.

    For example, it requires certain patent licenses be given that the GPL does not require. (We don't think those patent license requirements are inherently a bad idea, but nonetheless they are incompatible with the GNU GPL.)

    In other words, the GPL is not restrictive enough for IBM in some cases. Meanwhile IBM contributes to GPL projects including Linux all the time, so they are clearly not allergic to it.

    However, nothing on either of those pages show anything about the "Spirit of the GPL". However, a quick search of Google OR Slashdot will show that people quite regularly complain about projectX or licenseY breaking the Spirit of the GPL.

    Good grief. Do you mean to say that the hoards on slashdot and various web logs are a better arbiter of what is and is not within the spirit of the GPL than the Free Software Foundation, the organization that created it, simply becuase the latter doesn't use the exact phrase "Spirit of the GPL" on the page?

    Perhaps this is an issue that would be better resolved directly with licensing@gnu.org, with whom I will email directly to get clarification.

    Yes, do. I'm sure you'll be back with an out-of-context quote that you've only half understood and turned upside down to make into some nefarious thing, but at least you will have had the opportunity to see learn something.

    And can that resulting application be BSD-licensed? NO! It has to be GPL'd.

    And your point is what exactly? What I said was that the GPL gives you an incentive to make your work free software, and it does that.

    However, if the code was Public Domain, then NO ONE would question that everyone could use it without reinventing the wheel. GPL does not add this capability -- since Public Domain (BSD, etc) all have been around with that sa

    --
    Not all those who wander are lost.
    1. Re:Dish out, take in by malachid69 · · Score: 1

      > Two of us have been having a very lengthy discussion about GPL,
      > what it does or does not allow, the Spirit vs. Law of the GPL, etc.
      >
      > A couple quick questions, if you don't mind.
      >
      > 1) If I am writing a Grep utility, and look at GPLd source to design my
      > non-GPL (say, BSD or Apache) version,
      > is that breaking the Spirit or the Law of the GPL?

      Look: no.
      Copy: yes.

      > 2) I create a GUI. In that GUI, I have a Find button. That find button
      > launches a GPL'd version of Grep to do the work.
      > Is that breaking the GPL if I do not make my GUI GPL? If the Grep was
      > LGPL, same question.

      We believe that if you invoke grep via fork/exec, that's probably not a
      violation of the GPL. But if you are linking statically or dynamically
      to grep, that would be a violation of the GPL.

      The LGPL would allow any of these, but with certain conditions on the
      latter two (see section 6 of the LGPL for details)

      > 3) If I were to create a Grep utility that was 10 times faster than
      > anything out there -- wouldn't it be better for the community/world
      > as a whole to release it under a BSD-like license instead of a GPL-like
      > license so that all software (OSs, Search Engines, etc)
      > would be faster? Wouldn't it actually benefit more people using a BSD
      > license than a GPL license?

      No. However, it's not always easy to see why. Your question focusses
      on a specific case. If we were going to live in a world where
      proprietary software dominated, and the purpose of Free Software were to
      improve proprietary software generally, then a non-copyleft license
      would be appropriate. But the GPL offers another option: creating a
      commons of sharing which allows everyone to benefit, but allows nobody
      to exclude others. The GPL is the engine of this commons.

      From an iterated prisoners dilemma perspective, Proprietary software is
      All-D, BSD is All-C, and the GPL is TFT. (I just noticed this analogy,
      and am not sure how strong it is).

      --
      -Dave Turner
      GPL Compliance Engineer

      --
      http://www.google.com/profiles/malachid
  137. Possible signs of a four. by GreyWizard · · Score: 1

    However, I can tell you that every company I have worked for forbade GPL, but have encouraged me to contribute to multiple projects using Apache, BSD and SCSL licensing. Actually, even a few LGPL.

    Anecdotal and irrelevant.

    If I go and collect the opinions of all the people on the JCP (whom all use different licenses) or just Java-using companies in general, the results would be just the opposite.

    Obviously you didn't notice that the original column from which the author collected his data was posted on ZDNet, which is not exactly a pillar of the free software community. Even so, I say again that this was not an election. Evan Leibovitch did not set out to compare how many people prefered the GPL against how many didn't, nor did I bring the article to your attention to show that the GPL was winning some kind of popularity contest. He started by *noticing* that the GPL was winning the *money* contest and asked why.

    Whether you admit it or not, the reality in the market place is full of evidence that the GPL does not in fact harm the free software community and in fact is probably helping to bring in companies that don't contribute to projects with less restrictive licenses. (That is not to say that companies that do contribute to non-GPL licensed free software are not contributing to free software -- they are. Think of it as a two pronged approach.)

    For something like the Grep utility, there is no difference if it is run from a GUI find-button; as I understand it.

    Running an application and using as a library are different things and are affected by the GPL differently. Anyone, including Microsoft, can freely run a GPL licensed application. No, they cannot simply transform it into a library and incorporate the code for it into a proprietary software application. That is why we must distinguish between the use of GPL code as a part of a GPL application or as part of a library. I want my code to be usable in the first way but not the second. Maybe you have different goals for your code, and if so you should not use the GPL to cover it.

    Everyone is afraid of Microsoft stealing their code and claiming it to be their own. I just don't honestly think any license will stop them, since they seem to break them all the time. Sure, they end up in never-ending lawsuits, but they still do it.

    Microsoft is forced to comply with licenses they have violated and often to pay significant damages all the time. Nevertheless, (can you tell what's coming next?) you've missed the point. I don't want *any* company anywhere to incorporate my code into proprietary software. Even if the GPL somehow just didn't apply to Microsoft it would be solving most of the problem for me.

    When contributing to the Apache Ant project, they insisted I not event look at GPL code.

    I find that claim suspicious, so perhaps you would care to back it up with some facts. I notice that the Apache Ant task guidelines explicitly mention the incompatible nature of the license they use an the GPL. I see that checking that a task does not depend on GPL or LGPL code is listed as an important step before submission. That is all quite sensible. However I see no indication there that merely reading the GPL licensed source code with a similar purpose is enough to disqualify submissions. One would think such a requirement would be well documented to eliminate confusion.

    I don't doubt that you have been given such instructions when working on propriretary products. That is how the proprietary software industry looks at these things. Such an attitude would be quite appropriate regarding most non-disclosure agreements covering proprietary software, but that doesn't mean this is a sensible policy for GPL covered code.

    Even if I concede all this nonsense for the sake of argument, it would still fail to prove that the differences between the GPL and BSD-style licenses

    --
    Not all those who wander are lost.