Slashdot Mirror


Sun Lowers Barriers to Open-Source Java

Shyane writes "Sun Microsystems is making it easier for open-source programmers to ensure their Java versions meet the company's compatibility requirements, but the deal extends only to those involved in Sun's own open-source Java project. The program grants access to its Java Technology Compatibility Kit to anyone with an open-source Java project that is based substantially on Sun's open-source Java software and governed by the GPL. Programmers need access to the test kit to prove that a project is in compliance with the Java specification. Projects that pass Sun's compatibility kit tests also can use the official Java logos for free."

144 comments

  1. Riots break out across the world... by vigmeister · · Score: 4, Funny

    as programmers discover that the test suite only runs on Windows.

    Cheers!

    --
    Atheist: Buddhist in a Prius
    1. Re:Riots break out across the world... by somersault · · Score: 4, Funny

      Riot police realise that they don't actually need to do anything when all the geeks have an allergic reaction to the sunlight, and have to rush home for more pizza and caffeine to recover

      --
      which is totally what she said
  2. Openness! by kevmatic · · Score: 3, Informative

    Finally, "open, cross-platform" Java is beginning to become open. Now I just hope it becomes more cross platform, rather than "Windows, Mac, x86 Linux and whatever-you-spend-a-million-hours-developing-an-i mplementation-for."

    Seriously, I was pissed when I found out just how bad Java support is for Linux PPC. I couldn't get an iMac to go to Yahoo! games for my grandma. :(

    Now all we need is cross-platform Flash.

    1. Re:Openness! by somersault · · Score: 1

      If it's on more than one platform, it's cross-platform. That doesn't mean that it will automatically support every processor/OS combo ever made.. do you mean now all the Linux PPC users is Linux PPC flash? Not trying to troll, just pointing out that if you want stuff available on your own platform, sometimes you're going to have to do it yourself - can't just rely on everyone else to do stuff for you. I don't know if that's possible in this case, but if it really is "open" then it should be.

      --
      which is totally what she said
    2. Re:Openness! by eln · · Score: 1

      To be fair, Java was (at least initially) heavily marketed as "write once, run anywhere". It's pretty obvious that the language doesn't come anywhere near the hype in that regard.

    3. Re:Openness! by Anonymous Coward · · Score: 1, Interesting

      IBM does a decent java implementation for PowerPC Linux. I didn't think it was too bad when I last tried it on an imac that i'd upgraded to Linux. I seem to remember that the package had a terribly obscure name and took some painful searching of IBM's web site to actually get the thing. Sadly all three of my imacs have hardware failures, and I can't remember what it was called.
      I hope that this may help you.

    4. Re:Openness! by jrumney · · Score: 1

      IBM made most of their JVMs much harder to find, or even pulled them completely about a year ago. Now I think you can only get the AIX and OS/390 versions separately, for everything else you have to get WebSphere or something else with it bundled for that platform.

    5. Re:Openness! by LWATCDR · · Score: 3, Insightful

      Yes it really has. I have run the same Java application on Windows, Linux, and Mac OS/X. If there is a good JVM you have a very good shot at your java application working.
      Yes you have to have a JVM but that is sort of a given.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    6. Re:Openness! by somersault · · Score: 1

      Yep, that's never going to be possible without the appropriate VM/emulator/decoder for every system, whether in hardware or software. Java was a cool idea, but I've never liked it in practice.

      --
      which is totally what she said
    7. Re:Openness! by Just+Some+Guy · · Score: 5, Funny

      Seriously, I was pissed when I found out just how bad Java support is for Linux PPC. I couldn't get an iMac to go to Yahoo! games for my grandma. :(

      You gave your own grandma an iMac and then put Linux on it?

      Why do you hate your grandma?

      --
      Dewey, what part of this looks like authorities should be involved?
    8. Re:Openness! by cerelib · · Score: 3, Informative

      IBM has a free version of Java, I believe up to 5.0, for Linux on PPC. I have it running on an openSUSE PowerMac. I believe this is the site to look at. They don't say PPC, but you want the pSeries version (in both 32 and 64 bit varieties).

    9. Re:Openness! by cerelib · · Score: 1

      See my reply to the OP for a link. You can still get IBM Java versions for Linux x86 and PPC.

    10. Re:Openness! by fm6 · · Score: 0, Troll

      Give us a break. So nobody's bothered to implement a proper Java for a third-place OS running on an obsolete hardware platform. Next you'll be complaining that Java isn't available for your C64!

      People seem to think it's some kind of evil plot when a software vendor doesn't support their favorite platform. The fact is, every platform you support adds a lot to your development and QA costs. If there's no business case (and there certainly isn't for any PPC platform), why should they spend the money.

      And don't hold your breath waiting for some OSS folks to port Java to PPC/Linux. Even OSS people have to eat.

    11. Re:Openness! by Anonymous+Monkey · · Score: 1

      I know, if Grandma wanted Linux you should have bought her a all in one box from PCclub and with the money you saved bought her flowers every week for two months.

      --
      We are the Borg...
    12. Re:Openness! by Bill_the_Engineer · · Score: 1

      Why the vile comment? It makes you look like an idiot, especially when you're obviously wrong. Let me list the ways:

      1. While PPC may be in your opinion obsolete on the desktop, it is still one of the platforms of choice for embedded applications. BTW, plenty of business cases for PPC too. I personally like the ppc405gpr for low power applications, and look forward to the ppc405ez when it becomes available. Tivo likes the PPC too, but I know Tivo is not exactly popular with the GPL guys.

      2. We don't have to hold our breath, just download the JVM from IBM.

      3. Linux being third-place is not necessarily a bad thing, considering the number of operating systems available out there...

      Anyway it's Friday, so relax this weekend. You obviously need the rest.

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    13. Re:Openness! by TheRaven64 · · Score: 1

      It could have been one of the old G3 (CRT) iMacs. These ran MacOS 9 well, but struggle with OS X. Putting a lightweight *NIX on them might be a good option.

      --
      I am TheRaven on Soylent News
    14. Re:Openness! by mhall119 · · Score: 1

      Yes, and Java can run anywhere you have a JVM. "write once, run anywhere" was a marketing phrase, certainly nobody believed it would run on any system anywhere without a VM. You can implement the JVM on virtually any hardware and any OS, just because a platform doesn't have a JVM for it yet doesn't mean a Java application you "write once" won't run there once they do have a JVM.

      --
      http://www.mhall119.com
    15. Re:Openness! by Just+Some+Guy · · Score: 1

      Actually, I bought an old G3 for the kids and through 10.4 and an extra 512MB of memory on it. It runs like a champ. If Grandma wants to run Doom 3, maybe not so much, but web and email and everything else she'd be likely to do with Linux on the same hardware should be fine.

      --
      Dewey, what part of this looks like authorities should be involved?
    16. Re:Openness! by ChristTrekker · · Score: 1

      No kidding. I've been hanging on to an older version of JOnAS just because I can't find a modern Java to run the newer ones with. I'm not sure I'm thrilled with some of the additions in Java 5, but the JVM continues to be refined and optimized, regardless of the language evolution.

    17. Re:Openness! by fm6 · · Score: 1

      My argument is "vile"? You're the one that's making personal comments.

    18. Re:Openness! by dubbreak · · Score: 1

      In my experience the Yahoo! games don't run properly with the Sun JVM on windows. They do seem to run well on windows using the MS JVM.

      I've tried to play some of those games against her using my linux laptop and it was hopeless. Instead we play Tetris attack using a snes over the network.

      --
      "If you are going through hell, keep going." - Winston Churchill
    19. Re:Openness! by Bill_the_Engineer · · Score: 1

      LOL

      Maybe abrasive is a more appropriate term...

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    20. Re:Openness! by RockoTDF · · Score: 1

      IBM uses the POWER architecture (PPC's big brother) in their servers and mainframes. They aren't quite the same thing, but porting it wouldn't be super hard, and would probably be a good idea given all the embedded linux stuff that runs PPC.

      --
      There is more to science than physics!

      www.iomalfunction.blogspot.com
    21. Re:Openness! by empaler · · Score: 1

      G3s... weren't those the "original" iMacs? If 10.4 works on those, I think I need to raid my mother's basement... :-p

      (btw, you probably meant threw (past tense of throw), not through )

    22. Re:Openness! by fm6 · · Score: 1
      I'll buy "abrasive". That's a pretty good description of my personality. But my personality traits have nothing to do with the validity of my arguments. Nor do they justify your using the word "idiot".

      As long as we're discussion personalities, go look up the word "patronizing".

      Anyway, now that we've thoroughly abused each other, let's look at your arguments:

      1. While PPC may be in your opinion obsolete on the desktop, it is still one of the platforms of choice for embedded applications.
      Fine, I should have qualified my statement: "obsolete on desktop systems". Though that's just a little pedantic.

      When I started using microcomputers in the late 70s, the leading desktop CPU was the Zilog Z80. That processor is still widely used in embedded applications (many of the credit card swipers use it) but nobody wants a desktop system with an 8-bit processor any more. Also "obsolete", at least for our purposes. We're talking about personal computers (in the broad sense); what's going on in the embedded world is a whole different thing. People don't play Java games on their TiVo.

      We don't have to hold our breath, just download the JVM from IBM.
      The IBM JVM supports POWER. Which of course IBM has to support, since they sell a lot of POWER-based systems. But POWER and POWER-PC are different chips, even though one is derived from the other. I'm guessing that it's wouldn't be terribly hard to make POWER software run on the POWER PC. But the fact is, nobody's taken the time to do it. Which was exactly my point: there isn't a lot of incentive to support PPC.

      Also, I notice that the IBM JVM only support Java 5. Java 6 went GA almost a year ago, and was available in Beta long before that. So even a company with IBM's resources can't provide a JVM that runs the latest Java software. How can some OSS volunteer group hope to do so?

      Linux being third-place is not necessarily a bad thing, considering the number of operating systems available out there...
      It's a bad thing in terms of getting software vendors to pay attention to you. Which is why Sun resisted porting Java to Linux for such a long time. They do now (probably because they finally got serious about supporting Linux on their servers), but only for x86. It would take more than a few disgruntled Mac/Linux users for there to be a PPC port.

      Basically, you didn't rebut any of my arguments, you just picked nits with they way I expressed them. Really, that makes you look like... No, let's not go there again.

    23. Re:Openness! by rbanffy · · Score: 1

      I suppose there will be './configure && make && make install' versions of both the JDK and the JRE.

      Eventually.

    24. Re:Openness! by Just+Some+Guy · · Score: 1

      Yes, it runs on a G3.

      And yes, I saw that the second I clicked "submit".

      --
      Dewey, what part of this looks like authorities should be involved?
    25. Re:Openness! by Rexdude · · Score: 2, Interesting
      I'm part of the Java6 dev team..in addition to linux, IBM Java is also available for the following platforms-
      • Windows (IA32 and AMD64)
      • Linux(IA32,AMD64,PowerPC 32/64)
      • z/OS(31 and 64 bit-yup,not a typo, z/OS uses a 31 bit addressing scheme)
      • AIX (PowerPC 32/64)
      • z/Linux 31 and 64 (Linux on system z)
      • See here for the early release program.
      --
      "..One hosts to look them up, one DNS to find them, and in the darkness BIND them."
    26. Re:Openness! by moosesocks · · Score: 1

      I've been using UbuntuPPC for the past few months.

      It's excellent, and honestly doesn't feel any different than the X86 version apart from the profound absence of binary-only software such as Flash, Google Earth, and even a barely usable JVM.

      It's delightfully ironic that the rest of the operating system (written in languages like C and C++) works perfectly fine, whereas Java is completely non-functional.

      Can we please stop treating Java as if it's a serious language? It's a complete and total failure on so many levels. Writing an application in C, and using a cross-platform toolkit such as GTK+ could easily avoid many of the headaches of Java, whilst offering vastly improved performance and usability.

      --
      -- If you try to fail and succeed, which have you done? - Uli's moose
    27. Re:Openness! by also-rr · · Score: 1

      You can run Yahoo Java games on Linux PPC using the IBM JRE. I wrote a set of installation instructions for it that cover installation and setting up the Firefox plugin.

      The installation isn't Grandma level, but once it is up and running it is no different to Yahoo games on Windows.

    28. Re:Openness! by kevmatic · · Score: 1

      Well, you could buy a PowerPC-based Mac less than a year ago. C64-level obsolete, clearly. Not to mention that there's lots of other systems out there that still use it (Pegasus, etc.).

      The IBM PPC Java implementation is actually pretty fast, but when I used it a year ago, only Konqueror and an ancient ancient version of Mozilla supported it, and many websites (like yahoo games) won't run in Konqueror, even if you change the browser ID. And its not made for it, but rather Websphere (gag) and the like. You aren't going to be browsing the net on a POWER server.

      I guess I got irritated over the fact that, even though there are so many excellent computer systems out there, thanks to Java and Flash, you can only really browse the Net on 32bit Windows, Macs, Solaris, and Linux 32bit x86. The rest you have to hack your way around.

      Now that I've typed that out, though, it seems its not as bad as I thought, but still, its limiting on the Linux front.

      Flash is so slow, anyway, that it is more or less useless on anything slower than 1Ghz or so. And 500Mhz machines struggle to play card games written in Java...

    29. Re:Openness! by PinkFreud · · Score: 1

      Last time I tried this (about a year ago), it was still rather unstable. It's also pretty much the only java environment available for LinuxPPC, too, so IBM hasn't had much of a reason to update it.

    30. Re:Openness! by Bill_the_Engineer · · Score: 1

      Well, in hopes of keeping this comment from making the thread any more personal...

      But first:

      Nor do they justify your using the word "idiot".

      I never called you an idiot. If you re-read my first post you'll see that comments, like the one you made, make you look like an idiot. Sure I was patronizing you, but face it nothing is more counter productive than a post saying "what do you expect?". Obviously he could expect an open source JVM, since nobody rushing to throw away their PPC Macs after they upgraded to Intel ones (especially the one running Linux on them). Didn't mean to hurt your feelings, however you didn't consider the feelings of the person you replied to. Enough said on that item.

      We're talking about personal computers (in the broad sense); what's going on in the embedded world is a whole different thing. People don't play Java games on their TiVo.

      Things have changes since the 70's. Computing is evolving toward appliances (iPod, iPhone, Treo, etc.) rather than desktop general computing. With wireless networking, people expect to take their computing/communications with them. So when I speak of embedded applications, I am not only talking about simple 8 bit chip applications (there is a SmartCard Java) but also mobile computing where power consumption is a concern.

      So in response to you, while people may not currently play Java games on their TiVo nothing prevents this from becoming a reality. Many set-top machines uses Java. If you have digital cable, you may be using Java to look at the program listings. Oh and people play Java games on their cell phones... (*cough* embedded).

      I'm guessing that it's wouldn't be terribly hard to make POWER software run on the POWER PC. But the fact is, nobody's taken the time to do it. Which was exactly my point: there isn't a lot of incentive to support PPC.

      Also, I notice that the IBM JVM only support Java 5. Java 6 went GA almost a year ago, and was available in Beta long before that. So even a company with IBM's resources can't provide a JVM that runs the latest Java software. How can some OSS volunteer group hope to do so?

      Java6 isn't really an issue (maybe IBM is waiting to see what happens with OpenJava) since Java6 apps aren't widely used yet. As for being able to run Java on PPC here is a link http://www.yellowdog-board.com/viewtopic.php?t=158 1&sid=4c349bb1bc422cb54a968bb97535feeb of a volunteer helping someone else with Java.

      It's a bad thing in terms of getting software vendors to pay attention to you.

      I'd be hard press to name a software vendor that is not paying attention to Linux... Even Microsoft is paying attention.

      Basically, you didn't rebut any of my arguments, you just picked nits with they way I expressed them.

      Yes I did, while criticizing how you expressed them..

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    31. Re:Openness! by fm6 · · Score: 1

      Nor do they justify your using the word "idiot".

      I never called you an idiot.

      Nor did I say you did. But you used the word, and that's just as rude. Good manners is not something you can claim on a technicality.

      If you have digital cable, you may be using Java to look at the program listings. Oh and people play Java games on their cell phones... (*cough* embedded).
      Yeah, yeah, I know all about embedded Java. I used to work for the Java part of Sun. (I even have some Java software on my cell, though I haven't bothered with any of it since shortly after I got the phone.) But you're talking a special embedded version of Java. Which Sun supports because they get big license fees for doing it.

      Go to the Java download page. Pick a Java SE or EE bundle and click its "download" link. Look at all the different platforms supported. Where's the ARM package? The Freescale package? There isn't one. So how did Sony Ericsson get a Java runtime onto my cell phone?

      What they did was go to Sun and ask to license one of their embeddable versions of the Java runtime. These runtimes, unlike the regular runtimes, aren't freely available. (They also use older versions of the JVM, so you can't use all the language features of Java 6.) You have to jump through a few hoops just to get an evaluation copy.

      There is, I just discovered, an embeddable Java (from Sun) for the PPC. So why does Sun support Java for embeddable PPC but not Linux/PPC? Because there's no money in it. Like I said before, the embeddable world and the desktop world are completely different marketplaces.

      Java6 isn't really an issue (maybe IBM is waiting to see what happens with OpenJava) since Java6 apps aren't widely used yet. As for being able to run Java on PPC here is a link http://www.yellowdog-board.com/viewtopic.php?t=158 1&sid=4c349bb1bc422cb54a968bb97535feeb of a volunteer helping someone else with Java.

      None of which is responsive to my main point, that IBM only supports Java for POWER not PPC. And the instructions on the page you link don't actually work. But never mind. Let's just stipulate that I was wrong about IBM supporting Java on PPC. (I've found some references to them doing so, but nothing recent.) But if your aim is to understand my arguments (as opposed to jumping on every real or imaginary mistake I make) then you will recall that I my original "vile" post was in response to a guy who complained that PPC/Linux wasn't supported. His assertion may have been wrong, but I stand by the argument I made in response: no software vendor can afford to support every platform.

      You just gave an example of that yourself. Somewhere, somebody wants to run a Java 6 app on his zSeries mainframe and complaining to his IBM rep that they don't support Java 6. His rep is telling him that there isn't enough demand for Java 6 yet to justify porting it to all of IBM's hardware. Which is the same argument I'm making

      I'd be hard press to name a software vendor that is not paying attention to Linux... Even Microsoft is paying attention.
      "Paying attention to Linux" is not the same thing as "creating and supporting all your applications on Linux". And it's even further from "creating and supporting all your applications on Linux/PPC." There might somebody be a x86/Linux version of Microsoft Office (MS's reasons for not doing it in the past seem to be political.) But I'll bet my bottom dollar that there will never be a PPC/Linux version

      Hey, here's another example. Sun is more than "interested in" Linux: they sell a lot of x86-based systems to folks that plan to run Red Hat or SUSE on them. And they will provide support for such a configuration. They also sell SPARC-based systems. (Indeed, there are still folks at Sun who'd be happier if they only sold SPARC-based systems.) But do they support Linux/SPARC? They do not. The market isn't big enough.

    32. Re:Openness! by Anonymous Coward · · Score: 0

      hint: use IBM jdk.. IBM likes the Power architecture.. Sun not so much..

    33. Re:Openness! by Allador · · Score: 1

      Can we please stop treating Java as if it's a serious language? It's a complete and total failure on so many levels. Writing an application in C, and using a cross-platform toolkit such as GTK+ could easily avoid many of the headaches of Java, whilst offering vastly improved performance and usability. You're horribly overgeneralizing.

      Java and C/C++ serve completely different needs. No one is writing system software in Java, heck even the JVM is written in C++ (iirc).

      But on the flip side no one is going to write a web-based enterprise financial accounting system (or just about any business app) in C or C++. It just doesnt make sense.

      For places where Java can provide a solution (ie, its possible to solve the problem in Java) then Java is probably a better solution. Because it'll be done in 1/10th the time, and for a fraction of the development costs.
    34. Re:Openness! by Allador · · Score: 1

      heck even the JVM is written in C++ (iirc). Allow me to recant this piece. Just did some quick looking and it seems that there are some JVMs written in Java, and that Sun may have done an original bootstrapping and now its all java.

      Unfortunately, its friday night and I dont have time to do the research before fun-time. :)
    35. Re:Openness! by setagllib · · Score: 1

      That may be the most misinformed thing I have heard in recent weeks. Have you actually *written* any applications in C with GTK+? Do you have even the slightest idea of how brutal it is compared to Java with Swing or SWT?

      You can use C++ with gtkmm which improves matters a lot, but then you get the problems of C++. Anyone who seriously thinks C++ isn't a bad language design doesn't know what they're talking about. There are so many trivial ways that everything can go horribly wrong, almost all of which are completely solved in the Java language and platform.

      It is even more difficult to write fast C++ code, requiring a lot of manual decision making about inlining, copy constructors, references vs values, when to use reference counts, when to make things virtual, etc. And if you get everything absolutely right, you'll *still* be beaten by JVM6 which has very powerful runtime optimizations like escape analysis and lock coarsening. Not to mention J2SE is a guaranteed base library which includes scalable networking, threading, user interfaces, and database abstraction.

      Yeah, Java is not the best language, but it's a far sight better than C++. You don't know until you write a whole bunch of code in many languages. Just don't even argue about it.

      --
      Sam ty sig.
    36. Re:Openness! by Ash-Fox · · Score: 1

      Do you have even the slightest idea of how brutal it is compared to Java with Swing or SWT?
      Not as brutal as not having a Sun JVM for Linux on PPC, ARM, m68k, Sparc etc. and expecting to write a java application that will work on those platforms which don't have any Sun JVMs available.
      --
      Change is certain; progress is not obligatory.
    37. Re:Openness! by setagllib · · Score: 1

      For one thing, gcj can compile Java source and bytecodes to native code, which AFAIK works for those architectures even in the complete absence of a Sun JVM. But then, wherever that runs, so does gij. It's not as good as Sun's, but it does work for a lot of applications.

      For another, I'd rather have to run a qemu for x86 JVM than code C + GTK for any usefully large application. I would be a lot happier using, say, PyGTK. But that's not what I replied to, which was a moronic suggestion that applications should actually be written in C + GTK. There are a lot of better compromises like PyGTK, but unfortunately that's still not the same market as Java, which is for making applications easy to develop and deploy and fast to run.

      Call me optimistic, but with a more liberal license on the JVM, I think new unofficial ports will spring up rapidly. And then they'll be in the same position as, say, Python - no support contract but it does what you want. Java is only growing, on both the server and desktop, and is gaining a lot of value with new languages (Jython, JRuby, ...) and new technologies (JVM optimizations, ...). And its license is GPL + Classpath exception, which we can agree is very good. So as long as the value of Java is high, it will be ported.

      --
      Sam ty sig.
    38. Re:Openness! by Anonymous Coward · · Score: 0
      People don't play Java games on their TiVo.

      Sure do!

    39. Re:Openness! by trims · · Score: 1

      I wouldn't bet anything on GNU configure ever being supported by the Sun JDK as the build method. configure is way to hairy and broken (from the development side) to handle something as complicated as the JDK. Look for possibly ANT to replace the hacked Make system currently used.

      --
      There are always four sides to every story: your side, their side, the truth, and what really happened.
    40. Re:Openness! by Ash-Fox · · Score: 1

      For one thing, gcj can compile Java source and bytecodes to native code, which AFAIK works for those architectures even in the complete absence of a Sun JVM. But then, wherever that runs, so does gij. It's not as good as Sun's, but it does work for a lot of applications.
      Unfortunately it does not work with many applications you have the source to, like Azureus, Freenet.

      In many cases, I do not have the sourcecode to the application I want to use either, so gcj really isn't all that useful for unsupported platforms. Every JRE I have encountered, seems more of a joke. I have tried really hard in making something that works across multiple JREs -- The end result is that I have had to resort to writing everything for Java 1.1, compile the binaries for 1.1 (as well as using deprecated functions which are only supported in 1.1).

      Sorry, it's just a big mess, there isn't a solution right now.
      --
      Change is certain; progress is not obligatory.
    41. Re:Openness! by rbanffy · · Score: 1

      I don't think the JDK is that complex. There are a couple native executables and a whole lot of .class and .jar files that can be compiled as soon as the JRE is up and running.

      While configure is hairy and ugly, building a JDK from source does not need to be complicated. If it is, something else is broken.

    42. Re:Openness! by setagllib · · Score: 1

      I know, it shits me too, and I'm hoping the GPLness will mean that the Sun JRE is ported to more platforms and the problem is solved that way.

      GCJ does not require source though, but it does require Classpath to contain the right parts. Swing is pretty poorly supported, but SWT is its own code so that works just fine. Azureus is based on SWT, so maybe it has a chance. Has anyone tried GCJ on Linux/PPC? It's already done for x86 and amd64, as my Ubuntu package lists suggest.

      $ aptitude search azureus
      p azureus - BitTorrent client
      p azureus-gcj - BitTorrent client (native code)

      --
      Sam ty sig.
    43. Re:Openness! by Zonk+(troll) · · Score: 1

      If you're running Ubuntu on a ppc chip (I'm running it on a G4 PowerBook right now), then all you need to do is:

      sudo apt-get install ibm-j2re1.5

      It runs Eclipse and JAP very well.

      --
      "The Federal Reserve is a fraudulent system."--Lew Rockwell
      End The FED. -
  3. don't need this by rubycodez · · Score: 0

    software only needs to have its own built in unit tests to verify that it works, Sun can butt out.

    1. Re:don't need this by eln · · Score: 2, Interesting

      Sun's test suite isn't just to verify your code works, it's to verify your implementation of Java complies with the standards before they allow you to slap the Java logo on it. It's a good way to keep things open while still maintaining control over the Java standard, and preventing fragmentation of the language.

    2. Re:don't need this by Anonymous Coward · · Score: 3, Informative

      Translation: No Microsoft MSJava++ with Sun's Java logo on it.

    3. Re:don't need this by Anonymous Coward · · Score: 2, Insightful

      Bullshit. Unit tests can at most prove that a single piece of software "works" in an internally consistent fashion. They might be marginally sufficient when you're building a single-platform doghouse-sized app. They're a very small part and hardly sufficient part of the process of building a skyscraper, though, and can't verify that an app will work in any specified environment.

      This Sun tool seems to validate your implementation against some standard.

      By validating your code against some reference standard where that standard is defined as meaning cross-platform safe, your code is cross-platform safe.

      That's a huge part of "write once, run anywhere". Denigrating that validation with some pap about small unit tests is asinine.

    4. Re:don't need this by Bill_the_Engineer · · Score: 1

      Wish I could mod the parent post up...

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    5. Re:don't need this by rubycodez · · Score: 1

      the issue is of letting Sun decide what is compatible or not. Let an outside body working from the published standards do that. And this Sun package is a set of unit tests. And as for cross-platform, of course well designed unit tests can check that.

    6. Re:don't need this by Anonymous Coward · · Score: 0

      Good idea. The language designer should specify what's in the language and what's not.

      Oh wait - that's Sun.

  4. Too little, too late by Anonymous Coward · · Score: 0, Troll

    But then again, Java always was slow.

    (ya ya, except when it's called an assembly language math function in its library)

  5. So what about gcj? by martin_the_geek · · Score: 1

    What is happening to the FSF's java project now?

    --
    Regards, Martin IT: http://methodsupport.com Personal: http://thereisnoend.org
    1. Re:So what about gcj? by loubs001 · · Score: 5, Informative

      Fortunately the GNU Classpath guys are right on board with OpenJDK. One of their most prominent members Dalibor Topic (who's the lead on the Kaffe VM) is on the OpenJDK governence board and works with Sun and other representivies on managing the project. Other promiment members like Roman Kennke, David Gilbert, Mario Torre and others. are active on the OpenJDK mailing lists and submitting patches. They are all interested in becoming regular contributors to the project.

      Other GNU Classpath developers working for Red Hat were very quick to produce a version of OpenJDK using pieces of Classpath to fill the wholes of "encumbered" components that havent been open sourced (like the font, graphics and sound engines that were licensed by Sun by 3rd parties). This is called IceTea. Though its more of a quick 'n dirty temporary project to have a completely GPL JDK right now until the holes can be plugged properly. For example, Sun released a more sophistated FreeType based font engine this week, and the rest of the holes will eventually be filled. But for now, IceTea is a great playground for experimentation. And as far as I can tell, Red Hat wants to contribute anything useful back in OpenJDK.

      You might that the GNU Classpath guys would be dissapointed, feeling that their hard work is obsolete, but no, they're happy because they know they were a big part of the reason why OpenJDK exists, and they're looking forward to contributing.

    2. Re:So what about gcj? by ianare · · Score: 1

      it's still being actively developed. GCJ is part of GCC, so I don't think it will be abandoned anytime soon.

    3. Re:So what about gcj? by Anonymous Coward · · Score: 0

      gcj is not java, btw

    4. Re:So what about gcj? by Constantine+XVI · · Score: 1

      If you meant Classpath, the GNU-built JavaVM, it's probably going to see a sharp rise in compatibility with Sun Java.
      If you meant GCJ (GNU Compiler for Java), doesn't really mean too much. GCJ compiles Java into native code, which is entirely different from Classpath, Harmony, and SunJava

      --
      "I think an etch-a-sketch with an ethernet port would beat IE7 in web standards compliance."
    5. Re:So what about gcj? by nuzak · · Score: 1

      > If you meant Classpath, the GNU-built JavaVM, it's probably going to see a sharp rise in compatibility with Sun Java.

      Classpath is not a JVM, it is an implementation of the standard JDK library.

      --
      Done with slashdot, done with nerds, getting a life.
    6. Re:So what about gcj? by petermgreen · · Score: 1

      What is happening to the FSF's java project now?
      My suspicion is the java clones will slowly die off as linux distros, even the license paranoid ones start shipping sun based java

      but that cannot happen until sun java is completely free which it isn't yet (though someone mentioned a project to hack up a working java based on the free stuff sun has released in another reply to you).

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    7. Re:So what about gcj? by petermgreen · · Score: 1

      Other GNU Classpath developers working for Red Hat were very quick to produce a version of OpenJDK using pieces of Classpath to fill the wholes of "encumbered" components that havent been open sourced (like the font, graphics and sound engines that were licensed by Sun by 3rd parties). This is called IceTea.
      since it took me a while to find this (it didn't help that you got the name wrong) i'll post a link here, hopefully the site can handle /.

      http://article.gmane.org/gmane.comp.java.openjdk.d istro-packaging.devel/5

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    8. Re:So what about gcj? by martin_the_geek · · Score: 1

      I think I meant both... hopefully we will end up with a java compiler that works with the official libraries (and, say, a directly executable version of Eclipse). I'm not sure how difficult that would be. What is required for the native code interfaces?

      --
      Regards, Martin IT: http://methodsupport.com Personal: http://thereisnoend.org
    9. Re:So what about gcj? by martin_the_geek · · Score: 1

      I'm not seeing anything there about open java.

      --
      Regards, Martin IT: http://methodsupport.com Personal: http://thereisnoend.org
  6. Re:Java == Nice Toy by Anonymous Coward · · Score: 0

    +5 Unintentionally Funny for displaying amazing amounts of stupidity. I'll bet he's glad he posted that anonymously...

  7. Re:Java == Nice Toy by Marcus+Green · · Score: 2, Insightful

    Go to your job web site of choice and key in the names of your favorite programming language. Notice that there are a huge number of jobs for Java skills (usually more than any other language but always a very close run match). Then ask yourself, if it is such a toy why are so many people prepared to pay good money to advertise for these skills?

  8. Finaly a good native compiler. by LWATCDR · · Score: 1

    I so want a native Java compiler. I like Java but the loading of the runtime is a bit of a pain. The option of compiling a native version would be very nice.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    1. Re:Finaly a good native compiler. by canistel · · Score: 1

      Not sure if you're aware of this or not, but gcj (gcc for java) will compile to native code. I have used it in linux; you do have to watch out for things like swing, as only part of swing is supported using libraries like SwingWTX (swing api over swt which is a native controls library). I think you can do something similarly for windows, but IIRC, it uses a 10mb runtime library which you need to then package along with your project.

    2. Re:Finaly a good native compiler. by FireHawk77028 · · Score: 1

      Java does have native compilers, not by Sun though. When you native compile you loose some of the on the fly debugging capabilities of java, sometimes even dynamic class loading.

    3. Re:Finaly a good native compiler. by loubs001 · · Score: 1

      For client Java developers like myself, the availability of the runtime is definitely the biggest challenges we face. Most computers do have a Java runtime installed, but few have the very latest, which is a shame because the last couple of releases have been MAJOR advances over 1.4 and earlier, which were admittedly pretty crappy for the client side. But Java 6 is excellent, but since it was only released in December, most people dont have it, and dont want to download even 7MB for it, and Java 7 is shaping up to be even more significant than Java 6. But I'm afraid, a native compiler wont solve the problem. You'd still need the libraries somewhere. So they'd still have to be installed previously, or include them with the application. Either way, there's downloading to be done. (though one of Java's major advantages is that once the platform IS installed, the actual applications tend to be remarkably small, because so much functionality is in the platform, and because of the amazing pack200 classfile compression). Plus, believe it or not, contrary to popular belief, an ahead-of-time native compiler would actually perform very poorly. The nature of the Java language depends on the runtime optimizations in order to achieve high performance. But that ends up being a good thing, because runtime optimzations allow it to optimize everything a C++ compiler can, and so much more. Still, Sun is well aware of the deployment problem. They have an entire team working to solve it in a future release targeted for early next year. Basically the initial download will be tiny (just a couple of MB) which contain the most common libraries, and the rest will be streamed in the background while the app is already running. Hopefully this will work out well. Early reports are promising. Deployment is a hard problem when your technology isnt bundled with the OS, but it is being worked on!

    4. Re:Finaly a good native compiler. by Anonymous Coward · · Score: 1, Funny

      Deployment is a hard problem when your technology isnt bundled with the OS Once apon a time, M$ used to include Java interpreter in there OS's, but Sun seemed to have a problem with that...
    5. Re:Finaly a good native compiler. by loubs001 · · Score: 3, Interesting

      Yeah, I had a problem with that too. Because they added proprietary extensions that breached the specification (including Windows specific features), as well as omitting required features. Code written for the Microsoft VM wouldnt run on anyone elses. An implementation must be certified as compliant in order to use the Java brand. Microsoft's wasnt, so Sun sued. They won, and rightfully so.

      But I'm glad this happened. It caused Microsoft to go off and create rival platform (.NET) and a rival language (C#). Maybe not so great for Sun, but great for the developer community, because it created good solid competition and both platforms are advancing at a rapid pace because of this.

    6. Re:Finaly a good native compiler. by fm6 · · Score: 1

      "Loading the runtime" basically amounts to transferring the libraries from disk to RAM. So startup time has nothing to do with the supposed efficiency gain for native code compared to byte codes. (Which is mostly not true anyway, but that's another issue.) What it does have to do with is the size of the files being loaded. Translating the libraries to native code wouldn't necessarily make them smaller. Indeed, it would probably make them bigger.

    7. Re:Finaly a good native compiler. by LWATCDR · · Score: 1

      Yes I am aware of GCJ. That is why I am hopping for that native compiler. With Java being GPL now GJC should have no problem with supporting all of the class libraries like Swing. So yea GCJ is my reason for hope.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    8. Re:Finaly a good native compiler. by LWATCDR · · Score: 1

      Except that that if you statically link with the libraries your application will only load the part of the library needed for the application. Of course that will mean that your code will have to be GPL but for in house programs or programs you plan on releasing as GPL from the start that isn't an issue.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  9. Java Programmers == Typists by Anonymous Coward · · Score: 0, Insightful

    Java programms are nothing more than typists who can understand how to string together bits of code from the latest
    'Type and Learn' Java Book.

    To Me, a Programming Language is 'Real' When it can fully bootstrap itself. That is, Compile it's own Compiler. Java of Course, being an interpreted language, fails that test miserably. I've once seen a student project, a java interpreter, written in Java. I've seen frozen molasses move at a faster pace.

    Java is nice if you don't want to worry about complexity, or managing algorithms, etc. I think of it like VB, nice for building proof of concepts, fast 'throw-away' prototypes.

    1. Re:Java Programmers == Typists by AKAImBatman · · Score: 4, Insightful
      You fail it.

      That is, Compile it's own Compiler.

      Failure #1: Java's compiler is written in Java. The first use of the early Oak/Java VM was to get the compiler self-compiling.

      To Me, a Programming Language is 'Real' When it can fully bootstrap itself.

      Failure #2: Java *can* bootstrap itself just fine, thank you very much.

      http://www.jnode.org/
      http://jikesrvm.org/

      "A distinguishing characteristic of Jikes RVM is that it is implemented in the Java(TM) programming language and is self-hosted i.e., its Java code runs on itself without requiring a second virtual machine."

      being an interpreted language, fails that test miserably.

      Failure #3: You called Java an interpreted language. Java is a compiled language that runs on a virtual machine. Like most VM-based platforms, that provides two options. The first is to interpret the bytecodes directly. The second is to compile the bytecodes into native code at runtime using a Just In Time Compiler. The most common JIT compiler for Java is the HotSpot VM. HotSpot is quite capable of keeping pace with and even exceeding the performance of native code.

      http://www.idiom.com/~zilla/Computer/javaCbenchmar k.html

      I've once seen a student project, a java interpreter, written in Java.

      Failure #4: You see these things, yet you fail to take the time to understand them. You have failed as a geek. Turn in your member card immediately and leave in shame.
    2. Re:Java Programmers == Typists by Anonymous Coward · · Score: 0

      Failure #3: You called Java an interpreted language. Java is a compiled language that runs on a virtual machine. Like most VM-based platforms, that provides two options. The first is to interpret the bytecodes directly. The second is to compile the bytecodes into native code at runtime using a Just In Time Compiler. The most common JIT compiler for Java is the HotSpot VM. HotSpot is quite capable of keeping pace with and even exceeding the performance of native code.

      Even worse, there are static, "ahead-of-time" compilers for Java, most notably GCJ, for those that really want it.

    3. Re:Java Programmers == Typists by FireHawk77028 · · Score: 1

      Java is no longer "interpretted". see Just In Time compilation (JIT). Development time is much faster than Java (and also C#) than with C++ due to the faster time to run. Have you ever built a 500,000 line C or C++ program from source? May as well go out to lunch. With java or C# that can be done in a fraction of the time. Want to talk about "Garbage collection"? It has an added benefit of defragmenting your memory which leads to fewer CPU cache misses. There is no reason that a compiler for java could not be written in Java. Did you know that your x86 "machine code" is actually interpreted? see "microcode" and "complex instruction set". Ever write assembly/c/c++ program to write compile and run its own code? see dynamic class loading

    4. Re:Java Programmers == Typists by teknopurge · · Score: 1

      How dare you present a link that makes the OP look like a tool!

    5. Re:Java Programmers == Typists by nuzak · · Score: 1

      HotSpot on the server VM is not particularly "Just In Time" -- it compiles ahead of time. What's truly annoying though is that it doesn't cache the compiled at all, which partly accounts for its glacial startup time. Java runs circles around other bytecode-interpreted languages like perl and python, but the startup time is still tied as the #1 deal-breaker alongside the larged fixed heap that makes everything in Java look like bloatware even if it isn't.

      --
      Done with slashdot, done with nerds, getting a life.
    6. Re:Java Programmers == Typists by Anonymous Coward · · Score: 0, Troll

      Failure #1: Java's compiler is written in Java. The first use of the early Oak/Java VM was to get the compiler self-compiling. Then explain why there's a "javac.exe" under Windows and:

      $ file -L `which javac`
      /usr/bin/javac: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped
      $ javac -version
      javac 1.6.0

      Failure #2: Java *can* bootstrap itself just fine, thank you very much. No, it can't. By definition you have to start with a JVM written in something that isn't Java. Otherwise your JVM is written in bytecode that nothing can run, since it isn't compiled to native code until runtime.

      Failure #3: You called Java an interpreted language. Java is a compiled language that runs on a virtual machine. By that definition, Python, Perl, and JavaScript are all compiled languages. All the current implementations of those languages compile the language into bytecodes which are then interpreted directly. Java and Python have the option of saving those bytecodes to a file and then skipping the parse step.

      But I already know you're a Java fanboi, which is rather pathetic.
    7. Re:Java Programmers == Typists by Anonymous Coward · · Score: 0

      Wow. It's been a while since I've seen a post of such breathtaking stupidity on /. and nowadays that's saying a lot. My hat is off to you sir!

    8. Re:Java Programmers == Typists by matfud · · Score: 2, Informative

      Actually hotspot compiles code after it has been interpreted for a while and it has noticed that it is a "hotspot" in the code (sort of there in the name really). The slow start up is because
      a) it loads and validates a fuck load of classes at startup (although the preverified core classes can be cached)
      b) it starts running in interpreted mode.

      matfud

    9. Re:Java Programmers == Typists by AKAImBatman · · Score: 3, Informative
      You continue to fail it. Amazing.

      Then explain why there's a "javac.exe" under Windows and [Linux]

      Simple. It's a stub. Typing "java -cp tools.jar com.sun.tools.javac.Main" all the time isn't very convenient, so Sun provides executables that load the JVM and execute the compiler. If you look in your JDK installation directory, you can find the tools.jar file in the "lib" subdirectory. You can try running it from that directory as above, or look inside the zip file for the mindblowing (eye roll) Java class files for the compiler.

      No, it can't. By definition you have to start with a JVM written in something that isn't Java. Otherwise your JVM is written in bytecode that nothing can run, since it isn't compiled to native code until runtime.

      Perfect example of someone who didn't read or take the time to understand. The Jalapeno VM and JNode OS are both written in pure Java. They used their own JIT compiler to compile themselves into native code. That native code is a Java program that runs on the native platform.

      By that definition, Python, Perl, and JavaScript are all compiled languages.

      Python is not compiled. Perl is not compiled. Javascript is not compiled. These languages are read in, line by line, and executed. You fail it.

      This is CS101 stuff we're talking about here. How badly can you fail it?
    10. Re:Java Programmers == Typists by Anonymous Coward · · Score: 0

      The Jalapeno VM and JNode OS are both written in pure Java. They used their own JIT compiler to compile themselves into native code. And how do you propose to run them and their JIT compiler without another VM? You need a VM written in some other language to actually use them. That's not bootstrapping.

      Python is not compiled. Perl is not compiled. Javascript is not compiled. These languages are read in, line by line, and executed. You fail it. Yes, they are. Modern interpreters compile the language and then run the bytecode. Early interpreters work the way you describe because memory was at a premium. With modern amounts of memory, there's no need to recompile the code every time its executed. Instead they compile them into bytecode and run that bytecode: exactly like Java.

      See Parrot, the VM for Perl, and Tamarin, Mozilla's JavaScript VM.
    11. Re:Java Programmers == Typists by Anonymous Coward · · Score: 0

      Python is not compiled. Perl is not compiled. Javascript is not compiled. These languages are read in, line by line, and executed.
      Wrong, wrong and wrong. The other AC mentioned Parrot and Tamarin, but it's not even necessary to look that far ahead. The current canonical implementations of Perl, Python and JavaScript all compile the program to bytecode before execution.

      You fail it.
      Right back atcha.
    12. Re:Java Programmers == Typists by AKAImBatman · · Score: 2, Insightful

      And how do you propose to run them and their JIT compiler without another VM?

      How you think Linus wrote the first version Linux? By flipping switches on the front of his Honeywell? Of course not, fool! He used Minix as a host platform to compile the first versions. You always need a host platform to bootstrap the first copy before it can become self-hosting.

      Modern interpreters compile the language and then run the bytecode. Early interpreters work the way you describe because memory was at a premium.

      These words come out of your mouth, but you obviously don't understand what they mean. Early interpreters started the concept of "compiling down" interpreted code because memory was at a premium. It's not a Virtual Machine, it's a symbolic language that makes it easier to execute the code.

      Hell, I have a Commodore 64 sitting at home that keeps all its programs in a symbolic form to preserve its mere 64K of memory. I know you have no idea what a Commodore 64 is (I'm pegging you at somewhere around 12-14) but programmers often wondered why their programs were being reformatted by the machine. As it so happens, it wasn't reformatting them. It was translating the programs to symbolic codes, then translating them back when the user asked for a program listing.

      See Parrot, the VM for Perl

      Parrot is a VM. Period. Languages like Perl can be compiled for it if desired. Jython also exists to target Python execution in the JVM environment. The existence of these tools does not make the languages any less of interpreted language. It merely provides a specific implementation which is compiled. Just as many companies used to offer BASIC compilers, even though BASIC was technically an interpreted language.

      Tamarin, Mozilla's JavaScript VM.

      Taramin is the latest version of the Virtual Machine designed for the Flash platform. The Actionscript language was evolved toward ECMAScript compliance, thus making it an excellent platform for JITing Javascript code.

      Again, you fail it. Go back to high school, graduate, work your way through a college education in CS, then come back when you know what you're talking about.
    13. Re:Java Programmers == Typists by Anonymous Coward · · Score: 0

      He meant NATIVELY compiled, as in either AOT or JIT execution.

      You're talking about bytecode interpretation, i.e. NOT COMPILED.

      You lose, good day sir!

    14. Re:Java Programmers == Typists by Anonymous Coward · · Score: 0

      Again, you fail it. Go back to high school, graduate, work your way through a college education in CS, then come back when you know what you're talking about. Says the guy who can't tell the difference between a parse tree (what early interpreters use) and bytecodes (what modern interpreted languages use).

      The difference between interpreted languages and compiled languages these days is largely academic. Most modern implementations use virtual machines. Hell, even Java has JSPs, which use Java like a scripting language.
    15. Re:Java Programmers == Typists by Anonymous Coward · · Score: 0

      Parent(OP) AC, give up you have been utterly destroyed by this gentlemen. I wish I had mod points, he deserves the small collection of +5's. You weren't even a good troll, just someone smart enough not to post logged in. If you found one minor flaw in his wording, if he chooses not to destroy you further, consider yourself lucky and go home. Both are large ifs I imagine.

    16. Re:Java Programmers == Typists by AKAImBatman · · Score: 3, Insightful
      You mean like what Perl uses? :-/

      Perl has always had a compiler: your source is compiled into an internal form (a parse tree) which is then optimized before being run.

      From my understanding of the engine, SpiderMonkey works along similar lines, using a combination of byte codes and parser information to perform execution. This is a bit different approach from the Flash VM, which pre-compiles the source into a representation executable by its "Actions" VM.

      The difference between interpreted languages and compiled languages these days is largely academic.

      I will agree with this. True interpreters are a rare find these days. Interpreting bytecodes is becoming a common method, and even JITs are showing up in a lot of interpreted languages. That being said, the one distinction is that interpreted languages rarely give up their interpreters. If you give them a dynamic piece of source code, they will execute it whether it does a strict interpretation of the source or a full compile to its internal VM.

      In comparison, Java is a strictly compiled language designed for the Java VM platform. Furthermore, it is JITed at runtime and is no longer interpreted as most VMs designed for "interpreted languages" do.

      Hell, even Java has JSPs, which use Java like a scripting language.

      Scripting is not the same thing as interpreted. JSPs are compiled before execution. The file is turned inside out by the parser (all that HTML becomes output.write("") statements) then compiled by JavaC, loaded by the ClassLoader, and finally executed by the HotSpot VM. It's an involved process, but it's much faster than the traditional interpreted approach of PHP and pre-.NET ASP.
    17. Re:Java Programmers == Typists by nuzak · · Score: 1

      > Actually hotspot compiles code after it has been interpreted for a while and it has noticed that it is a "hotspot" in the code

      I stand corrected -- my confusion came from looking at a possible set of configuration defaults for the server VM where it can effectively compile everything ahead of time by dialing down all the profile thresholds way down. These probably aren't particularly sane defaults either. It looks like the main difference is that the server VM performs more aggressive optimizations.

      Still, wouldn't it be nice if it cached? I understand That Other VM does it (and also has much nicer versioning).

      --
      Done with slashdot, done with nerds, getting a life.
    18. Re:Java Programmers == Typists by IBBoard · · Score: 1

      Java programms are nothing more than typists who can understand how to string together bits of code from the latest 'Type and Learn' Java Book.

      Wow, you must have seen some low quality programmers, then.

      Java is nice if you don't want to worry about complexity, or managing algorithms, etc.

      No managing algorithms? Huh? In what way do you not have to manage algorithms?

      I think of it like VB, nice for building proof of concepts, fast 'throw-away' prototypes.

      Better not tell the MoD (Ministry of Defence, UK Government) since they have Java as one of their approved languages. Yes, C and C++ are also approved, but AFAIK C# hasn't been yet (and hopefully neither has VB!)

      Yes, you can write fast prototypes in Java, but that's just one of the things made easier by Third Gen/high level languages and object orientation.

      I wouldn't even want to use VB for a prototype, though. Far too ugly and Windows-based a language for that ;)
    19. Re:Java Programmers == Typists by Anonymous Coward · · Score: 0

      hey look, someone who doesn't know what "compiled" means

    20. Re:Java Programmers == Typists by Anonymous Coward · · Score: 0

      He meant NATIVELY compiled, as in either AOT or JIT execution.
      Well, I can't tell what he meant, but he said

      These languages are read in, line by line, and executed.
      which is not true.

      You're talking about bytecode interpretation, i.e. NOT COMPILED.
      I'm talking about "not read in, line by line, and executed".
    21. Re:Java Programmers == Typists by matfud · · Score: 1

      The server options do perform far more agressive optimizations under the assumption the the code will run for far longer then normal client apps (it can afford the extra overhead of the optimizations as they are offset over a longer period of time). It is a bit wierd watching your server get faster over time and often not particularly desirable for servers (you often want them pretty fast from the get go) so you have the option of increased startup cost and its corresponding increased performance from startup.

      There has been talk about caching the compiled code but I don't think it has happened yet. One of the complications is that Java has the ability to dynamically load new code at runtime. This means that hotspot has to be able to back-out any optimisations it has made if newly loaded classes make them incorrect.

      Java also has pretty good version handling of packages however it is often not used correctly. OSGi can help with this and provide many other benifits.

      matfud

    22. Re:Java Programmers == Typists by sapgau · · Score: 1

      Anonymous Coward I suggest to just let it drop.
      Parent explained it to you in so many ways. Confusing an interpreter with compiled code is embarrasing to watch.

      I hope you are not in a position of authority where decisions are made and people would have to pay for your mistakes.

    23. Re:Java Programmers == Typists by Anonymous Coward · · Score: 0

      Yes, it is embarrassing to watch so many people confuse "compiled" with "native". Java is compiled - in exactly the same way that Perl, Python, and JavaScript are. All of these languages are compiled into bytecode which is then interpreted by a virtual machine. Perl, Python, and JavaScript generally immediately run their compiled code while Java does not.

      Just because you don't understand the difference between an interpreted language (today that's really only shell scripts) and compiled languages (nearly every language today) is, honestly, embarrassing for whatever school you graduated from.

      By the way, here's a quick way to tell whether or not your language is interpreted or compiled. Try and execute a script with a syntax error. If the script starts to run and stops once it hits the error, it's interpreted. If it aborts without even starting, it's compiled.

    24. Re:Java Programmers == Typists by fbartho · · Score: 1

      Congratulations on an informative and interesting series of comments and elucidations. I'd read about most of what you covered in this weird "flamewar" previously, but hadn't seen everything tied together quite so well in the past. Remember the old saying that goes somewhat like: "Don't argue with a fool because a stranger might come upon you and fail to know who is who" Though in this case, I don't think you're in trouble of being taken for a troll. :P

      --
      Gravity Sucks
    25. Re:Java Programmers == Typists by maxwell+demon · · Score: 1

      Machine code also is just a special byte code which happens to be interpreted by the CPU hardware (or even by microcode running inside the CPU).

      If someone built a CPU which processes Java bytecode natively, would that suddenly turn Java from an interpreted into a compiled language?

      --
      The Tao of math: The numbers you can count are not the real numbers.
    26. Re:Java Programmers == Typists by Bill+Dog · · Score: 1

      If someone built a CPU which processes Java bytecode natively, would that suddenly turn Java from an interpreted into a compiled language?
      Yes. A compiled language means it's translated into the CPU's instruction set on the developer's time. And only once, for that version of the software. An interpreted language means it's translated into the CPU's instruction set on *my* time. Over and over again, every time I run it.

      However, the creation of such a CPU would only demolish the "interpreted" mark against Java. The language itself would still suffer from a lack of power and expressiveness, relative to the language it is a dumbed-down version of.
      --
      Attention zealots and haters: 00100 00100
    27. Re:Java Programmers == Typists by Fujisawa+Sensei · · Score: 1

      Java programms are nothing more than typists who can understand how to string together bits of code from the latest 'Type and Learn' Java Book.

      You mean what C and C++ were like 15 years ago?

      To Me, a Programming Language is 'Real' When it can fully bootstrap itself. That is, Compile it's own Compiler. Java of Course, being an interpreted language, fails that test miserably. I've once seen a student project, a java interpreter, written in Java. I've seen frozen molasses move at a faster pace.

      Perhaps you need a dictionary because that's not the definition the rest of the world seems to use.

      Java is nice if you don't want to worry about complexity, or managing algorithms, etc. I think of it like VB, nice for building proof of concepts, fast 'throw-away' prototypes.

      If your job is managing algorithms that's nice. Many of us get paid to deliver software, not dork around with sorting, searching, and memory pools.

      --
      If someone is passing you on the right, you are an asshole for driving in the wrong lane.
  10. You failed programming, didn't you? by Dancindan84 · · Score: 4, Insightful

    Java is a nice toy programming language, for those people who can't afford a 'real' compiler, Like Borland, or Even Microsoft. Hell, even GCC does a better job than most java interpreters. That's just golden.
    --
    "Always forgive your enemies; nothing annoys them so much." - Oscar Wilde
    1. Re:You failed programming, didn't you? by AP2k · · Score: 0, Redundant

      When a Java program I compiled and ran on my computer doesnt work but compiles and runs on someone elses perfectly, there is something wrong.

      HINT: Its not the computers.

    2. Re:You failed programming, didn't you? by cerelib · · Score: 1

      Were you using the same version number on each computer? If you use a newer version to compile, say JDK 6, and then try to run it on an older version, say JRE 1.4.2, there can be incompatibilities. This happens because the JDK defaults to compiling towards the newest version (API and bytecode format), but you can configure options to compile to any old version level you want (target 1.3 which will work on 1.3, 1.4, 5.0, and 6.0 if you are going for serious compatibility). This can be a very useful feature, but can lead to frustration in mixed environments if you don't understand it. Since you said that it can compile and run on both computers, that seems to indicate that this may be the source of your problem. My point, don't be so quick to blame bad implementation.

    3. Re:You failed programming, didn't you? by mhall119 · · Score: 1

      Right, and that's true in any language, isn't it?

      Hint: It's the programmer.

      --
      http://www.mhall119.com
  11. Just starting out with Java by RockHorn · · Score: 4, Interesting

    I am a fledgling java developer, and so far I'm loving it! Every time I hear about the advances Sun is making towards GPLing java, the more I feel justified in taking the time to learn java.

    I came into this business from a bit of a back door (although I suspect it to be a common back door these days). I started with spaghetti code PHP, moved to OOP php with php4, then php5. I am now quite frustrated by the partial OOP implementation of php5, as I develop more complex applications. I become even more frustrated with PHP the more I learn about java. The type safety at compile time makes it far easier to develop bug-free code. Method overloading is problematic in php, I usually end up implementing a single function with all sorts of optional arguments, and checks to determine whether a particular parameter is an array.

    Additionally, Java gives me code re-use at it's ultimate. For instance, I write a single been that updates our LDAP; I then use that bean in a JSF web application, in a batch program running on an an IBM iSeries, in a command line application on Linux, and most recently in a Swing application. Having written the bean once when developing the first application, I never had to write a single LDAP query when developing my latter applications. Any bugs I find in the bean from one of the apps means the bug gets fixed for all the other apps.

    Not to mention that I do my development on my Mac, and deploy software across our organization to Windows and Linux desktops.

    Write once run anywhere for sure - I'm sold!

    1. Re:Just starting out with Java by Anonymous Coward · · Score: 0

      For instance, I write a single been that updates our LDAP; I then use that bean in a JSF web application, in a batch program running on an an IBM iSeries, in a command line application on Linux, and most recently in a Swing application.
      Congratulations! You've just discovered code reuse.

      Of course don't let the fact that you can re-use code in pretty much any programming language spoil your glow of Java-loving pride...
    2. Re:Just starting out with Java by Anonymous Coward · · Score: 0

      Easy on those overloaded methods now. I suggest you read this first:

      http://www.artima.com/weblogs/viewpost.jsp?thread= 7852

      I too fled from PHP, but not to Java.

      -Randall

    3. Re:Just starting out with Java by RockHorn · · Score: 1

      Of course don't let the fact that you can re-use code in pretty much any programming language spoil your glow of Java-loving pride...

      Right, so I can take something written in PHP and make a gui application out of it?

      You'll probably come back and say you meant a real programming language. How many web sites are made using C/C++ these days? How many gui programs are made using Perl, or Ruby? How cross-platform is all that .Net stuff?

      What other languages other than Java and Python allow for code re-use in such varied environments? No sarcasm intended with this question - please, by all means, educate me!

    4. Re:Just starting out with Java by Anonymous Coward · · Score: 0

      PHP gui applications are not out of the question. The tools are available. PHP-GTK is one, there are probably more.

    5. Re:Just starting out with Java by sapgau · · Score: 1

      All that is true and is the reason why convincing a business/client to use java is always so easy. Is convincing the slashdot audience that java is good enough instead of reinventing the OO concepts with a new language every year.

    6. Re:Just starting out with Java by abigor · · Score: 1

      The "slashdot audience" is mostly non-programmers who have convinced themselves they belong to an open source "community" and students who have never written a single line of production code in their lives. So it's no surprise that they are a tough sell, since they generally have no idea what you're talking about.

    7. Re:Just starting out with Java by zolaar · · Score: 1

      I usually end up implementing a single function with all sorts of optional arguments, and checks to determine whether a particular parameter is an array


      Dear Unfortunate Soul:

      It has come to our attention that you have made an unauthorized use of our copyrighted software development process in a software project derived therefrom. Your work, based on your willing confession above, is essentially identical to ours; it clearly uses our intellectual property as its basis. The detailed technical specification you provided is a near-verbatim description of our "Parameter Discovery Heuristics" process, and is clear evidence of the direct knowlege you have of our software systems.

      As you neither asked for nor received permission to use our product as the basis for your work, you have willfully infringed our intellectual property rights under 17 U.S.C. Section 101. The afformentioned infringement and the irreparable damage caused by your public disclosure (via a highly-visible public forum) of our development process, according to state and federal law, holds you liable for up to $419,000,000 in statutory damage compensation and associated legal fees.

      Steel briefcases are our preferred method for financial transfers; personal checks only accepted if issued by a Nigeria financial institution with a valid royal oversight license.

      Best Regards,
      Hajia Mariam Abacha
      --
      One man's constant is another man's variable.
    8. Re:Just starting out with Java by Anonymous Coward · · Score: 0

      I am currently debating if I should learn Java or C#. I am put off by C# as it's Windows only but I am put off by Java as it has a reputation of being more server side than client side and I am looking mainly at client side app development now.

  12. Java on Solaris by Frankie70 · · Score: 1

    Forget Linux, Java works much better on Windows than on Solaris.
    I found Java on Solaris to be rather buggy.

  13. Sun can still do better ... and easily by Skapare · · Score: 1

    Sun can still do better ... and easily.

    "We've known that we weren't going to be able to satisfy everyone in the open-source and free software worlds. There are incompatible licenses and philosophies and approaches," Sands said. "We're trying very hard to figure out some way to bridge this, but we've not been able to do that."

    [...]

    The compatibility kit itself, though, is not an open-source project. "We wouldn't want people being creative about what compatibility means, because then you end up breaking compatibility," said Jean Elliott, senior director of Java software product marketing.

    I'm not expecting Sun to necessarily release its own implementations in source code. However, any test kits for compatibility need to at least be made available to any and all open source developers. For Java compilers, clearly that much of it must have source code available. For run time engines, the test kit can be class files (compiled on Sun's official Java compiler, perhaps). Sun could perform the official certifications test runs themselves to validate the tests pass with official unmodified tests, or grant that to an outside entity with whom they have an agreement to do such tests.

    --
    now we need to go OSS in diesel cars
  14. Re:Java == Nice Toy by Anonymous Coward · · Score: 0

    A bit of a long-running fad, y'think? I suppose you think those "horseless carriages" are also just a fad.

  15. Re:Java == Nice Toy by kv9 · · Score: 1

    Then ask yourself, if it is such a toy why are so many people prepared to pay good money to advertise for these skills? because they don't know any better? quality vs quantity? (see: Windows) I don't know. I'm just saying.
  16. Re:Java == Nice Toy by Anonymous Coward · · Score: 0

    well, because most people are idiots..... i went from perl to c++, and then to C. you should read up a little more before you take so much time in learning a new discipline. Sun wont even let Java into its corporate infrastructure, they say it is to immature so "use c".... -- this came from one of their internal memos.

  17. Translation by jbellis · · Score: 1

    "Suck it, IBM"

  18. It's only a dangerous language!!! by Anonymous Coward · · Score: 0

    It's only a language!!!

    But there is a difference:
    1) Java is VERY DANGEROUS!!! Sun can charge you!!!
    2) C++ is not dangerous!!!

    You know ANSI C, ISO C, ISO C++, ... but

    and ISO Java? Such thing doesn't exist!!!

    To invent ISO Caffeine? ISO Heroine? ISO Cocaine?

    1. Re:It's only a dangerous language!!! by LWATCDR · · Score: 1

      JAVA IS GPL now.
      Tell you what write me an IDE suing ANSI C or ISO C++ that is portable. Do it without using any libraries that are not part of the standard... Then you can get back to me.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    2. Re:It's only a dangerous language!!! by javaxjb · · Score: 1
      Tell you what write me an IDE suing ANSI C or ISO C++ that is portable.

      Great idea, because if it's portable we can make it start suing the *IAAs! That'll teach 'em.

      --
      Programmers in mirror are brighter than they appear
  19. Re:Java == Nice Toy by Anonymous Coward · · Score: 0

    A Java horseless carriage might run on all roads, with all fuels.

    Bad example!

  20. Re:Java == Nice Toy by a1mint · · Score: 1

    Idiot remarks about Java are actually rare these days. Most understand the power of Java these days, but some like yourself stay in the dark ages for unknown reasons. Practically everything you've just barfed up is incorrect. No need for me to elaborate, you've got your @ss kicked by all the other responses already.

  21. JIT can't mmap binaries for shared mem by mechsoph · · Score: 1

    Native (.so) libraries are loaded using mmap. The means that even though every program links to libc, there's only one copy of it in memory. It also means that a new process that gets to run doesn't have to reload libc from disk.

    Since java has to decompress/JIT it's libraries each time a program runs, each process will have its own copy of all the libraries. Making better use of the shared memory facilities provided by the OS is one possible benefit of compiling java to native code.

    1. Re:JIT can't mmap binaries for shared mem by leenks · · Score: 1

      This isn't strictly true, at least not on the Apple JVM, and presumably others too now for java code, and certainly isn't true for the large parts of the underlying APIs that have to be implemented as native code - see http://www.apple.com/macosx/features/java:

      Less Memory, Faster Start

      On other platforms, each Java application consumes some system memory, so you might end up using more memory than you need to when running multiple Java applications. Other languages, such as C or C++, solve this problem using what's called shared libraries. Apple developed an innovative new technology that allows Java code to be shared across multiple applications. This reduces the amount of memory that Java applications normally use. And it fits right into Sun's Java HotSpot VM, allowing Mac OS X to remain compatible with standard Java. In addition, Apple has given this implementation to Sun so the company can deploy it on other platforms. It's just one example of how Apple supports standards and shares ideas to benefit all.

    2. Re:JIT can't mmap binaries for shared mem by matfud · · Score: 1

      Not only are the class files (from core java) memmaped into the process but I believe that they are also pre verified (verification of class files takes a significant proportion of the time required to load class files). I think this has been added in Sun java 1.6 as well (thanks to apple).

      matfud

  22. Re:Java == Nice Toy by Anonymous Coward · · Score: 0

    I'm just saying. That you're an uninformed mouth.
  23. Re:Java == Nice Toy by ShinmaWa · · Score: 1

    YHBT YHL HAND

    --
    The /. Effect: Thousands of users simultaneously accessing a site to not read its content.
  24. Re:Java == Nice Toy by Anonymous Coward · · Score: 0

    Haha that's funny. I always get a laugh when I hear someone say we will 'use the power of java'...what that basically means to me is 'we will string together some low-quality, GPL/Open Code around some of our wrappers, and squeze out some steaming mounds of slow running code'

    Java does enable programmers to do some great things, but hides much too many of the important details.

    But then again, that's just me. When you program embedded systems, that need sub-millisecond guarenteed response times, you know how to write efficient code, and you know not to use java. Let me know when the language matures, and becomes more deterministic. Until then, it's great for student projects and the like, but I'll stick with good old embedded C/C++ thanks.

  25. Re:Java == Nice Toy by matfud · · Score: 1

    Embedded C/C++ also hide many of the details. Why arn't you writing in assembly?

    Joking aside, Java is making inroads into embedded realtime systems.
    http://java.sun.com/javase/technologies/realtime/i ndex.jsp

    Thats not counting the processors available that have java bytecode as thier native instruction set.
    http://www.google.co.uk/search?q=native+java+proce ssor&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-GB: official&client=firefox-a

    matfud

  26. Re:Java == Nice Toy by Marcus+Green · · Score: 1

    Yes, you are probably right its the rest of the world that is out of step, not you.

  27. Apple may be your god, but it's not mine by mechsoph · · Score: 1

    This isn't strictly true, at least not on the Apple JVM,...

    Based on this non marketroid page, it seems that apple's jvm compiles the java standard library at install time. Then it can just mmap the library at execution. It also seems to mark all memory in this file as uncollectable. It would be nice to do this for other java libraries as well, but then you may start to wonder why, exactly, you were using JIT in the first place.

    Apple developed an innovative new technology that allows Java code to be shared across multiple applications.

    New and innovative? Hardly. Shared libraries were implemented by Multics in the 1960's. Apple's just doing what everybody else (except, I guess, some folks at Sun) realized was a good idea years ago. As for making some objects uncollectable, Lisp was doing that and many other very cool things, long before java.

  28. Re:Java == Nice Toy by Marcus+Green · · Score: 1

    "Ever see how many VB jobs there used to be"

    I suggested going to a job advert site and doing a little research. If you do that you will find there is no "used to be" about the availability of VB jobs. Try making informed comments.

  29. Missed the boat by vga_init · · Score: 1

    Java could have been everything on Linux. Total domination, but licensing being the issue, lots of Java-friendly projects found happy homes among the ranks of Python, Mono, Ruby, Perl, what-have-you. Java is here to stay, but it's not an essential part of GNU, Windows, Mac OS, or anything like that. That means it may not actually live forever. It might get crowded out by better tools. Maybe.

  30. About GCJ (and not classpath) by Per+Abrahamsen · · Score: 1

    They switched to the eclipse front end. Still use GCC back-end for native code compilation.

    1. Re:About GCJ (and not classpath) by martin_the_geek · · Score: 1

      Sorry, what I meant was, the Eclipse system uses the JVM at present. I was speculating as to whether they could use gcj instead and build a native code executable. I was just using Eclipse as an example as it was the first well-known Java program that came into my head.

      --
      Regards, Martin IT: http://methodsupport.com Personal: http://thereisnoend.org
  31. Keep looking for more: Ruby is ahead by Santana · · Score: 1

    I came into this business from a bit of a back door (although I suspect it to be a common back door these days). I started with spaghetti code PHP, moved to OOP php with php4, then php5. I am now quite frustrated by the partial OOP implementation of php5, as I develop more complex applications. I become even more frustrated with PHP the more I learn about java.

    I started with PHP too a long time ago. I've tried Perl, Python and Java. I'm a (very satisfied) Ruby programmer right now since it has a good balance of nice features taken from other languages, in my humble opinion. Learning Ruby has motivated me to know more about programming languages and now I'm looking to try SmallTalk, LISP and Haskell.

    If you like Java's object orientation, you'll love Ruby's real object orientation. OOP as it was intended[1]. It's like Java done right, and without the verbosity.

    The type safety at compile time makes it far easier to develop bug-free code ...

    The reality is not that categorical. Static versus dynamic typing benefits is debatable[2]. Incidentally, Java seems not to be type-safe [3]

    Additionally, Java gives me code re-use at it's ultimate.
    [...]
    Not to mention that I do my development on my Mac, and deploy software across our organization to Windows and Linux desktops.

    You realize that code reusability and portability is not Java's exclusive, right?
    Yes, you do, of course.
    Don't stop at Java. Keep trying other languages. You'll be surprised.

    My humble suggestion: Ruby.

    [1] Dan Ingalls: Object-Oriented Programming - Google Video
    [2] Static and dynamic type checking in practice
    [3] Java is not type-safe

    --
    The best way to predict the future is to invent it
  32. Why do we NEED a thousand flavors of Java? by Anonymous Coward · · Score: 0

    When Java's open-sourced, anybody and their mother can create a JVM for their particular purpose. If businesses don't like one part of Java, they'll be able to rewrite it, which leads to tons of incompatible forks and difficulty with maintenance. If somebody creates a Java applet that requires the Apache version of Java, then I have to download and install the Apache version of the JVM in my browser. Great, now I have two different versions of Java, when before I had one. Normal people aren't going to want multiple versions clogging their systems. They're already annoyed with the updating that goes on with the current version. People are probably going to think that the Apache version or a different version is a spyware app and not install it anyway. We'll get many different versions of Java, all slightly different and not one standard will emerge. It'll probably me more of a headache then it's worth.