Slashdot Mirror


IcedTea's OpenJDK Passes Java Test Compatibility Kit

emyar writes "At JavaOne in May, 2006, Sun Microsystems announced they were going to release Java as free software under the terms of the GPL. The size of the task (6.5 million lines of code) was only eclipsed by the size of the opportunity for Java as a free and open technology. [...] This week the IcedTea Project reached an important milestone — The latest OpenJDK binary included in Fedora 9 (x86 and x86_64) passes the rigorous Java Test Compatibility Kit (TCK). This means that it provides all the required Java APIs and behaves like any other Java SE 6 implementation — in keeping with the portability goal of the Java platform."

77 of 271 comments (clear)

  1. Perfomance by electricbern · · Score: 2, Insightful

    How about performance. It is a great milestone, it is, but if it is too slow it isn't ready for prime time.

    --
    alias possession='chmod 666 satan && ls /dev > il && tail daemon.log'
    1. Re:Perfomance by JimDaGeek · · Score: 5, Informative

      They are using the "real" Java source. Only 4% of the Sun Java code wasn't released. So IcedTea only had to implement the 4% of Java that wasn't GPLed.

      --
      General, you are listening to a machine! Do the world a favor and don't act like one.
    2. Re:Perfomance by Reverend528 · · Score: 5, Funny

      IcedTea only had to implement the 4% of Java that wasn't GPLed.

      Although 4% doesn't sound like much, it's actually just short of 8 billion lines. It sounds unbelievable that they could accomplish that so quickly, but Java's strength is in making it easy to write large amounts of code.

    3. Re:Perfomance by glebfrank · · Score: 2, Insightful

      You do realize that NOPs and comments do not affect the speed of the software, once it's compiled?

    4. Re:Perfomance by sm62704 · · Score: 2, Informative

      Yes, which would affect the size of the source without bloating the code. That's why I asked. If 5 megs of the 6.3 megs of source is comments, that's a GOOD thing. Little or no bloat and the code is decipherable.

      --
      mcgrew's razor: Never attribute to stupidity that which can be explained by greedy self-interest
    5. Re:Perfomance by Anonymous Coward · · Score: 5, Informative

      This is not completely correct. In the OpenJDK project we have been removing the encumbered code and have whittled down the nonfree part of OpenJDK's source tree to 0%. OpenJDK6's source tree is 100% open source. IcedTea has been matching this by removing some of the patches they applied. Most of what's left in IcedTea is a build system. Oh, and a plugin.

    6. Re:Perfomance by penguin_dance · · Score: 2, Funny

      How about performance.

      I don't know, that Ice T guy seems to be pretty talented. First he's a rapper, then he's an actor, now he's writing Java....what?

      Oh, nevermind....

      --
      If you've never been modded as "flamebait" or "troll," you've never tried to argue a minority viewpoint here!
    7. Re:Perfomance by dave87656 · · Score: 2, Informative

      I just tested it on Ubuntu. The fonts are not as attractive as with the Sun JDK. And the resident memory usage was about twice that of the Sun JDK.

      Not sure about the speed. But first indications are that I will be staying with Sun's JDK.

    8. Re:Perfomance by dave87656 · · Score: 2, Informative

      IcedTea only had to implement the 4% of Java that wasn't GPLed.

      Although 4% doesn't sound like much, it's actually just short of 8 billion lines. It sounds unbelievable that they could accomplish that so quickly, but Java's strength is in making it easy to write large amounts of code.

      Huh? The whole project is 6.5 million lines. 4% comes out to 260,000 lines according to my calculator.
    9. Re:Perfomance by Reverend528 · · Score: 2, Funny

      which is still a long way from the GP's 8 Gloc

      AFAIK, GP was making a joke.

      Sincerely,
      GP

    10. Re:Perfomance by cheesybagel · · Score: 2, Funny

      Actually I believe they got sockets right... it only took them 2 or 3 iterations of the API. :-)

  2. Mono needs a similar testsuite. by Anonymous Coward · · Score: 5, Insightful

    If Mono wants to ever become suitable for enterprise use, it will need a testsuite and compatibility kit like this. One of the main benefits of Java is the stringent standards that implementations must adhere to. This brings a level of predictability that we just can't get from .NET or Mono. And for huge enterprise apps, that predictability is totally necessary.

    1. Re:Mono needs a similar testsuite. by Funks · · Score: 2, Insightful

      If Mono wants to ever become suitable for enterprise use, it will need a testsuite and compatibility kit like this. One of the main benefits of Java is the stringent standards that implementations must adhere to. This brings a level of predictability that we just can't get from .NET or Mono. And for huge enterprise apps, that predictability is totally necessary. And you believe that it would be in Microsoft's best interest to create a .NET platform TCK?
    2. Re:Mono needs a similar testsuite. by DickBreath · · Score: 3, Funny
      Mono already has a much simpler compatibility test.
      • Does it run on Windows? (Check)
      • Does it have poisonous patents? (Check)
      Okay, it passes.
      --

      I'll see your senator, and I'll raise you two judges.
    3. Re:Mono needs a similar testsuite. by Anonymous Coward · · Score: 4, Informative

      Even if you discount Java's superior performance,
      I'm pretty sure .NET has Java beat in several areas. For example, generics. In Java generics are just syntactic sugar for casting everything from java.lang.Object to something else. Each cast is a runtime type check, which comes at a performance penalty that I don't believe is trivial. .NET actually generates unique code without that casting.

      superior APIs that are decades ahead of anything at microsoft,
      APIs, maybe, I don't know, but language features, definitely not. I don't use C# really, but even as someone with only a passing familiarity with it I can name a few things about it that make it seem much more productive to work with than Java:
      • Support for generics is "real" rather than an afterthought, mentioned above.
      • Using C# delegates for closures is syntactically much nicer than anonymous classes in Java.
      • Accessors in C# actually make syntactic sense, where in Java everybody writes ugly statements like foo.setBar(true) (and it gets more complex, verbose, and uglier than this example, too).
      • C# has yield iterators, i.e. real iterators like in Python. Try writing an iterator in Java for a tree structure. You pretty much have to think about breaking it into a state machine. In a language that has real support for iterators it's as simple as writing your standard-issue traversal function.
      • C# has type inference in declarations with an initializer, eg. var foo = new SomeVeryLongClassName() and foo ends up with the right type
      These are just a few. I'm sure people who are more familiar with C# than I am can name more.

      For the record, the kind of coding I do is much more geared towards lower level stuff, so I don't use C# or Java much at all. But I'm aware of the features of both, and I definitely would say hands down that between the two major high-level, VM languages, C# is the better one. It is definitely in the best interest of free software and open source to replicate some of its strong points over Java. Unfortunately Microsoft has a credibility gap, so a lot of people dismiss it without being aware of its features. Mono is an okay start, but still lacking...
    4. Re:Mono needs a similar testsuite. by ADRA · · Score: 2, Insightful

      1. "Support for generics is "real" rather than an afterthought, mentioned above."

      Java support for generics was made with a backwards compatability wrapper so that all the API's are still compatible with java 1.5. This is a really big deal in my day job, since our company still codes for 1.4. I think you can look it up and find that Sun will move generics into runtime when there aren't the worries about backwards compatability. Since .NET has no backwards compatability, there's no issue there.

      4. How is IEnumerator different from Java's java.lang.Iterable?

      Or do you mean the benefit of hacks like quoted from OnDotNet?

      public IEnumerator GetEnumerator()
      {
          yield return "Who";
          yield return " is";
          yield return "John Galt?";
      }

      foreach ( string s in new foo )
      {
            Console.Write(s);
      }

      You still need to order which items are iterated over even if C# avoids needing to force you to actually store the iteration number somewhere.

      5. I think this is absolutely the worst thing you could possibly do being allowed or not, having invariant variable are just evil. Am I missing the difference between this and java's "Object a = new SomeReallyBadDefinition();"
      Does the same apply to var foo = callThisAmbiguousReturnTypeMethod() too? Regardless, this whole idea is ugly to me.

      --
      Bye!
    5. Re:Mono needs a similar testsuite. by Planetx_123 · · Score: 3, Informative

      For #1, it doesn't matter-- without runtime help you loose half of the power of generics. In either case you aren't gaining anything. Your company is still writing without generics. If a .NET shop wanted to work with 1.1 then they wouldn't write generics either... no difference. The problem is forward compatibility. You "could" write with generics and they could work with non-generified JREs. In the trade-off I would prefer the runtime benefits (et al) any day of the week.

      For #4- you don't understand what you are talking about. For good uses of yield (or closures) go ask one of the millions of Ruby fans that are convinced its the best thing ever. Note that your example of "Who is John Galt" is stupid. You can write bad code in any language-- programming languages aren't meant to "fix" stupid.

      For #5- you clearly don't understand how type inference works. This is still static typing- its just that the type is inferred by the compiler (obviously at compile time) instead of having the coder type extra, unnecessary characters. It is NOT a "variant" type or widened type. It is only syntactic sugar to save you some keystrokes when declaring and initializing in the same statement (which should almost be required). No one is arguing against types or interfaces, etc. This is only to help reduce some superfluous typing. And YES this is in C++0x as well.

    6. Re:Mono needs a similar testsuite. by rreyelts · · Score: 2, Informative

      I'm pretty sure .NET has Java beat in several areas. For example, generics. In Java generics are just syntactic sugar for casting everything from java.lang.Object to something else. Each cast is a runtime type check, which comes at a performance penalty that I don't believe is trivial. .NET actually generates unique code without that casting.
      You should read John Rose's blog for nice comparisons between .NET and the JVM. You give a perfect example of something that would cost .NET in performance, but that the JVM optimizes out at runtime (casts). Don't take my word for it. Put together a micro-benchmark and see for yourself. If you download a fast-debug build of the JVM, you can even see the machine code it generates for a particular method (-XX:+PrintOptoAssembly).

      APIs, maybe, I don't know, but language features, definitely not.
      If you want a nicer language on the JVM, use Scala.
    7. Re:Mono needs a similar testsuite. by davebert · · Score: 2, Informative

      (1) Type erasure in java generics makes writing reflective code a nightmare.

      (4) Support for iterators in the language makes them a lot easier to write

      (5) - in your example, a is still strongly typed, it's just that you don't have to tell the compiler what it is. The dotnet rules wouldn't let you have an overloaded function such as callThisAmbiguousReturnTypeMethod that differ only in their return type, so this wouldn't be an issue.

      It's also the only way to declare a variable with an anonymous type, e.g.

      var x = new {Foo = "X", Bar = 0};

      (and yes, Foo and Bar are also strongly typed)

      Anonymous types can only be used within the method in which they defined, and are very useful at cutting down on the profusion of crappy little data type class that you'd otherwise end up having to write every time you need a simple tuple. Personally, I use them a lot for projections over LINQ expressions.

      Oh, and don't forget c# lambda expressions which can be easily be decomposed into the equivalent expression tree.

    8. Re:Mono needs a similar testsuite. by optevo · · Score: 2, Informative

      I agree that Java is showing its age. C# has the advantage that is was designed several years after Java and learnt from its mistakes. Also, Java had a philosophy (for quite a while although it seems to be changing) that language changes should be made quite conservatively. However, there are some languages that run on a JVM that integrate perfectly with the Java API but have all the C# features you mention (and many more). I highly recommend looking both at JRuby and Scala.

  3. Re:bfd by PinkPanther · · Score: 4, Interesting
    How does having an "independent" (whatever that means) implementation make a platform "right" (or rather, lack of one make it "wrong").

    What is it that is "wrong" in the platform? The fact that the base implementation is solid enough that few others found need to rewrite that wheel?

    --
    It's a simple matter of complex programming.
  4. Re:bfd by pmontra · · Score: 5, Informative

    Actually, Sun's own codebase and a 4-5% of rewritten code passes Sun's compatibility suite.

    TFA is about that 4-5% which was encumbered by patents (? the article doesn't go into details) and has been rewritten to make all the JDK free. That should be enough to finally get Debian include Java in their distributions.

  5. Re:Really ? by PinkPanther · · Score: 4, Funny

    Does this mean it consumes 2 GB of RAM to display "Hello World"???

    Man! Was that joke ever funning circa 1997...

    --
    It's a simple matter of complex programming.
  6. Language Compatibility vs. Class Libraries by KidSock · · Score: 3, Interesting

    Languange compatibility was never the main problem - it was class libraries. Java has a mountain of class libraries.

    Unfortunately most of them are complete bloat (e.g. Swing, NIO, logging ...). Each package is like a treatise on OOP and design patterns. When are people going to learn that OOP is just one tool of many?

    But Java the *language* is great. I wish that someone would create a non-bloat version of the Java class libraries. Do an analysis of important use cases, redesigned the class libraries to be much less "fluffy" and then post some metrics to show how much better it performs.

    1. Re:Language Compatibility vs. Class Libraries by jalet · · Score: 5, Funny

      > I wish that someone would create a non-bloat version of the Java class libraries. Do an analysis
      > of important use cases, redesigned the class libraries to be much less "fluffy"

      Somebody did just this already.

      --
      Votez ecolo : Chiez dans l'urne !
    2. Re:Language Compatibility vs. Class Libraries by Octorian · · Score: 3, Informative

      But at least its only a mountain :-)

      I don't know if Mono can ever catch up to the whole mountain range that .NET has bundled in. Especially since its taken far less seriously than Java by this community.

    3. Re:Language Compatibility vs. Class Libraries by snoyberg · · Score: 2, Interesting

      Why would remove features from the library make a program perform (significantly) better? Why not just avoid using those classes you consider bloated?

      --
      Thank God for evolution.
    4. Re:Language Compatibility vs. Class Libraries by CastrTroy · · Score: 4, Insightful

      I'm not sure how much more performance you could achieve simply by culling the unused stuff. Java already dynamically loads only the classes you use into memory. We have gotten to a point where people don't want to rewrite their own XML parsers, sorting algorithms, cryptography libraries, UI components, network connection handling functions, and all the other wonderful stuff provided by the .net and Java APIs. We're probably a lot better off because of it. Less time wasted writing code that someone has already written a million times. If you still want a smaller version of the JDK, there's always the Java Micro Edition Platform.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    5. Re:Language Compatibility vs. Class Libraries by DuckDodgers · · Score: 2, Insightful

      Aren't you talking about a social problem, not a language problem?

      Use the class libraries you like, build your own replacements for the ones you don't in Java itself or in C, and then (and here's the tricky part) convince the people you work with to only use your stuff.

      Rewriting all of the class libraries to be more syntax consistent and intuitive would be fantastic - but you break so much backwards compatibility you might as well give up and adopt Groovy or Scala.

    6. Re:Language Compatibility vs. Class Libraries by AKAImBatman · · Score: 5, Informative

      Source source = new StreamSource(new File(xmlFileName));
      Result result = new StreamResult(new File(xsltFileName));
       
      TransformerFactory.newTransformer().transform(source, result);
      Was that really so hard?

      If the code you posted is the best obfuscated Java code you can come up with, then I'm impressed. I've seen MUCH worse Perl, C, and even Python. Your code was at least understandable (albeit unnecessarily obtuse), thus demonstrating the unexpected readability advantages of the Java language.

      P.S. Import statements are your friend.
    7. Re:Language Compatibility vs. Class Libraries by Anonymous Coward · · Score: 5, Insightful

      And as examples of bloat, you had to pick Swing, NIO and logging?!?

      Logging is a quasi-identical to Apache's log4j, indeed this caused bad feelings among log4j's authors who felt Sun should just have officialized their API. Of course the reason Sun used it as an (ahem) inspiration is that it's very good, as demonstrated by the absolutely huge number of projects using it. And you know as well as I do that rolling out your own is a common developer trait, *especially* for trivial things like that.

      NIO is brilliant. If it's too complex or low-level for you, just use the "old IO", which is *also* good - just not as low-level.

      Swing, I can understand your feeling. Although the real problem with Swing is not "bloat" as in unnecessary complex and featurefull, it's that even though it only shipped in a JDK with 1.2 (which had the Collection framework), Sun bowed to short-sighted morons who kicked a fuss when it was suggested that it be put in java.swing (instead of javax.swing), and as a result still uses the old Vector and so on.

      Generally speaking, what you call "bloat" is due to:
      - the presence of libraries *you* don't use. Guess what, other people do.
      - the provision for extensions. For instance, the java.net package is chock full of factories, abstract classes and interfaces that you seem to disdain. And indeed to 98% of developers who just use it for the net, that's all pretty pointless. The upshot is that should you require Unix or X25 sockets, you can still use the same API - I've seen it done. Sure you have to write the C code, but the Java code is all the same except the bit that gets the address. How many open-source language don't even have a common low-level DB API, forcing you to write you own single use abstraction layer when you need to target several DBs? At least with Java you know it's JDBC. Always.

      Sun's attitude towards libraries has always been, as far as Java is concerned at least, make the simple easy, make the difficult possible. To me that's good design. Of course it means that easy can be more complex than with more specific APIs. But those tend to not allow the difficult at all :-(

    8. Re:Language Compatibility vs. Class Libraries by Moebius+Loop · · Score: 2, Insightful

      Oh come on. Java is definitely quite verbose, but no one would ever write that code like that.

      This code example wouldn't even compile, these classes don't exist in any version of xalan.xslt that I can find, and it's not even using import statements.

      import org.apache.xalan.xslt.*;

      String xmlSystemId = new File(xmlFileName).toURL().toExternalForm( );
      String xsltSystemId = new File(xsltFileName).toURL().toExternalForm( );

      XSLTProcessor processor = new XSLTProcessorFactory().getProcessor( );
      XSLTInputSource xmlInputSource = new XSLTInputSource(xmlSystemId);
      XSLTInputSource xsltInputSource = new XSLTInputSource(xsltSystemId);
      XSLTResultTarget resultTree = new XSLTResultTarget(System.out);
      processor.process(xmlInputSource, xsltInputSource, resultTree);

      And claiming that you ought to be able to do the following:

      XMLTransformer.transform(xmlfile, xsltFile, outputStream)

      Okay, so with your version:

      1. You can't transform XML that isn't stored in the local filesystem
      2. You can't apply any kind of preferences to the processor
      3. If you wanted to process multiple documents, you'd have no factory to instantiate/set common objects and attributes

      And surely a million other things. You must realize that in this day and age people are using XML and XSLT for myriad different uses, and a proper toolkit should be able to handle as many of them as possible.

      That's the best and the worst part about almost every Java library that people love to complain about. Swing gets much of this, but when you want a platform-agnostic way to put that essential UI component in the lower right-hand rectangle made by the scrollbars on your JScrollPane, Swing is the only way you're going to get there (or maybe SWT, I've never used it, but I hear similar complaints and praise).

      Java is the only platform-independent language that has this kind of power in the core library. Furthermore, this announcement means we've now got an true open-source environment that is already making inroads in the business programming world, in areas that have been previously dominated by C/C++ and (shudder) VB. This is a good thing.

      -phil
      --
      have you been seen on slash?
    9. Re:Language Compatibility vs. Class Libraries by jalet · · Score: 2, Insightful

      In case you didn't notice because you can't read, we (both the OP and me) were talking about the libraries, not the language itself. If I trust what you say, Java's libraries (the default ones) can't do anything "remotely" (this is the word) useful unless you install tons of add-ons, so basically they could as well have been thrown away a long time ago. So Java is bloated but does nothing by default excepted print "Hello World" (yes this is trollish). Java has always been overhyped by companies like Sun (but not only them).

      --
      Votez ecolo : Chiez dans l'urne !
  7. Apple by thomas.galvin · · Score: 4, Insightful

    Sweet. Maybe was can start getting Java VMs on the Mac less than a decade after they're released now.

    1. Re:Apple by Ilgaz · · Score: 3, Insightful

      Where were you past 3-4 months? :)

      Landon Fuller and a team made Java 6 running under OS X X11 (and command line of course)

      http://landonf.bikemonkey.org/static/soylatte/

      It is said to have great performance too.

      The real issue is, how to make that gigantic thing available to PPC G5 and G4/G3 (if they accept perf. penalty) processors under OS X. X11 could be OK too. The Java 6 release(!) from Apple is Intel 64bit _only_. We can't ask Apple as they even abandoned Intel 32bit users (on that release) so there should be some team, likely from IBM needs to step in. They shipped Java 6 for Linux PPC/PPC64 ages ago. They should step in and save/support their CPU customers, especially G5. While people buy G5 workstations/servers, they also bought IBM CPUs.

  8. Re:Really ? by ais523 · · Score: 4, Funny

    Does this mean it consumes 2 GB of RAM to display "Hello World"???

    Man! Was that joke ever funning circa 1997...

    Yes, nowadays everyone has the 2GB of RAM, due to Windows Vista, so it isn't a problem.
    --
    (1)DOCOMEFROM!2~.2'~#1WHILE:1<-"'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"
  9. Re:bfd by Anonymous Coward · · Score: 5, Informative

    So, Sun's own codebase passes their own compatibility suite. BFD.

    If after more than a decade, there is not a single, independent, compliant Java implementation, then there is evidently something wrong with the Java platform. What in the world are you talking about?

    There has been multiple compliant java-implementations for years now.

    IBM's JDK (which is their own codebase).
    and ORACLE's JDK (BEA JRockit)

    both of which passed the Java TCK and can claim Java compatibility and compliance.

    As for performance, the OPENJDK is based primarily on SUN's JVM code, hence it has the exact same optimizations (same HOTSPOT, and etc). Only a small majority of the code was replaced with open source alternatives which doesn't affect performance.

  10. Re:Just use a glove by sidnelson13 · · Score: 5, Informative

    OpenJDK came to surface due to pressure of the OS community, to be to fulfill OS purists' ideals. For example, being able to embed the JDK into OS Linux systems.

    OpenJDK is an effort backed up by Sun also, so that is no impasse here.

    This is great news! I can see faster and greater improvements coming to the JDK having it open.

  11. What's the point? by jps25 · · Score: 4, Interesting

    Okay, so I understand that this is a huge success, yay GPL and all that, but what is wrong with Sun's JDK?
    What makes the OpenJDK more desirable than Sun's?
    Is it merely the GPL?
    Are there any performance gains?
    I don't use java, so I really have no idea and it would be nice if someone could enlighten me.

    1. Re:What's the point? by Funks · · Score: 3, Interesting

      Okay, so I understand that this is a huge success, yay GPL and all that, but what is wrong with Sun's JDK? What makes the OpenJDK more desirable than Sun's? Is it merely the GPL? Are there any performance gains? I don't use java, so I really have no idea and it would be nice if someone could enlighten me. Trying using the Sun distributed JDK on FreeBSD, NetBSD and other micro architectures like MIPS. Moreover, being completely GPL - Linux distributions will be able to bundle it in. The BSD's will also benefit from this and won't be treated like a redheaded step-child anymore when selecting a JEE hosting platform. Note, RedHat is a big player in the Java (JEE) middleware industry. So basically, it was in their best interest to see this through.
    2. Re:What's the point? by Vectronic · · Score: 3, Informative

      From what i understand, the advantage is that distributions that are (or try to be) 100% "Open Source" can now add this to their list.

      Ontop of that, it means that anyone and their dog can dig through it, and maybe even improve on it, plus being able to make better java applications knowing exactly whats going on...

    3. Re:What's the point? by youngdev · · Score: 3, Interesting

      It is my understanding that all of core java would be based on the OpenJDK going forward. Basically OpenJDK is SunJDK6.999 beta. SunJDK 7 will be the openJDK and SunJDK >= version 7 will all be open(gpl?).

      Someone please correct me if that is wrong.

    4. Re:What's the point? by sidnelson13 · · Score: 2, Informative

      Of course, we can search for enlightenment ourselves!

      OpenJDK FAQ

      Cheers!

    5. Re:What's the point? by j79zlr · · Score: 2, Informative

      64-bit plugin for 64-bit browsers. For some strange reason Sun refuses to release one. The current icedtea plugin for my Gentoo amd64 install works about 50% of the time. Hopefully they can get that up to where it is more compatible

      --
      I'm not not licking toads.
  12. Re:Ask Slashdot by The+End+Of+Days · · Score: 5, Informative

    Java the language and Java the platform are not at all the same thing. OpenJDK refers to an implementation of the platform, which includes the tools, the API, and the VM.

    It's mostly written in Java (the language), by the way.

    By the by, reading that first link made my brain hurt. When is GNU going to learn that the language of doom ("shackled," "trap," etc.) is a good way to ensure that you preach only to the choir?

  13. Re:Ask Slashdot by Thiez · · Score: 2, Informative

    Java comes with a huge library of classes. It seems that is was the article about. I'm sure you can write a working java interpreter in less than 6.3 million lines.

  14. Re:Ask Slashdot by Anonymous Coward · · Score: 3, Insightful

    That count includes the standard libraries. And it includes the *comments* in the standard libraries, from with the javadocs are generated. All in all, it sounds like a pretty reasonable number.

  15. Re:Really ? by snoyberg · · Score: 3, Funny

    I had 2 GB of RAM you insensitive clod.

    --
    Thank God for evolution.
  16. Re:Really ? by sm62704 · · Score: 3, Insightful

    Does this mean it consumes 2 GB of RAM to display "Hello World"???
    Man! Was that joke ever funn[y] circa 1997...
    And in 1987 it was "Does this mean it consumes 2 MB of RAM to display 'Hello World'???" and in in 2017 the joke will be upgraded to "Does this mean it consumes 2 TB of RAM to display 'Hello World'???"

    Why does it seem that every time the hardware guys give us more machine, the software guys use every last bit of it to do exactly what the previous generation of machines did, only the previous generation did faster?
    --
    mcgrew's razor: Never attribute to stupidity that which can be explained by greedy self-interest
  17. Re:Really ? by bsDaemon · · Score: 5, Insightful

    Because each generation of "software guy" becomes n+1 generations removed from being a hardware guy himself. That is to say, the tools become "better" to make programming "easier" for people who aren't also electrical engineers.

    At least, if I had to guess, that's what I'd say.

  18. Re:Ask Slashdot by SanityInAnarchy · · Score: 2, Funny

    When is GNU going to learn that the language of doom ("shackled," "trap," etc.) is a good way to ensure that you preach only to the choir? I suspect it'll be around the same time that Republicans learn that people care about more issues than the terrorists.
    --
    Don't thank God, thank a doctor!
  19. Re:bfd by Jah-Wren+Ryel · · Score: 4, Insightful

    What is it that is "wrong" in the platform? The fact that the base implementation is solid enough that few others found need to rewrite that wheel? Because you get people coding to the bugs of the implementation without even realizing it, since it works after all. And then eventually you reach a point where new versions don't fix the bugs because too many systems depend on them. Sound like a monopolist you know?
    --
    When information is power, privacy is freedom.
  20. Re:bfd by DickBreath · · Score: 4, Insightful

    Question: How long did it take Wine to come up with something mostly compatible with Windows? Fifteen years?

    Have you considered that Java is almost like writing an OS? A runtime byte code, compiled form multiple source languages. Almost every service of an OS provided in a portable way. (eg, sound, video, graphics, multiple portable widget toolkits, network access, file access, system tray access, and the list goes on...)

    GNU Classpath is mostly compatible now. Much like Wine.

    --

    I'll see your senator, and I'll raise you two judges.
  21. Re:Really ? by Anonymous Coward · · Score: 5, Funny

    You forgot the corrolary to Moore's Law, Which is Gates's Law: Every 18 months, the speed of software halves.

  22. Re:Just use a glove by VGPowerlord · · Score: 2, Informative

    I was under the impression that OpenJDK was the Sun JDK7 project.

    --
    GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
  23. Spelling by blueforce · · Score: 2, Funny

    He actually spells it "Ice T": http://en.wikipedia.org/wiki/Ice_T

    --
    If you do what you always did, you get what you always got.
  24. Re:Really ? by Anonymous Coward · · Score: 2, Interesting

    You don't realize (or maybe you do) how accurate this is. As much as I hate to admit it, I'm a perfect example.

    I sit right next to a guy at work that went to the same university I did. However he's got 10 years on me. Both degrees are in Computer Science. Yet he knows a LOT more about E.E. stuff than I do. It seems the curriculum at our school got softer (pun intended) as the years went on.

    I realize this at least and do my best to pick up bits and pieces from him and the other E.E. guys here at work. But it does disappoint me a bit that I didn't get the same level of education as my co-worker.

  25. Re:Really ? by afidel · · Score: 2, Informative

    Sure they could the Cray T90 came out in 1995 with up to 8GB of ram and the Y-MP M90 came out in 1992 and had up to 32GB of ram, the T3D came out in 1993 with up to 64GB of ram. Basically your run of the mill supercomputer had several times that much ram by the mid 90's =)

    --
    There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
  26. Re:Ask Slashdot by Jason+Earl · · Score: 3, Insightful

    By the by, reading that first link made my brain hurt. When is GNU going to learn that the language of doom ("shackled," "trap," etc.) is a good way to ensure that you preach only to the choir?

    RMS has been talking that way for years. There's essentially no chance of him changing his ways at this point. This is especially true considering the fact that RMS' zealotry has netted him an impressive string of wins including a GPLed version of Java.

    The fact of the matter is that the Free Software community has become a rather influential player in the software world. Sun GPLed Java because the executives at Sun finally realized that despite the huge push for Java from the "Enterprise" crowd, the real reason that Java was a competitive platform was because of the large quantity of Free Software that had grown up around Java. Sun needed Free Software hackers, but for the most part Free Software hackers weren't interested in working with Java.

    In this particular case, preaching to the choir was precisely what was needed.

  27. Maybe you don't understand .Net? by encoderer · · Score: 4, Informative

    For the last 2 years I've been doing Python work with a little PHP but the 2 before that were spent almost exclusively in .Net (C# and IronPython).

    Right now on my dev box I have 4 versions of .Net.

    They run side-by-side without issue.

    There is no forced upgrade. It's like saying that C wasn't predictable because C++ emerged.

    1. Re:Maybe you don't understand .Net? by Anonymous Coward · · Score: 2, Informative

      You may not have hit any issues this way but I have. There's one strange case I know of without a good solution. The .NET control container in IE will by default use the newest runtime installed on the machine when rendering a web page that contains an embedded .NET object (client side control). If the control was compiled against 1.1 and you have 1.1 and 2.0 on your machine it will try to run it in 2.0. In the case I had, it failed due to API changes from 1.1 to 2.0. You can specify which version IE will use using a config file (iexplore.exe.config I think it was called) but that setting will hold across all web pages, so that's not so great.
        Developers dislike Java's way of deprecating old APIs, figuring it leaves cruft, but if MS had deprecated what they changed and made new versions I never would have had this issue. Then again maybe my company deserves their resources being wasted this way by letting my predecessor actually write a web page using .NET client controls, but still.

  28. Re:bfd by PinkPanther · · Score: 4, Insightful
    Or maybe its that the default implementation is really quite good.

    Which it is.

    Could it be improved? Sure it could...name a single software product that couldn't be. But there are many billions of dollars of IT projects that depend on Java, so trying to pass it off as immature, incomplete, incorrect or insufficient is nonsense.

    --
    It's a simple matter of complex programming.
  29. Re:Ask Slashdot by Jason+Earl · · Score: 2, Insightful

    There's no contradiction, although I admit that I could have been more clear. Java was Free enough that a substantial amount of Free Software was created for it. However, the majority of Free Software hackers steered clear, and that has hurt Java quite a bit (for essentially no benefit to Sun).

    For example, even Sun-supported Gnome contains more Mono-based C# in it than Java. Free Software hackers generally used (and built) competing web technologies instead of using Java-based tools. You can get web hosting that includes toolkits based on PHP, Perl, or Python from any number of sources, and for ridiculously reasonable prices. You can then use these accounts to host sophisticated Free Software applications. Java should have done much better in this space, but Sun's licensing precluded that.

    Free Software hackers used (and built) competing tools for creating desktop applications as well. Heck, one of the most popular Java-based desktop applications is Eclipse, and because it is based on SWT it isn't even pure Java.

    When you think of the time and effort that went into the various Java replacement toolsets like gcj, Harmony, GNU classpath, etc. it is pretty clear that Sun wasted a great deal of Free Software effort that could have gone towards making Java that much cooler. It will be interesting to see what happens to Java now that a 100% Free Software version is finally available.

    Java would almost certainly be a cooler platform today if Debian (to give an example) would have included it in main years ago, or if the source would have been available for a decent, up-to-date port to the BSDs and other niche platforms. Java was an inferior choice for even the less zealous of the Free Software community simply because you couldn't count on it being available. gcc, as an alternative, is available everywhere. Heck, Python is available everywhere. Java's write once run everywhere promise has been broken for years for people that are interested in platforms outside of Sun's narrow scope.

    If it weren't for the Free Software that grew up around Java it would not be a viable platform today, plain and simple, but that doesn't mean that Sun has done a particularly good job encouraging Free Software hackers to use Java. A lot of opportunities have almost certainly been missed.

    Thanks for encouraging me to spend some time making my point more clear. I appreciate it.

  30. Re:Really ? by Jesus_666 · · Score: 5, Funny

    Does this mean it consumes 2 GB of RAM to display "Hello World" ???
    So does C(++) because of all the memory leaks, every BASIC dialect because of interpreter overhead, Dotnet/Mono because it includes half of Windows, Python and Ruby because of all the objects, Lisp to store all the braces and Perl just because it can. PHP doesn't because nobody has tried it yet. ASM also doesn't because it always drops the processor back to 8080 emulation mode and can't address 2 GiB of RAM.

    The One True Language, beloved by all (Objective-C) also uses 2 GiB of RAM for "Hello World", but just because it needs to use that memory to cure cancer and feed starving children.
    --
    USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
  31. Re:Really ? by mischi_amnesiac · · Score: 3, Insightful

    Don't you think he has more knowledge than you because he has been working the last 10 years and learned new things? After all, you don't learn everything in a university.

    --
    "Die endgueltige Teilung Deutschlands - das ist unser Auftrag." - Chlodwig Poth
  32. Re:Really ? by Reverend528 · · Score: 4, Insightful
    But linux runs on more hardware than OS X or windows. And it runs faster than both.

    Maybe it has more to do with the skill of the developers than anything else.

  33. Re:Really ? by bsDaemon · · Score: 3, Insightful

    If you can design the logic circuits, you should be able to code. Had "computer science" even been developed as an independent discipline when they were building the Apollo guidance systems? I don't know the answer to that.

    I agree with the rest of the statement though. I think that the real problem is that too many departments are teaching using Java and the like, which are "industry standards" because too many students are looking at computer science as a gateway to a career coding JBoss apps for a bank, or working in IT -- basically a 4 year trade school.

    Computer Science has about as much to do with IT as mechanical engineering has to do with working in a lube shop. Sure, you could do it -- but you should have been taught to do a whole hell of a lot more. If all you want to do, or can do, is the trade aspect then I'm not sure that an extended education in what is essentially applied mathematics is really the route to go, and those who want that advanced theoretical knowledge shouldn't have to have their class time watered down by the kid who is still in .com mode.

    Then again, what the hell do it know. *goes back to working in Quark*

  34. Re:Just use a glove by HJED · · Score: 2, Informative

    the JDK7 project builds it source from it and adds in all the propitiatory software it is still in beta

    --
    null
  35. Re:Really ? by Rycross · · Score: 2, Insightful

    I don't remember saying anything about faster. I said its more feature-full, which is true. I can run emulators for systems like the Playstation. My games are prettier and have more features. My word processor checks my spelling and grammar as I type. My IDE checks for syntax errors, displays possible methods to use, compiles documentation, checks my coding for various coding standards. I'm streaming, transcoding, and playing video. I'm doing video chat. You have web apps giving you a more user-friendly experience, like gmail. Granted, a lot of these things were possible or even implemented in '98, but were they widespread, stable, useful, and feature-full? I'm sure you could make an argument that you're doing the exact same things on your computer today that you were doing 10 years ago, but only if you generalize it to a degree that it becomes meaningless ("coding", "writing a document", etc).

    Your comment about having more memory is wrong. My programs didn't crash because I didn't have enough memory. They crashed because they were shoddily written and didn't do a lot of stuff that modern languages and programmers do as a matter of course. I mean, C++ programmers make heavy use of RAII and smart pointers these days. They slow down the program but they prevent memory leaks. C# and Java have garbage collection to do the same things. Most modern languages have containers that do bounds-checking automatically. Thats slower than if you just threw the input at it. More validation, etc.

    And yeah, my OS is better these days. Thats an improvement in the OS. And some of those improvements take *drumroll* more processing power, because bugs need to be coded around, and more checks and validations need to be performed.

    To be sure there are some things that are designed to save developer time given programming time. The .Net remoting framework often generates overly-verbose network traffic compared to something that you wrote using plain sockets. But at the same time, in addition to being quicker, you also get strong typing, and the libraries take care of making sure the data you pass between layers is appropriate.

    Its just irritating to have people repeatedly say that developers are lazy and writing inefficient code. These days I worry more about the code I'm writing than I was in the past. And most developers I know are the same. You may be able to get your super-awesome "bloat" free programs, but they'll probably take twice as long to develop with less features, be full of bugs, crash all the time, and leak like a sieve. The 90's was not the golden age of computer software that a lot of people make it out to be.

  36. Bloat? by ttfkam · · Score: 4, Informative

    Are you sure you're not overreacting? If you hop on over to perl.com, you'll notice that the *compressed* source of Perl 5.10.0 is 14.9MB. The compressed source of Python 2.5.2 is 11MB. Ruby 1.8.7 comes out well at 3.9MB, but that's without any gems (good or bad depending on your point of view). The source for Common Lisp 2.4.5 is 7.1MB.

    However you're singling out Java as the one that's bloated? Get real.

    --

    - I don't need to go outside, my CRT tan'll do me just fine.
    1. Re:Bloat? by Nikker · · Score: 3, Insightful

      There really isn't that much bloat in Java. The reason the source is so huge is because of all library's. They have much more than a standard C distribution and cover every thing from OS calls to network sockets, thread management, encryption, HTML tools, the list still goes on. Being able to compile a Java class file that can be run natively by the kernel your class size would be quite small compared to the class file + run time files.

      --
      A loop, by its nature, continues. If that didn't make sense, start reading this sentence again.
  37. Re:bfd by speedtux · · Score: 2, Insightful

    BTW, how many independent Perl implementations are there?

    None. There are also no "Perl compatibility kits". Perl is licensed under the AL, so if Larry Wall falls off a cliff, commercial users can continue to use it. Perl doesn't pretend to be something it is not.

    So, what does your question have to do with Java?

  38. Re:Just use a glove by setagllib · · Score: 4, Insightful

    Put down the crack pipe. Java still has at least 3-4x as much penetration as .NET in the enterprise alone, and in community open source .NET barely makes an appearance at all. Microsoft's marketing should not be confused for fact.

    --
    Sam ty sig.
  39. Re:bfd by setagllib · · Score: 2, Informative

    I also disagree with the great cost of the Java compatibility kit, but having it there at all is a great idea. It's basically one big unit test harness, and we all know unit testing is a good thing when done right. So now Sun have a unit testing framework they can use to ensure new releases really do maintain backwards compatibility, and one that alternate implementations can use to have a reasonable confidence their version of Java actually works.

    --
    Sam ty sig.
  40. Re:Really ? by Tanktalus · · Score: 2, Insightful

    Memory is about $20-$40/GB. Disk space is down to about $0.30-$0.50/GB. CPU is about $0.01 per bogomip (hey, there isn't really a good measurement out there, so what the hell).

    Yeah, let's teach a fantasy.

  41. Re:Just use a glove by dave87656 · · Score: 3, Insightful

    Had sun GPL'd java YEARS ago, .NET would be nowhere today. Too bad for them, at this point it is far far too late and .NET has essentially taken over the rein of next-generation development. What are you smoking? Java has a much higher penetration than .NET.