Slashdot Mirror


Oracle and the Java Ecosystem

First time accepted submitter twofishy writes "After an undeniably rocky start, which saw high profile resignations from the JCP, including Doug Lea (who remains active in the OpenJDK), and the Apache Software Foundation, Oracle is making significant efforts to re-engage with the wider Java ecosystem, a theme which it talked up at the most recent JavaOne conference. The company is working hard to engage with the Java User Group leaders and Java Champions, membership of the OpenJDK project is growing, and the company is making efforts to reform the Java Community Process to improve transparency. The firm has also published a clear, well-defined Java roadmap toward Java 8 and Java 9."

34 of 157 comments (clear)

  1. *Yawn* by WildTangent · · Score: 5, Insightful

    Talk is cheap.

    1. Re:*Yawn* by stanlyb · · Score: 2

      In Oracle's case, it is expensive, for them. If only they had not tried to "embrace" the whole java community, but as they cannot go back in time, java is history, so to say.

    2. Re:*Yawn* by Grishnakh · · Score: 4, Funny

      Larry Ellison IS the devil. Haven't you seen a photo of him?

    3. Re:*Yawn* by DetriusXii · · Score: 2

      That, and they'll be shifting back once they see what godawful disaster Scala is in terms of linguistic complexity.

      Note to Lift library developers: implicits to implement CSS-style selectors and replacements in snippets is even less cool than C++ operator overrides.

      The Play Scala framework provides a better web framework. It's more natural to understand. I do agree that Lift wasn't intuitive (although I may go back to it at a later point in time). I disagree with the linguistic complexity. A lot of Scala borrows from FP paradigms and FP attempts to reify programming patterns that are experienced throughout a programmer's life. I don't understand what your criticisms towards Scala are considering Scala is more than just Lift.

    4. Re:*Yawn* by pak9rabid · · Score: 3, Insightful

      ... java is history, so to say.

      No, it's not. And the reason it's not is because it's already entrenched. Hell, just last week it was reported that Java was still the #1 language being used; it's certainly not disappearing anytime soon. Oracle will get it right, or face hundreds of pissed off businesses and governments.

  2. jigsaw by Anonymous Coward · · Score: 4, Insightful

    seeing what's happening on the modularization front i'm afraid it'll be just like the fiasco with log4j and jdk logging which came afterwards. modularization is what java applications (well, backend servers powering too complex enterprisey-apps) need, and that should be achieved through the means of easy to use osgi tools instead of yet another (sun|oracle) screwup mimicking an "oss standard".

    1. Re:jigsaw by randomlogin · · Score: 4, Interesting

      Modularization is what java applications (well, backend servers powering too complex enterprisey-apps) need, and that should be achieved through the means of easy to use osgi tools instead of yet another (sun|oracle) screwup mimicking an "oss standard".

      I think you're missing one of the main points of Jigsaw - which is modularizing the platform, not the application. This is especially important if Java is to get back into the embedded space, where JavaME and CDC are so antiquated it's just not funny any more. Having a range of well defined platform profiles which span everything from headless embedded devices up to a full enterprise stack (while using the same underlying codebase) would be a major step forward. Personally, I don't care what the implementation details are - the changes aren't going to stop anyone from using OSGi to modularize their applications if they want to.

  3. Oracle matters less thank you'd think by SplashMyBandit · · Score: 5, Interesting

    Compared to other development platforms (eg. MS C++, C#.NET etc) the influence of Oracle is less important than many people may think. Basically the OpenJDK is more important than Oracle's commerical offering (the successor of the Sun JDK - which is very similar to OpenJDK as they have almost all source code in common). But even if this were not the case the Java 'world' has a lot of alterantives: the IBM JDK, GNU GCJ, Apache Harmony. This means that Oracle can try throw its weight around but it is not as devastating as Microsoft would be in the .NET world. This is one beauty (for end-users/developers) with the Java ecosystem.

    1. Re:Oracle matters less thank you'd think by Anonymous Coward · · Score: 5, Informative

      I disagree, OpenJDK (specially for Java 6) has many incompatibilities. Try running Intellij IDEA on it (they don't recommend it), or even some app servers.

    2. Re:Oracle matters less thank you'd think by OverlordQ · · Score: 3, Informative

      But even if this were not the case the Java 'world' has a lot of alterantives: the IBM JDK, GNU GCJ, Apache Harmony. [...] This is one beauty (for end-users/developers) with the Java ecosystem.

      Until what you wrote for for one doesn't work on the other. Java likes to say it's cross platform, but there's still lots of implementation specific hangups in the various JREs.

      --
      Your hair look like poop, Bob! - Wanker.
    3. Re:Oracle matters less thank you'd think by 0123456 · · Score: 3, Insightful

      Adding unsigned types to the language would add very little value, but it would add at least some value, so I won't argue with that one.

      Not having unsigned types is probably the second dumbest decision in Java's design, after compulsory garbage collection.

      Sure, you can work around it by using larger data types (e.g. short when you really mean byte), but it's a real pain when interoperating with code in other languages.

    4. Re:Oracle matters less thank you'd think by Necroman · · Score: 4, Informative

      I would recommend against using OpenJDK 6 for anything really. OpenJDK 7 is a bit different though, as it is the official Java SE 7 reference implementation.

      I see OpenJDK 6 as their initial "hey, look at what we're working on", as they tried to completely open source the JDK (they had to re-write at least 4% of the Sun JDK when turning it into OpenJDK). With that re-write, lots of things were probably broken, and testing was required to get them working again. Now that OpenJDK 7 is out, Oracle, IBM and other will be putting their efforts into improving it and making it as complete as possible.

      --
      Its not what it is, its something else.
    5. Re:Oracle matters less thank you'd think by tokul · · Score: 2

      even some app servers.

      Some app servers have compatibility issues if you run them on different Sun JRE/JDK version.

    6. Re:Oracle matters less thank you'd think by Anonymous Coward · · Score: 2, Insightful

      Of the alternatives you list, only the GNU GCJ is not shut down. Apache Harmony has been discontinued (retired to the Apache attic http://attic.apache.org/projects/harmony.html) and IBM has pulled their Harmony committers to OpenJDK instead (http://www.sutor.com/c/2010/10/ibm-joins-the-openjdk-community/).

    7. Re:Oracle matters less thank you'd think by John+Courtland · · Score: 2

      I think always-GC is awesome. It forced TONS of research into high speed, low pause GC algorithms and in my not so humble opinion, we are all better off for it.

      --
      Slashdot is proof that Sturgeon's Law applies to mankind.
    8. Re:Oracle matters less thank you'd think by u17 · · Score: 2

      Really? You're list of "must haves" starts with "goto"?

      I know that there are still some diehards out there who insist that unstructured branches (i.e. "goto") have a place in a modern programming language, but the only example I have ever seen where a "goto" actually provided some value was in a performance critical piece of system code (specifically, it was part of the Linux kernel). Given that Java is an application language, not a system language, I see absolutely zero value in introducing unstructured branches. The structured branch constructs are perfectly sufficient.

      Adding unsigned types to the language would add very little value, but it would add at least some value, so I won't argue with that one.

      Goto isn't used in Linux for performance reasons. It's used because C does not have exceptions and using goto to jump to clean-up code prevents code duplication. Any sufficiently experienced C programmer will encourage you to do the same.

      Of course, Java has exceptions and the finally keyword, so goto is not strictly needed for this purpose.

    9. Re:Oracle matters less thank you'd think by El_Muerte_TDS · · Score: 4, Interesting

      Funny thing, we experienced the exact opposite. We have issues with various Oracle JDK6 version on Linux that we don't have with OpenJDK 6 versions. Our application would simply segfault when it reaches the set memory limit (instead of garbage collecting).

    10. Re:Oracle matters less thank you'd think by tires+don+exits · · Score: 2

      There is one good use for goto that I've seen. It's for when you have to use a loop, and you want an action to occur if an item was not found. In C or C++, you can do this with...

      for ( /* for loop */ ) {
          if ( /* condition */ ) {
              /* do something with found item (maybe) */
              goto finish;
          }
      }

      // perform action when not found
      ...
      finish:
      // continue

      With Java, this has to be done with an extra boolean to keep track (and it's much uglier).

      bool found = false;
      for ( /* for loop */ ) {
          if ( /* condition */ ) {
              found = true;
              break;
          }
      }

      if (!found) {
      }

      Don't mistake this for saying something positive about goto though. Python one-ups both of them (and I wish this gets adopted in more languages).

      for x in xrange(10):
          if x == 12:
              break
      else:
          print '12 wasn't found between 0 and 9, weird'

      Much better. Conveys your intentions much more clearly than the other two. This, and the inclusion of labeled break/continue's (as seen in D) would completely replace any need for goto.

    11. Re:Oracle matters less thank you'd think by goofy183 · · Score: 5, Informative

      Java has gotos:


      loops:
      for (int i = 0; i < MAX_I; i++) {
              for (int j = 0; j < MAX_J; j++) { // do stuff
                      break loops;
              }
      }

    12. Re:Oracle matters less thank you'd think by Rary · · Score: 3, Insightful

      Personally, I think the use of an explicit boolean to flag the "not found" condition makes the code much clearer. That's actually one of the main arguments against unstructured use of GOTO. The code is generally more readable and maintainable if you don't use GOTO. In your Java example, it is quite clear, even without looking at the loop code, that the code after the loop will only execute if the item is not found. This is not clear in the C/C++ example using GOTO, where it is necessary to look at the loop code to understand the code that follows it.

      Obviously this is a simple example, but it does demonstrate how an unstructured jump provides at least a little obfuscation, where a more structured approach provides clarity.

      The Python case just looks odd to me. There's nothing about a loop construct that necessitates an "else" condition. Obviously, I understand what you're doing in that example thanks to the previous two examples, but if I were to just look at the Python code on its own, I'd be at a loss to figure out what the "else" even means. Logically, the "else" should belong to the "if", which would indicate that the string literal would be printed each time that X was not equal to 12 (meaning it prints 10 times). The indentation suggests that it belongs with the "for", but given that "for" is a loop construct, not a conditional construct, what does "else" even mean in that context? It's very bizarre.

      Basically, I can see some (limited) value in the construct, but I disagree with that implementation.

      --

      "You cannot simultaneously prevent and prepare for war." -- Albert Einstein

    13. Re:Oracle matters less thank you'd think by SplashMyBandit · · Score: 2
      > Or if you try to use the wrong path separator.
      Great example I see all too often. This one is a classic signs of a terrible programmer. How hard is it to use File.separator instead of hardcoding "\\" or "/" in your paths?

      Basically there are a lot of lazy muppets (or muppet sympathisers) out there who would trash Java rather than accept that it is actually programmer error for putting "Window-isms" into their code. They do this crap in every language and despite Java's "Write once [automated unit test everywhere] run everywhere" actually working (provided you actually give a damn about the code you are writing) they still screw it up. But folks still love to blame Java when it doesn't magically cope with "professionals" (lol) that can't cope with very elementary principals of platform independent development.

  4. I wish ... by Elgonn · · Score: 4, Insightful

    That OpenJDK could just get the lion share of development and mindshare. If LibreOffice can functionally replace OpenOffice there's hope for OpenJDK. Unfortunately LibreOffice had years of a head start on that front (functionally go-oo, etc).

    1. Re:I wish ... by AnAirMagic · · Score: 5, Informative
    2. Re:I wish ... by PCM2 · · Score: 2

      That OpenJDK could just get the lion share of development and mindshare. If LibreOffice can functionally replace OpenOffice there's hope for OpenJDK.

      Unlikely. Java is too important to too many people. Imagine Java being run by a consortium of IBM, Red Hat, Hitachi, Samsung, Nokia, SAP, and about three hundred junior members, with nobody clearly in charge. I don't see how anything would ever get done. Part of what makes Java popular is that it tends to keep up with modern trends in computing (or even establishes them). If Java becomes the next Ada, some other technology will take its place.

      --
      Breakfast served all day!
  5. Oracle matters more thank you'd think by the+computer+guy+nex · · Score: 3, Insightful

    I would say the majority of Slashdot readers using Java do so in an enterprise environment. The Java Enterprise Edition (JEE) specification is controlled by the JCP, where Oracle has heavy influence. JEE application servers adhere strictly to this spec.

    1. Re:Oracle matters more thank you'd think by Bucky24 · · Score: 2, Insightful

      This. I haven't had to use Java since I left school (and hell even in school we only used it to learn the basics of programming)

      --
      All the world's a CPU, and all the men and women merely AI agents
    2. Re:Oracle matters more thank you'd think by Anonymous Coward · · Score: 2

      This. I haven't had to use Java since I left school (and hell even in school we only used it to learn the basics of programming)

      Still looking for work, are you?

      Seriously, the only thing that comes close to Java in terms of job availability is .NET, and the two are more or less neck-and-neck.

  6. Sounds promising by msobkow · · Score: 3, Insightful

    The Java Community Process, through a series of initiatives lead by chairman Patrick Curran, is aiming to improve its transparency and agility. JSR 348, which is the first in a series of reforms Oracle plans for the JCP, has passed final approval ballot. It represents relatively minor changes, but it is still an important step, requiring that in the future all Expert Groups conduct all of their business in public, using a public mailing-list and a public issue-tracker.

    It should be readily apparent from my own open documentation and planning approach for MSS Code Factory and Singularity One just how much I believe openness to be CRITICAL to running a modern technology endeavour. The days of closed door development and the sudden release of new technology products is not only disruptive to the industry and employment, it's a fundamentally wrong-headed approach to someone who believes in the GPL ethos as I do.

    Kudos to Oracle for realizing the way they were handling things was going against the principles of the way Sun had originally configured the Java community.

    --
    I do not fail; I succeed at finding out what does not work.
  7. It's write once run everywhere with small niggles by coder111 · · Score: 4, Insightful

    Seriously, unless you are doing something weird, reasonably OK written java app would run under any platform. There might be some small issues, but cross-platform apps with Java are much much much easier to write than cross-platform apps with anything else.

    --Coder

  8. Re:It's write once run everywhere with small niggl by Blakey+Rat · · Score: 2

    Except it's *always* been "least common denominator". For example, Java runtimes have never supported the Windows named folders. (Basically, they hand you the Roaming App Data folder, tell you that's "home" and you're stuck with it-- there's no way of fetching other named folders or even taking the value it gives you and reliably finding the Documents folder using it.

    Basically, they took the bare minimum POSIX features, assumed that was all you need to support every OS ever, and implemented it with that assumption-- even though those assumptions are completely wrong in Windows. (And Mac Classic, but that doesn't matter anymore.) Due to this, it's virtually impossible to write a technically correct Windows application in Java.

  9. Re:Java: Was write once run everywhere ever the ca by goofy183 · · Score: 4, Informative

    All depends on what you're doing with it. I work on an enterprise level webapp written 100% in java and we have deployments on Windows, Linux, Solaris and OSX-Server using the EXACT same code base and this is an app with over 1000 classes and 250k+ lines of code.

  10. Re:Java: Was write once run everywhere ever the ca by Anonymous Coward · · Score: 2, Informative

    But Java went on to run back-end server and enterprise systems, and there it really doesn't matter because people engineer for specific hardware.

    Actually, that's precisely where I see the "write once run anywhere" in action. I have been developing server-side code for about a decade, and I have always done my development and testing on Windows, but deployed to either Linux or Solaris, without any platform problems whatsoever.

  11. I'll just come right out and say it. by leftover · · Score: 2

    IMHO, the involvement of Oracle would be enough to make me avoid Java even if I liked the language. Developing applications is stressful enough without having to worry about what Larry Ellison might do.
    And I don't like the language either. The nature of its widespread use only strengthens my feeling it is the 'new' BASIC, a dead-end educational toy that is used far beyond its capacities. Worse, this has gone on long enough for its oversimplified world view to affect what often masquerades as "design". Stitching together great steaming piles of independently mutating libraries doesn't seem to produce good applications, does it?

    A couple more things to preempt the fanbois:
    No, Java is not fast. Java is a programming language. Virualized RISC machines can be fast within their own arenas and a lot of good work has gone into JIT compilers and the machines running underneath "Java". The claim does nothing but reveal your lack of knowledge and perspective.
    And no, grunting out low-content scripts for a few years does not make anyone a designer or an architect. Building kludged-together boxes using Lego blocks doesn't make you a civil engineer or an architect either.

    --
    Bent, folded, spindled, and mutilated.
  12. Re:Linux Distros and Android. by Jerry+Atrick · · Score: 2

    You do realise Google are in trouble because they couldn't licence J2SE for phones (Sun/Oracle wouldn't allow it), J2ME is too limited for what they wanted to do and so Android is NOT based on it.

    This is the direct fallout of Sun's policy of barring J2SE use on mobile by withholding the tools needed to certify it.