Slashdot Mirror


State of the OpenJDK Project and Java 7

LarsWestergren writes "David Flanagan, the author of Java in a Nutshell, has a nice writeup on the state of the open source development of the next version of Java. The article explains the difference between the JDK7 and the OpenJDK projects and how to join them. Furthermore, it has an overview of the release schedule, proposed language changes and projects of interest. A more technical and in-depth tracking of the language changes and proposed new features can be found at Alex Miller's blog. This is the first in a series, and 'each future installment will provide an update on what's currently happening in the latest builds from the project, along with a deep dive into a new feature or API that's tracking for inclusion in Java 7.'"

28 of 184 comments (clear)

  1. Waste of time? by thunderlizard · · Score: 2, Interesting

    Isn't the OpenJDK just a waste of time (or a reinvention of the wheel?). The Sun JDK is already open, with the source code available...

    1. Re:Waste of time? by aled · · Score: 4, Informative

      Isn't the OpenJDK just a waste of time (or a reinvention of the wheel?). The Sun JDK is already open, with the source code available...


      OpenJDK IS the SunJDK, is just that Sun open sourced the SunJDK under GPL with the name OpenJDK, minus some proprietary components that are being replaced by the community.
      --

      "I think this line is mostly filler"
    2. Re:Waste of time? by mhall119 · · Score: 4, Informative

      The OpenJDK is Sun's JDK, only under the GPLv2 license. Sun's JDK may make the source available, but you are limited as to what you can do with it.

      --
      http://www.mhall119.com
    3. Re:Waste of time? by mhall119 · · Score: 4, Informative

      I think it's more a case of a "it isn't open source, so it can't be any good" kind of mentality, instead of trying to fix an actual problem. You couldn't fix the actual problems under Sun's old license, that was the problem. Sure you could submit patches, but you couldn't distribute your fixed version, so if your patch doesn't get accepted, nobody benefits. You were also limited as to how you could distribute the unmodified JDK or JRE, which is why most Linux distros shipped with GCJ and Kaffe/Classpath instead of Sun's JDK. This further meant that most Linux distros wouldn't ship Java applications, even open source ones, in the default install. Finally, most take a look at Mac OS X support, or 64bit support, they're both lacking in Java, and there isn't much people could do about it under the old license.
      --
      http://www.mhall119.com
    4. Re:Waste of time? by wawannem · · Score: 2, Informative

      The OpenJDK is Sun's JDK, only under the GPLv2 license. Sun's JDK may make the source available, but you are limited as to how you can re-distribute it or derivatives of it.


      There, I fixed it for you. -W

    5. Re:Waste of time? by Selivanow · · Score: 2, Interesting

      I for one want to see OpenJDK succeed. You see, I run Linux on a SPARC box. Guess What....I don't have any recent version of Java. There was Blackdown, but even that hasn't been updated in a while...license issues I believe.

      --
      -- ...trying to make digital files uncopyable is like trying to make water not wet. -Bruce Schneier
  2. v1.6 at 64bit on FreeBSDv7.0 by billsf · · Score: 2, Informative

    Simply happy to have a 'modern' jdk on a modern machine running a modern OS. Very slick stuff. :) Something new again? I call that real progress.

  3. Bad requirements by bchernicoff · · Score: 3, Insightful

    It sounds like they still have no idea which new language features will make it into the release. What is driving them to add new features? Are they just trying to move the language "forward"? If the developer community isn't pushing new requirements then why muck with the language?

  4. Re:Java 7? by mhall119 · · Score: 2, Insightful

    Install Linux on your iBook and you're all set.

    --
    http://www.mhall119.com
  5. Re:Java 7? by Anonymous Coward · · Score: 3, Informative

    Ask Apple. They're the ones that maintain Java for Mac OS X, which is why it's close to impossible to get a recent version of Java for any Mac OS X not released in the last three years.

  6. Refactoring by ishmalius · · Score: 4, Insightful

    It's good to see that there is at least one project aimed at cleaning up old legacy code. The thing needed most by Java, IMHO, is not more features, but a thorough cleanup of the runtime classlib. The packages and classes need to be rearranged logically, renamed, made to have consistent API's and naming patterns. Redundancies need to be removed (like 3 different RPC schemes and APIs), and deprecations finally need to be pruned. Collections- and non-collections-containers need to be merged, and AWT and Swing need to be reconciled. There needs to be a declarative GUI design grammar. Maybe JavaFX's grammar could be borrowed for that. And the long-promised merging of Swing and Collections needs to happen, too. (Like a popup list could be accessed as a java.util.List)

    I have thought for years that there needs to be a "JDK 2.0" series started which would be a clean break from the 1.x series. Keep maintaining the 1.x series, but make a fresh start.

    1. Re:Refactoring by ZeroConcept · · Score: 2, Insightful

      I would argue that a cleaner API is one of the advantages of .NET over Java, cleaning up the Java libraries would certainly bridge this gap.

    2. Re:Refactoring by mhall119 · · Score: 2, Informative

      AWT and Swing need to be reconciled Reconciled in what way? Mixing AWT and Swing widgets has been fixed in current Java 7 builds. Other than that, I don't know what kind of reconciliation is possible.

      There needs to be a declarative GUI design grammar. Maybe JavaFX's grammar could be borrowed for that. JavaFX's grammar was taked from F3, which is a declarative GUI language for Java.

      And the long-promised merging of Swing and Collections needs to happen, too. (Like a popup list could be accessed as a java.util.List) Beanbindings (JSR 295) is already in the works, and will allow you to "bind" a java.util.List as the data model for a JList widget. Meaning that you can read JList info from the java.util.List, or write to a java.util.List and have the changes appear in the JList on the next repaint.
      --
      http://www.mhall119.com
    3. Re:Refactoring by dintech · · Score: 2, Insightful

      I would agree that there is lots of legacy detritus left in the class libraries. However, I'm not sure it really causes that much of a problem. If you don't use those classes for anything, they're pretty much invisible to you.

    4. Re:Refactoring by Abcd1234 · · Score: 3, Insightful

      ROFL! You can't be serious! Consider:

      Array.Length
      List.Count

      I'm sure there are a million other examples (date handling, for example, is totally fucked up in .NET).

      I've said for some time now, C# is actually a pretty decent language hobbled by a horrible class library.

    5. Re:Refactoring by julesh · · Score: 2, Insightful
      That's strange. All my Java programs, nearly all of them large Swing programs, start up in less than one second. Without any OS caching.

      One second is way too long for process startup, IMO. A process should be able to be running within a tenth of a second, to be useful in many circumstances.

      Timings of a C-based hello-world program:

      Jules@minerva ~/My Documents/projects/eclipse/jzx/bin
      $ time ./test
      Hello, world

      real 0m0.047s


      Python-based equivalent:

      Jules@minerva ~/My Documents/projects/eclipse/jzx/bin
      $ time python test.py
      Hello, world

      real 0m0.109s


      Java-based equivalent:

      Jules@minerva ~/My Documents/projects/eclipse/jzx/bin
      $ time java Test
      Hello, world

      real 0m0.266s ...

      Jules@minerva ~/My Documents/projects/eclipse/jzx/bin
      $ java -version
      java version "1.6.0_01"
      Java(TM) SE Runtime Environment (build 1.6.0_01-b06)
      Java HotSpot(TM) Client VM (build 1.6.0_01-b06, mixed mode, sharing)


      Why is Java the slowest of all three of these? A quarter second startup time for a trivial CLI program on a modern computer with a multi-gigahertz processor, a surplus of RAM and Java already in the cache (because two existing Java programs were already running on the machine) is unacceptable. The job Java has to do is substantially simpler than Python's job, which included compiling the source to bytecode prior to running it. It makes Java implausible for writing high-performance CLI programs, which you often need to run hundreds of times to perform certain jobs.
  7. Re:Swing Sucks by samkass · · Score: 5, Informative

    In the latest JDK6 and JDK7 builds, Swing has been replaced with something that doesn't suck in terms of performance and looks halfway decent-- it's called "Swing" and has the same API as Swing. Seriously, there have been vast improvements in Swing lately, from using hardware acceleration to themes that very closely match native L&F's. I'm not sure what year you last tried Swing, but give it another look.

    In the latest JDK7 build, they even fixed the "mixing heavyweight and lightweight" z-order problem, so you can mix native AWT widgets into a lightweight Swing UI.

    --
    E pluribus unum
  8. Re:Swing Sucks by loubs001 · · Score: 2, Informative

    The default "cross platform" look and feel is indeed hideous, which is why most people would enable the native platform look and feel. The native platform look and feels were pretty bad in the past, but in Java 6 they're close to perfect, both on Windows and GTK. As for the cross platform look and feel, the Swing team have been working furiously to produce a modern replacement that will be available in a Java 6 update release early next year. It's called the Nimbus look and feel. Early screenshots available at http://www.galbraiths.org/blog/category/nimbus/ and http://www.jasperpotts.com/blog/category/nimbus/

  9. Re:Swing Sucks by LarsWestergren · · Score: 5, Informative

    The one problem for java applications is still startup time. I just don't know what can be done about that except preloading java at boot. Which is a waste if you are not running a java app that day.

    Actually, Chet Haase recently blogged about the changes being done in this area. Unfortunately many of these quickstart "cheats" are for Windows only, when questioned about this at JavaOne they said they didn't have enough engineering hours to do this for other operating systems but would welcome community contributions to this with open arms.

    Linux and other users WILL still benefit from the Java Kernel work by Ethan Nichola's team though, this will be backported to Java 6 as part of the Consumer JRE project.

    --

    Being bitter is drinking poison and hoping someone else will die

  10. Re:Swing Sucks by Anonymous Coward · · Score: 2, Informative

    In the latest JDK6 and JDK7 builds, Swing has been replaced with something that doesn't suck in terms of performance and looks halfway decent-- it's called "Swing" and has the same API as Swing. Seriously, there have been vast improvements in Swing lately, from using hardware acceleration to themes that very closely match native L&F's. I'm not sure what year you last tried Swing, but give it another look. Yeah, Swing has improved, but it's still awful. Last used date, umm, right now. I have use several Swing apps every single day and can't stand using them (Netbeans, JAP, others are internal only). Version? 1.6.0 (Ubuntu Feisty package). The two non-Swing programs I use are so much nicer (Eclipse, pdftk (command line)). I actually enjoy using those two, though several things in Eclipse aren't native and get very irritating.

    Try using the GTK+ native l&f. Everything looks very bad and wrong. None of the controls look right. Spacing is off. All the layout is weird. Font rendering looks awful. The select boxes look horrible and don't work properly. Nothing behaves correctly. Hell, even Firefox looks and acts more native than it and Firefox sticks way out and looks hideous compared to a truly native app. This is why I just use the 1993-ish ugly purple default Swing theme.
  11. Re:Swing Sucks by petermgreen · · Score: 2, Interesting

    ahh the horrible practice of hiding your applications startup time in the systems startup time. It is practices like that which make low end machines horrible to use and contribute to the feeling of bloat in a modern desktop OS.

    --
    note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
  12. Jesus, JDK7?! by Lysol · · Score: 2, Interesting

    Man, I've been programming Java since 1.x (yah, yah, I know). Is it me or does it just seem like the versions are getting a little whacky. I don't do much Java programming anymore, but it always seems like a jump in major number was a big issue if you have to maintain apps. Shit, how many people out there in the 'real' working world use 1.6? Prob no one. Last project I did (for a major bank) required 1.4.2 and it was deployed at the beginning of this year.

    I feel like it's great (again, even tho I'm not using it this year) that Sun is on top of stuff and 'looking ahead'. But I really wish they would do meaningful SMALL dot increments and quit shoving out a now major release every year or so. I know 1.5 was out a while ago. But why not keep making 1.5 REALLY super stable and optimized and make 1.6 ONLY the one with the new uber-Swing and whatever else.

    It's sorta like Microsoft coming out with Vista even tho no one want's to use it cuz all the 'new stuff' (which seems to have been cut at the last minute) isn't stable. Continuously having big releases makes people feel like they have to abandon the older releases so they can focus on re-learning all the new features that haven't made it out yet. I've seen this on teams I've worked with.

    I just think more stable, optimized, smaller point releases are the way to go. And Sun being an 'enterprise' company should know this.

  13. Re:Language-level support for XML? by WWWWolf · · Score: 2, Informative

    Awesome, just what I've always wanted. Parsing XML is an extremely important requirement in determining the expressiveness of a language, mind you. Except, they're gonna be screwed when CSV files come back. And don't even get me started on what a pickle they'll be in when those .DAT files return to claim their rightful place!

    As such, I move to recommend that Java incorporate support for parsing CSV and DAT files into the language.

    First of all, Java already has pretty good "language-level" support for XML for short while now - it's called JAXB. Basically, you can say things like "this class, Foo, represents XML tag <foo>" in your code, and use the JAXB Marshaller and Unmarshaller to save and load XML.

    And when the CSV files come back, all you need to do is implement String toCsvRow() or String toCsv() in your class and implement a marshaller/unmarshaller that walks your data structure and crunches it into CSV, or back. It's not like CSV would be some sort of rocket science or anything =)

    As for mysterious .dat files, Java has had ObjectOutputStream / ObjectInputStream / Serializable for ages for that exact purpose. Producing mysterious binary crap for over a decade now! =)

  14. Re:Bah. by julesh · · Score: 4, Insightful

    The only open source java project worth noting these days is GCJ.

    Anything deriving from Sun's JVM is over. Done. Good riddance.


    Right. Because all we really need is an implementation of the language that's mostly compatible with a five year old version, and which as of the latest released version doesn't yet support generics, a critical improvement to the language definition that was made nearly 3 years ago now.

  15. Re:Still limited AMD64 support by j79zlr · · Score: 2, Informative

    So you are using a 32-bit browser. The only 64-bit java plugin available for 64-bit browsers is the insecure Blackdown java plugin which is still at version 1.4.2-something. It hasn't been updated in years.

    --
    I'm not not licking toads.
  16. Re:Swing Sucks by ttfkam · · Score: 2, Funny

    "Try using GTK+. Everything looks very bad and wrong..."

    There, fixed that for you. :)

    --

    - I don't need to go outside, my CRT tan'll do me just fine.
  17. Consistent, sane branding and versioning needed by Fastball · · Score: 4, Insightful

    Anybody else confused by Java's branding and versioning? Stop calling version 1.7 of the language Java7. When Java2 was released, I thought it'd be Java 2.0; no, it was Java 1.2.

    Now we have OpenJDK, Blackdown, Sun, and so on... Somebody should take Java, call it "Java," and give it logical versioning like Java 1.6.0 and Java 2.0.0. Worked for Linux and Apache. It could work for Java too.

  18. Re:Language-level support for XML? by kramulous · · Score: 2, Funny

    As such, I move to recommend that Java incorporate support for parsing CSV and DAT files into the language.

    I second that that motion. Hopefully motion will be parsed.
    --
    .