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."

157 comments

  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 Anonymous Coward · · Score: 0

      Talk is cheap.

      Yes.

      We need Larry Ellison to commit seppuku over this.

      Then he'll go to Heaven and have to deal with God yelling at him, "No! I'm God around here! I CAN send you to Hell!"

      The Devil is seen shaking his head violetly back and forth and waving his hands mouthing, "No! No! No! No!"

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

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

    4. Re:*Yawn* by Anonymous Coward · · Score: 0

      Especially since many long time Java devs are starting to shift over to Scala these days...

    5. Re:*Yawn* by Raenex · · Score: 1

      Scala derives much of its benefit from being compatible with the Java libraries and running on the JVM.

    6. Re:*Yawn* by Threni · · Score: 1

      If they're still suing Google over Java they can fuck right off.

    7. Re:*Yawn* by Anonymous Coward · · Score: 0

      Well, except for their kids....

    8. Re:*Yawn* by Anonymous Coward · · Score: 0

      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.

    9. Re:*Yawn* by Anonymous Coward · · Score: 0

      Oracle wants it both ways: Java is GPL open source, but also Oracle controls it and makes the rules.

    10. 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.

    11. Re:*Yawn* by Anonymous Coward · · Score: 1

      Get it through your head already. The JRE and JDK are open source, most if not all of JEE is open source. Java Mobile has ALWAYS been proprietary and continues to be proprietary, and that's what they're suing Google over. Had Google modified the JDK or JRE to make Dalvik, this wouldn't be a problem.

      Cite even one instance where they've litigated over the JDK or JRE since it's been open, just one.

    12. 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.

    13. Re:*Yawn* by forkfail · · Score: 1

      He's a dead ringer for Patrician Veninari...

      --
      Check your premises.
    14. Re:*Yawn* by heironymous · · Score: 1

      Scala already is Java 9. Java the JVM remains relevant, but Java the language is no longer interesting.

    15. Re:*Yawn* by heironymous · · Score: 1

      I also disagree with the claims that Scala is too complex. But I'm happy that the undiligent think it is.

  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 Anonymous Coward · · Score: 0

      Additionally you could just learn to code.

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

      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.

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

      If neither OpenJDK or JDK is for your needs then to use Objective-C that's the direct competition in speed performance and development time.

      The thing that Oracle is saying you now is re-owning the GPL-licensed code (that's partial and incomplete from full JDK that included deployment tools and serviceability management tools) developed by third parties and closing it (e.g. not releasing the GPL'd source code (e.g. specialized patches or source codes from third parties) in the JDK binaries released by Oracle, maybe Oracle is doing illegal).

      Oracle, remembers, GPL license != SCSL license.

      JCPM

    6. 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.

    7. Re:Oracle matters less thank you'd think by Anonymous Coward · · Score: 0

      I'm not violating the Dijkstra's thing but he did forget the Aho-Sethi-Ullman's thing: to easily connect every textual components Ts in the "construction of compilers".

      Without label/gotos, it's extremely hard to use Java as the target or the intermediate representation (IR) of the higher-level language compilers!!!

      label main_loop: System.out.println("Please, to put label/goto."); if (company.isDenied() && foundation.isDeniedToCommitPatchesToOpenJDK_HG_repository()) goto main_loop;

      JCPM

    8. 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.
    9. 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.

    10. 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/).

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

      The Apache Harmony project shut down. Also, Oracle has been threatening to sue companies using their patents that don't agree with Oracle's ideas for Java. So Oracle still very much holds the reins.

    12. 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.
    13. Re:Oracle matters less thank you'd think by Anonymous Coward · · Score: 0

      Again, Java is an application language, not a system language.

      label main_loop: System.out.println("Please, to put label/goto."); if (company.isDenied() && foundation.isDeniedToCommitPatchesToOpenJDK_HG_repository()) goto main_loop;

      do {
      System.out.println("Please, (not) to put label/goto.");
      }
      while (company.isDenied() && foundation.isDeniedToCommitPatchesToOpenJDK_HG_repository());

      Personally, I like the structured branch version much better. :)

    14. Re:Oracle matters less thank you'd think by sourcerror · · Score: 1

      That might be right, however on the desktop client part it seems the situation is better.

    15. 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.

    16. Re:Oracle matters less thank you'd think by Anonymous Coward · · Score: 0

      Don't blame being a bad coder on Java.
      Of course if you e.g. try to use the acceleration sensor on a phone that dosen't have one, ore try to start a GUI on a headless X-less Linux server box, it will crash.
      Or if you try to use the wrong path separator.

      You have to actually *use* the generic interfaces, and obviously have to program separate code paths for boxes with no GUI or acceleration sensor.

      Why isn't all this obvious? Are people really thinking Java will magically buy a screen, connect it and install X when you try to run a graphical application on a headless server?

    17. 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).

    18. 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.

    19. Re:Oracle matters less thank you'd think by Anonymous Coward · · Score: 0

      Don't blame being a bad coder on Java.

      O.K. Let's blame Java developers. Problems like these are incredibly common, which means that most developers who are writing Java either don't give a shit, or just downright bad. Either way, why would I or anyone else be expected to trust what is on balance, evidently poor quality software?

    20. 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;
              }
      }

    21. Re:Oracle matters less thank you'd think by Anonymous Coward · · Score: 0

      I didn't say that "goto" was only used in Linux for performance. "Goto" can be used for structured branches where the language doesn't provide a keyword specifically for that purpose, or for unstructured branches. I fully expect to see "goto" in the Linux kernel, or any other C code, to execute structured branching. However, in my GP post, I was referring to a particular example in the Linux kernel where "goto" was used in an unstructured way specifically because it performed better than using a structured branch construct. Unfortunately I don't have a link.

      Basically, I don't consider "goto" evil (it's just four harmless letters), but I do consider "unstructured branching" evil. I accept that sometimes it's a necessary evil (such as the Linux performance example), but an application language like Java, which already has constructs for structured branching, doesn't need "goto" to provide the option to do unstructured branching.

    22. 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

    23. Re:Oracle matters less thank you'd think by hey+hey+hey · · Score: 1

      Frack, funniest thing in MONTHS on slashdot, and I don't have any moderator points :(

    24. Re:Oracle matters less thank you'd think by JonySuede · · Score: 1

      that most developers who are writing Java either don't give a shit, or just downright bad

      the correct affirmation would be : that most enterprise developers who are programming either don't give a shit, or are just downright bad

      --
      Jehovah be praised, Oracle was not selected
    25. Re:Oracle matters less thank you'd think by JonySuede · · Score: 1

      ASM assembler : http://asm.ow2.org/ is what you need if you ever decide to patch a library for covariance support to maintain backward compatibility or some esoteric shit like this...

      --
      Jehovah be praised, Oracle was not selected
    26. Re:Oracle matters less thank you'd think by Anonymous Coward · · Score: 0

      Thanks. You saved me from having to write the same rebuttal.

    27. 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.

    28. Re:Oracle matters less thank you'd think by Jerry+Atrick · · Score: 1

      Are you sure the research delivered, because avoiding gc still gives a huge performance boost in most apps. You might not notice on your nGhz PC but you will on your phone.

    29. Re:Oracle matters less thank you'd think by Rob+Y. · · Score: 1

      I sometimes like to use gotos (along with a flag) to handle final 'flush' logic in a loop during which intermediate flushing may take place. This could be done 'cleaner', I guess, by making the flush logic into a separate function (though that might require passing in a bunch of local variables). Sometimes, though, it's actually clearer to have the flush logic in the main loop, and when that logic is significant, the goto trick is certainly better (and clearer) than the copy/paste jobs you often see lazy programmers do.

      final_flush=0;
      for (/* for loop */) {
                if (/* section change */) {
      do_final_flush:
      /* flush current section data */
                          if (final_flush)
                                        break;
                }
      /* Accumulate data */
      }
      /* Flush out final section data */
      if (! final_flush) {
                final_flush = 1;
                goto do_final_flush;
      }

      --
      Posted from my Android phone. Oh, I can change this? There, that's better...
    30. Re:Oracle matters less thank you'd think by MichaelSmith · · Score: 1

      I see too many memory leaks in complex java code where references are kept to unwanted objects. I would prefer to see something like an assert_free(object) to make it easier to track when an object should be free.

    31. Re:Oracle matters less thank you'd think by Anonymous Coward · · Score: 0

      in the JDK binaries released by Oracle, maybe Oracle is doing illegal).

      They own the copyrights, they can maintain a closed fork if they so please.

    32. Re:Oracle matters less thank you'd think by Thiez · · Score: 1

      Java bytecode supports goto. Not having goto in the language is just a design decision. Goto is a reserved keyword in java, so you could actually modify a compiler to support goto, and that compiler would be perfectly backwards compatible with other compilers and code (because code not written for your compiler would never use goto as a variable, class, or method name).

      As for the bytecode thing, there are plenty of tools that can compile assembly for the JVM.

    33. Re:Oracle matters less thank you'd think by ToasterMonkey · · Score: 1

      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.

      It is cross platform as much as C/C++ is portable.

      I don't know why anyone would think either means no effort is ever required, because anyone can write a Java runtime or C compiler that doesn't work. It does't make the whole thing a lie.

    34. Re:Oracle matters less thank you'd think by heironymous · · Score: 1

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

      If these things are important to you, then you are programming in an arena where Java is the wrong choice. These are not defects in Java's design, but Java is not the best language for, say, writing device drivers.

    35. Re:Oracle matters less thank you'd think by heironymous · · Score: 1

      I have no industrial experience with phone software, so I can't speak to that. But the research surely delivered for software in the large. In the same way that compilers can no longer optimize code as well as virtual machines can, it's a bit conceited to think we could hand-code memory management of complex systems better than the computer itself.

      Also, in addition to app performance, the second metric to consider is programmer productivity, and gc's impact there is incalculable.

    36. Re:Oracle matters less thank you'd think by heironymous · · Score: 1

      Why do you care when the object gets freed?

    37. Re:Oracle matters less thank you'd think by MichaelSmith · · Score: 1

      I might care about that for operational reasons. For example I don't want a bunch of objects to be collected when my application is otherwise busy, but that wasn't the point. I might have references to objects which I expect to be freed up. I would like to say "this object should be free now" so the VM can say "so, it won't".

    38. Re:Oracle matters less thank you'd think by heironymous · · Score: 1

      I might care about that for operational reasons. For example I don't want a bunch of objects to be collected when my application is otherwise busy, but that wasn't the point.

      That I understand. Modern gc algorithms are pretty good, though.

      I might have references to objects which I expect to be freed up. I would like to say "this object should be free now" so the VM can say "so, it won't".

      That I don't understand. First, one can't possibly know for sure when an object is freeable. Moreover, how could one even say "free up this object"? If you can even say that, then you'd have a pointer to it, giving it a positive reference count! But, secondly, and this is really my question, why should one care? Even if an object is marked for deletion, that memory won't be made available until the VM is good and ready. (When swept.) So, what's the advantage?

      By analogy, when I save a file to disk, I don't care what sectors it's written to. The dos worries about that for me, so that I can get on with writing software that addresses the business problem at hand.

    39. Re:Oracle matters less thank you'd think by heironymous · · Score: 1

      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.

      Why not put the cleanup code in a well named function instead? Also, there are plenty of experienced C programmers who loathe gotos.

    40. Re:Oracle matters less thank you'd think by heironymous · · Score: 1

      Actually,

      if (conditionImLookingForIsFound())
            doFoundThing();
      else
            doOtherThing();

      is most readable. Keep all the code in view at the same level of abstraction.

    41. Re:Oracle matters less thank you'd think by MichaelSmith · · Score: 1

      All I mean is:

      Object a = new Object();
      Object b = a;
      a = null; // Michael expects a to be freed now but he has forgotten about b. So instead I want this:
      free a; // Sets a to null and throws an exception if the object it pointed to has more references

      Its because I am stupid and I forgot about b. This is important in non-trivial cases where humungus data structure schemes are used and references can be hard to track down.

    42. Re:Oracle matters less thank you'd think by bfandreas · · Score: 1

      Memory leaks in any auto GC environment means that references to stuff are being leaked out to placed where they shouldn't go to.

      You need to be careful to pass Collections, arrays and the likes out of their application architecture scope.

      But I do see a lot of current generation Java developers who don't understand the basic concept of pointers and the GC. Without that you WILL get memory leak issues. But guess what, the same coders would cause the same troubles in any other language. And even if you HAD some sort of relyable free() mechanism and you would cause NullPointerExceptions then these same coders would hunt down your .free() on the offending object, simply comment it out and proudly close the NullPointer issue in whatever issue tracking system(most commonly Excel or email...which is another issue) you use.

      I've had developers who referenced JSF Session Beans in generated Hibernate entities. It took quite a little bit of reeducation* to stop them from doing that again.


      reeducation
      I had fully planned beat them up. HR told me that was against policy and firing them would mean I'd have to teach another set of otherwise competent coders how to do stuff. Grrrrr.

      --
      20 minutes into the future
    43. Re:Oracle matters less thank you'd think by acooks · · Score: 1

      Oracle had (has?) its own JVM called JRockit, which is different from the Sun JVM. Which one were you referring to? Java stored procedures is a different matter all together.

    44. Re:Oracle matters less thank you'd think by bfandreas · · Score: 1

      You need to keep references to stuff in a local scope and need to be extra careful not to pass these out of the local scope.

      --
      20 minutes into the future
    45. Re:Oracle matters less thank you'd think by ArsenneLupin · · Score: 1

      Have they fixed applet permission granting UI yet in OpenJDK 1.7? This trivial oversight is what breaks many banking site applets on OpenJDK6

    46. Re:Oracle matters less thank you'd think by MichaelSmith · · Score: 1

      Yeah good idea ;)

    47. Re:Oracle matters less thank you'd think by Anonymous Coward · · Score: 0

      Without label/gotos, it's extremely hard to use Java as the target or the intermediate representation (IR) of the higher-level language compilers!!!

      I believe this is what java bytecode is for : http://en.wikipedia.org/wiki/Java_bytecode

    48. Re:Oracle matters less thank you'd think by Anonymous Coward · · Score: 0

      The problem is usually how do you cleanup all succesfull setups in reverse order in case of failure(sometimes also cleanup everything after finishing the main work of the function.
      a) set success to false
      a) create config folder jump to j label on failure
      b) create config file in config folder jump to h label on failure
      c) use config file to create resource jump to failure label f on failure
      d) work with resource possibly jump to a failure label before cleanup that skips setting success to true.
      e) remove resource
      f) label to cleanup config file
      g) cleanup config file
      h) label to cleanup config folder
      i) cleanup config folder
      j) end label
      k) return success

      This requries passing each parameter to be disposed of plus someway to keep track of how deep you need to go.

    49. Re:Oracle matters less thank you'd think by Anonymous Coward · · Score: 0

      I believe this is what java bytecode is for : http://en.wikipedia.org/wiki/Java_bytecode

      Java bytecodes is the worst IR for the target of higher-level compilers.
      It is a lot easier to use the Java language as IR instead of Java's bytecodes.
      And Oracle/Sun did never provide us an ASM assembler in the Java Development Kit.

      JCPM

    50. Re:Oracle matters less thank you'd think by Anonymous Coward · · Score: 0

      I don't call evil to the statement goto (as appointed errorneuously by Dijkstra) but yes to the "unstructured branching written by human programmers" when it's possible to represent equivalently it in a manner of "structured branching" efficiently. There are few exceptions that we can't judge its evilness, by example:

      1. 1. "unstructured branching written by human programmers" when it's impossible to represent equivalently it in a manner of "structured branching" efficiently.
      2. 2. "unstructured branching written by code generator (e.g., when the Java language is used as IR of the target of higher-level language compiler).
      3. 3. "unstructured branching written by human programmers" for managing the control of exceptional situations (spaguehtti of exceptions).
      4. 4. "unstructured branching written by human programmers" for sharing common code instead of writing many duplicated codes.
      5. 5. Etc.

      JCPM

    51. Re:Oracle matters less thank you'd think by Outtascope · · Score: 1

      +1 I love Java and spend 6 or 7 of each 8 working hours immersed in it, but the lack of unsigned types is infuriating. It makes dealing with bit level protocols an absolute nightmare. I know the problems are not insurmountable by any means, but there is just no reason that it needs to be such a PITA. I love you Dr. James, but that was an F'up.

    52. Re:Oracle matters less thank you'd think by Outtascope · · Score: 1

      Agreed. Most of what I see cited as "memory leaks" in Java are just poorly written libraries with improperly scoped variables. But it is just like the performance arguments against Java. While Java will never perform as fast as a lower level language, properly written code executes extremely efficiently, enough so that the performance gained by programming in a more "native code" language (non-vm) is rarely significant enough to justify the set of complications and additional risks that it brings with it. Another thing that bugs me coming from Java haters is the whole "insecure" horse shyte. No language is perfectly secure, but I would say there are few that are more secure than Java. In fact, Sun's focus on this particular issue is what has created the most problems from Java from applet/application deployment with big scary "OMG, You are going to run a Java app, do you really want to do such a dangerous thing?" dialogs that Sun idiotically created, to their plain and simple HORRIBLE keystore arrangement that makes the already PITA process of certificate management and turns it into full on John Holmes buttsex painful.

    53. Re:Oracle matters less thank you'd think by Anonymous Coward · · Score: 0

      Avoiding gotos using simply many ifs and boolean flags (e.g. if (!found) { ... }) can penalty the performance and it adds more local variables inneccessarily when goto simplfies it a lot.

      And for greater readibility, the javac compiler can warn you how many classes/methods did use the gotos in the Java language, unless disabled this warning option.

      JCPM

    54. Re:Oracle matters less thank you'd think by Outtascope · · Score: 1

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

      If these things are important to you, then you are programming in an arena where Java is the wrong choice. These are not defects in Java's design, but Java is not the best language for, say, writing device drivers.

      Seriously? So you use a device driver to open an arbitrary binary data file? I don't know that I would go so far as to call it a defect as much as a short-sightedness.

    55. Re:Oracle matters less thank you'd think by Outtascope · · Score: 1

      Eeek! The horrors of that code are just too numerous to list. If I saw that in code I was maintaining my instant reaction would be ctrl+a delete. Like back in the day when some Geocities page would cause a porn-site ad to pop-up on your screen at work. Kill it fast! Before anyone notices!

    56. Re:Oracle matters less thank you'd think by Anonymous Coward · · Score: 0

      > 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.

      Thank you for your off-topic and condescending rant. I personally think using a VM to do file access to the underlying platform is in itself a bad practice... but I don't generally go on public forums so I can smugly laugh about how much smarter I am than "professionals" (lol) that do this. It's the sign of a terrible programmer AND a troll. Anyway, back to the comments that actually contribute to the discussion.

    57. Re:Oracle matters less thank you'd think by pburghdoom · · Score: 1

      This was my thought exactly, instead of the boolean why not call a method. The method name can and should be highly descriptive so you know what is going on (both for readability and maintainability) and it also allows for code reuse which was one of the arguments earlier for goto. The OP's claim that it had to be done with the extra boolean was unsettling.

    58. Re:Oracle matters less thank you'd think by tofarr · · Score: 1

      If you want to say "This object should be free now", then you still have a reference to the object, and it should not be free! (Unless you are talking about a weak reference) The small caveat in one line of plain English illustrates exactly why memory management in java works the way it does - if you do it manually, many people get it wrong.

    59. Re:Oracle matters less thank you'd think by Rob+Y. · · Score: 1

      Other than 'goto-less purity', how about listing some of those horrors.

      I'll admit the code's 'ugly', but it does have the advantage of letting you know exactly what it's doing. Sure, it would be 'better code' to split out the flush logic into a function, but that would involve defining a structure to pass it all the accumulated data (or worse, passing a whole bunch of parameters). This has the advantage of locating the accumulate and flush logic together where the relationships between the two are obvious.

      How about removing the flag logic and using two gotos (better or worse?):

      for (/* for loop */) {
                          if (/* section change */) {
                                      goto flush_section;
                          }
      accumulate_data:
      /* add data into totals */
      }

      flush_section:
      /* flush logic here */
      if (/*for condition - still in loop */
                        goto accumulate_data;

      --
      Posted from my Android phone. Oh, I can change this? There, that's better...
    60. Re:Oracle matters less thank you'd think by Anonymous Coward · · Score: 0

      Java has gotos:

      break <label>; and <label>: IS FUNCTIONALLY DIFFERENT TO goto <label>; and label <label>:.

      The statement break <label>; gives the following errors:

      1. 1. Compilation error when break is not inside of for/while or when for/while are not being used.
      2. 2. Compilation error when the <label> is forward-declared after of break, so that it's impossible to forward <label>. Briefly, you can use only break <backward-label>;, never break <forward-label>;.

      backward_label:
      for (;;) {
      ...
      if (...) break backward_label; // OK
      ...
      if (...) break forward_label; // 2. Compilation error.
      ...
      }
      forward_label:
      backward_label2:
      if (...) break backward_label2; // 1. Compilation error.

      It's my conclusion, break != goto.

      JCPM

    61. Re:Oracle matters less thank you'd think by phantomfive · · Score: 1

      If you have trouble with any of those three, you have been using one language too long, and should branch out and learn a new syntax. They are all perfectly fine.

      --
      "First they came for the slanderers and i said nothing."
    62. Re:Oracle matters less thank you'd think by Anonymous Coward · · Score: 0

      Yes, OpenJDK6 was a clusterF. As all the influences of IceaTea, Harmony and GCJ were cramed into its release since the Oracle purchase was sudden. OpenJDK7 is much better, like a standard SE release. People don't realize Java evolves faster than one believes--likely due to .NET.

    63. Re:Oracle matters less thank you'd think by bfandreas · · Score: 1

      Yeah, that's the theory.
      And then somebody comes up with a new and improved


      public boolean isTrue(boolean b) {
      boolean returnValue;
      if(b != true) {
      returnValue = false;
      } else {
      if(b == true) {
      returnValue = true;
      }
      }
      return returnValue;
      }
      I don't want to live on this planet anymore. I actually found one of those in SVN. I didn't even bother looking at who checked it in. I simply deleted it, didn't bother to fix the code so the whole thing didn't compile. Instead I sent this snippet to everybody on the team and asked for suggestions why I shouldn't fire that person since I couldn't think of one.

      So asking for knowing how things like references work might be a bit too much to ask.

      Also Slashdot confuses me.

      --
      20 minutes into the future
    64. Re:Oracle matters less thank you'd think by bfandreas · · Score: 1

      Keystores...and a lot of potential candidates for the keystore where the app might consider looking in.
      That's like searching for a specific egg in a chicken farm. You need to break it to find the right one. Even thinking about it makes me butthurt.

      --
      20 minutes into the future
    65. Re:Oracle matters less thank you'd think by heironymous · · Score: 1

      That is an interesting perspective. Thanks for explaining it.

  4. Wooohooo by Anonymous Coward · · Score: 1

    Oracle knows, the nineties were the best :D

  5. 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 Anonymous Coward · · Score: 0

      Since OpenJDK is soon to become the official reference implementation, you may just get your wish.

    2. Re:I wish ... by AnAirMagic · · Score: 5, Informative
    3. 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!
    4. Re:I wish ... by Anonymous Coward · · Score: 0

      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.

      What needs doing?

      If Java becomes the next Ada, some other technology will take its place.

      Unlikely to happen, Ada was never as common as Java is. In any case, one man's stagnation is another's stability. At least you don't see job adverts requiring 87 centuries experience in Ada

  6. 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 afabbro · · Score: 1, Insightful

      I would say the majority of Slashdot readers using Java do so in an enterprise environment.

      I would say the majority of Slashdot readers using Java do so in class.

      --
      Advice: on VPS providers
    2. 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
    3. 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.

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

      No. I got a job a year before I left school. While it's likely that this is the reason I haven't had to touch Java since school (we're mostly a Perl/PHP shop), no one I know in my major has gotten a job where they had to deal with Java either. It's mostly C (And Objective C for the one who went on to be an iPhone dev).

      Like I said before, even in school they only covered it for one class, to teach the basics. After that it was C and Perl.

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

      Wow, sad to hear you're missing out on the Android market. Employers are virtually throwing money at good Java developers. But it's nice to hear that you're happy with where you ended up.

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

      I suppose. I did some programming for iOS a few years ago and enjoyed it, but rather then learn an entirely new API for Android I decided to dive into HTML5 so that I can make apps that run on iOS, Android, AND the modern PC. Well eventually anyway, once they get the standard figured out.

      And I haven't really spent that much time with Java to be considered a GOOD Java developer. I know it, but I don't know the ins and outs the way I do with C or Perl. If I lose the job I have now and the only thing open is Java, I'd do it. But I'm not going to change my current job for it.

      --
      All the world's a CPU, and all the men and women merely AI agents
  7. 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.
    1. Re:Sounds promising by kolbe · · Score: 1

      Have no fear, Oracle ala Larry Ellison will find some way to screw it up in the end.

      Most people have ZERO faith in Oracle and there's a reason for that... OpenJDK or move to python or Scala or .NET/C#.

    2. Re:Sounds promising by Anonymous Coward · · Score: 0

      Haskel. 'nuff said.

      (Or course that requires being an actual information scientist or at least a good programmer, instead of a enterprisey consultant type.)

  8. That's what I've been saying all along... by Anonymous Coward · · Score: 0

    Oracle is still on of the biggest contributors to open source and did even increase their support for it in terms of manpower. Impossible to judge them now, but let's wait until their agenda becomes more apparent.

    1. Re:That's what I've been saying all along... by rubycodez · · Score: 1

      ha! outside of Sun acquisitions, what has Oracle contributed to open source?

    2. Re:That's what I've been saying all along... by Anonymous Coward · · Score: 0

      http://oss.oracle.com/

    3. Re:That's what I've been saying all along... by rubycodez · · Score: 1

      not seeing a lot of encouraging things there, pal. more oracle acquisitions including Berkeley DB and MySQL, and they've fucked at least one of those up.

  9. Linux Distros and Android. by Anonymous Coward · · Score: 1

    Stop suing Google and get a fair license for Android if they choose to stay with SUN java and not OpenJDK. And let FREE operating systems distribute correctly built packages of Java. Then I might give a crap what Oracle is or isn't doing as far as engaging the community. Other then that they can go pound sand.

    1. Re:Linux Distros and Android. by tlhIngan · · Score: 1, Insightful

      Stop suing Google and get a fair license for Android if they choose to stay with SUN java and not OpenJDK. .

      You do realize that J2ME (what Android uses) is the primary source of revenue for Java, right? It's why the patents are royalty free for J2SE and J2EE, but not for J2ME. All those featurephones pay to have that little-used JVM on them.

      So yeah, Google can license J2ME from Oracle, but not for free, otherwise Java really would die because it won't make any money at all.

      Of course, if Android implements full J2SE (using OpenJDK), then all that patent nonsense goes away because it's under the free patent licensing...

    2. 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.

  10. Indeed by Anonymous Coward · · Score: 0

    With government or corporations, you would do better to assume the exact opposite of what they claim. In general, the larger and more profitable the entity, the more likely it is they are lying through their teeth.

  11. Java: Was write once run everywhere ever the case? by bogaboga · · Score: 1

    Disclaimer: I am no Java expert.

    Is it the case that until Android came around, Java, the language, the libraries and the VM collectively known as "Java" was write once run everywhere platform? Or is was Oracle, now Sun being unfaithful in its representation of what Java really is?

  12. 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

  13. Re:Java: Was write once run everywhere ever the ca by Anonymous Coward · · Score: 1

    "Everywhere" is clearly not true, but I've been rather successful run my compiled Java server code on Windows, Linux, HP-UX, and even Solaris with only a few minor changes where I flubbed (windows pathing and such). In the last 10 years I think I had 1 single issue that was JRE related and it had something to do with how the HP JDK handled threading on a low level. Other than that it's been quite smooth. Now, at the other end of the spectrum with embedded java on cell phones and such it's been a total nightmare.

  14. 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.

  15. Re:It's write once run everywhere with small niggl by Anonymous Coward · · Score: 0

    That "compile once run anywhere" stuff is only relevant for Notch who develops Minecraft.

    Everyone else who uses Java does not run it anywhere but on a single test/dev server.

    And as soon as they have made the measurements and come to realize how Java performs - Java will run nowhere.

  16. Re:Java: Was write once run everywhere ever the ca by vlm · · Score: 0

    Is it the case that until Android came around, Java, the language, the libraries and the VM collectively known as "Java" was write once run everywhere platform?

    I was there. It was never, ever that way. You couldn't even run multiple java apps on the same computer, because one service provider would only run under and support (made up version) 1.1 and another would only run under and support (made up version) 1.2 and they'd crash horrifically on each other's version. So you'd have workers with two PCs on their desk because they need access to both apps. It was just a nightmare.

    It was supposed to be multi-platform across anything, but it wasn't even as inter-compatible as windows. Ugh.

    Things may have improved in the last decade or so, but in the olden days it was horrific.

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  17. Re:Java: Was write once run everywhere ever the ca by afabbro · · Score: 1

    It's not whether or not it's true, it's whether or not anyone cared.

    When Java was something that would run in a browser, yes, that was important. 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.

    Yes, there are exceptions. There's still some "run anywhere" exploited on the desktop - e.g., Crashplan's desktop GUI. But most companies who are doing Java at any scale are doing it on specific hardware - i.e., their backend processing system runs on x86, SPARC, POWER, or whatever and so who cares if they could pick up the Java code and move it? They're never going to.

    --
    Advice: on VPS providers
  18. Re:Java: Was write once run everywhere ever the ca by Anonymous Coward · · Score: 0

    Generally, though there are always issues with the actual API implementation on specific platforms like platform specific bugs. But yes, the language is standardize (no deviation between platforms but that's true with most languages), the libraries api is standardized and the same no matter the platform (much like cross platform libraries for other languages), and the VM is designed to interpret the applets the same way (minus inconsistency). Basically, with java, the VM does all the work in terms of cross platform rather then the compiler like most other languages. So while write once is true for many languages(though some languages requires you to be more careful), compile once is only true for an interpreted language like java.

  19. Great name for a rock band by Kittenman · · Score: 1
    Maybe it's just me. But especially when the first lines of TFA are "after a rocky start ...". I expected ..."Steve Oracle, the lead singer and charismatic head of the Ecosystem riffed on a delicate C-sharp rising inflection to bring the crowd to it's knees with the country&western ballads that we've all come to know and love"

    By all means, mod me off-topic, but it was worth it.

    --
    "The greatest lesson in life is to know that even fools are right sometimes" - Winston Churchill
    1. Re:Great name for a rock band by PCM2 · · Score: 1

      Oracle would never go with C-sharp.

      --
      Breakfast served all day!
  20. You need us more than we need you by TopSpin · · Score: 1

    Oracle has been hostile to open systems on every front. Oracle has been indifferent to the concerns and contributions of legions of developers, and no meaningful effort was made to avoid the trauma that has ensued with the acquisition of Sun. Oracle clearly does not give a damn.

    I've used most of the common tools of the trade that have appeared during the last 20 years. Java was among those at least 4 occasions that I recall. In each of those cases Java was one of several choices available to me, and in every case the competitors could have served equally well.

    When I have the choice, Java will not be used by me or anyone that answers to me for future work. There are simply too many excellent alternatives available today to suffer Oracle and its hostile nature. Everyone I know with similar influence feels the same. The question is; how many years and how much decline must be suffered before Oracle figures out that Java needs us and our good will more than we need Java?

    --
    Lurking at the bottom of the gravity well, getting old
    1. Re:You need us more than we need you by jonwil · · Score: 1

      I will also not use Java for any project where I have the choice to do so and will continue to boycott Java as long as Oracle continues with its lawsuits against Android and Google.

  21. 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.

  22. 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.

  23. Re:Java: Was write once run everywhere ever the ca by PCM2 · · Score: 1

    Yes, there are exceptions. There's still some "run anywhere" exploited on the desktop - e.g., Crashplan's desktop GUI. But most companies who are doing Java at any scale are doing it on specific hardware - i.e., their backend processing system runs on x86, SPARC, POWER, or whatever and so who cares if they could pick up the Java code and move it? They're never going to.

    All the companies who bought Itanium beg to differ.

    --
    Breakfast served all day!
  24. Re:Java: Was write once run everywhere ever the ca by Anonymous Coward · · Score: 0

    Not sure what it was like in the days of 1.1 and 1.2, but ever since 1.4 you have had the option of running multiple JVMs, or even private ones.
    Vendors should fix their code (esp. the one that can't run on a higher version) - but even if they screw up, which is hardly Java's fault, there is still a way around that.

  25. Re:It's write once run everywhere with small niggl by c++0xFF · · Score: 1

    Speaking from current experience (porting a large codebase which includes several languages, including Java and C++), this is generally true. But that doesn't stop people from doing really stupid things.

    For example, previous developers on the code I'm working with decided to use Runtime.exec() everywhere. Need to copy a file? Try running 'cp' ... and be sure to hard-code the path where you think it will exist. Need a directory listing? Call 'ls' ... and be sure to rely on a specific output format for error messages. I have many more examples.

    This isn't a Java problem, because Java provides a native mechanism that isn't being used. And, to give credit to Java, at least it's generally pretty obvious what will break on other platforms, and most of that will be encapsulated into JNI or the like.

    Java is "write once, run anywhere" if you think about cross-platform compatibility as you're coding. But, the same could be said for most languages, including C and C++ (with Java being a bit better).

  26. Meanwhile evil continues to rampage at Oracle by SplatMan_DK · · Score: 1

    Right. So we should all believe that Oracle now wants a world of good for us.

    Meanwhile the legal rampage against free and open source software continues. The war against Android - once the pride of Sun's success with Java - is raging.

    Oh, and don't even get me started on the crapware Ask-Toolbar they started pushing with the Java update/installer, with the "Yes put crapware on my system" option pre-selected for me...

    Yes, Oracle is certainly doing a lot of things for Java. Like killing it ... and pissing the entire customer base off.

    - Jesper

    --
    My security clearance is so high I have to kill myself if I remember I have it...
  27. 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.
    1. Re:I'll just come right out and say it. by Anonymous Coward · · Score: 0

      +-----+
      | 7.8 |
      +-----+
      \_o_/
        |
      |_JUDGE_|

      Well played sir. Now let's see if you get any bites.

    2. Re:I'll just come right out and say it. by eennaarbrak · · Score: 1

      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.

      So because it's widely used, it must therefore be flawed?

      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".

      When people say Java is fast, they mean they can write applications in it that will perform similar to ones written in a platform targeted language (an important measure for choosing a programming language for a project, where trade-offs against $$$ are determining factors). Whether the underlying reason for this speed is because the JVM is really clever, or runs on really clever machines, is not important in this context.

      The claim does nothing but reveal your lack of knowledge and perspective.

      Oh, someone certainly needs perspective...

    3. Re:I'll just come right out and say it. by Anonymous Coward · · Score: 0

      "The claim does nothing but reveal your lack of knowledge and perspective."

      Pedantic to a fault

      That's obviously what people mean, they no doubt even know that that's exactly how it works when they say it, to do otherwise would be to use java-like verboseness (without the speed of java)

  28. Did you look at the Javadoc ? by Anonymous Coward · · Score: 0

    Because, to me what you are looking for is :
    http://docs.oracle.com/javase/6/docs/api/javax/swing/filechooser/FileView.html

    There since Java 2 (aka 1.2), means there since 1998 ;-)

    Do you have other limitations like this ? :P
    There is nothing I can not do in Java ... the only limit is get the doc or couple of libs.

    Rgs
    TM

    1. Re:Did you look at the Javadoc ? by Blakey+Rat · · Score: 1

      What the holy hell does that link have to do with my post?

      Hint: the answer is "nothing at all"

  29. Re:Oracle matters a lot by Anonymous Coward · · Score: 0

    They have single handedly destroyed the fragile Java value proposition in two short years,

    without constant good targeted marketing the PHBs in the Enterprise will move to the
    next new (thing|heap-of-crap).

    MFG, omb

  30. Re:I just uninstalled JAVA... by Anonymous Coward · · Score: 0

    Java fanbois out in force! Did one of you really just down-vote an anonymous coward post about someone escaping java plugin security risk hell? I think somebody's mortgage must depend on this language that a lot of people just got nervous about being invested in.

  31. Re:Java: Was write once run everywhere ever the ca by heironymous · · Score: 1

    We used to joke "write once run away".

  32. Re:Java: Was write once run everywhere ever the ca by heironymous · · Score: 1

    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.

    I find that a little scary.

    But I'm curious. Do you do that because as a developer you find Windows more productive for you?

  33. Re:It's write once run everywhere with small niggl by heironymous · · Score: 1

    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.

    Sure. If I'm writing an email client or something. But if I'm composing a complex system, then there are performance and functional characteristics that vary, and these could very well make or break the product. I appreciate the desire to defer architectural decisions to the last responsible moment. But picking the OS can drive so many other design decisions, that one should get that right almost from the beginning.

    With Java predominantly on the server side instead of in the browser, what exactly is the use case that WORA is supposed to solve? Or put another way, who is writing cross-platform apps?

  34. Re:It's write once run everywhere with small niggl by heironymous · · Score: 1

    But that doesn't stop people from doing really stupid things.

    Oh, I hear that. The stories we could tell over beers!

    But even when using Java's "native mechanism", things like filename case sensitivity can still bite you. And here's another example. When I start a Java thread, does that run in the same OS process or not? And if the answer is "that depends", then that has some serious implications for availability, testing, and even security.

    Stroustrup famously quipped that Java is not platform independent -- it's a platform.

  35. Re:Java: Was write once run everywhere ever the ca by rubycodez · · Score: 1

    a lot of companies who bought Sparc also are begging. And Alpha, for that matter, some major financial and municipal operations still on that platform.

  36. Re:Java: Was write once run everywhere ever the ca by rubycodez · · Score: 1

    not my experience at all, seen some companies have major data center deployment train wrecks of j2ee apps because of windows development environment completely different from mainframe or big Unix iron. From directory structure and file naming, to permissions and ownership, to date/time....the list goes on and on. Developers need to understand and work on the target platforms, and any java developer for "big iron" that can only function on a windows box is fit only to be cut up for chum.

  37. Re:Java: Was write once run everywhere ever the ca by eennaarbrak · · Score: 1

    Why do you find it scary? It's rather common in my experience that dev teams have different development platforms from the target runtime.

  38. Re:Java: Was write once run everywhere ever the ca by SomeStupidNickName12 · · Score: 1

    Don't find it scary, this is pretty much what every Java dev working on server side/web app code does. I have also been doing it for years.

    The problem here is perception of Java, Java as desktop app is to be blunt problematic and idiot devs out there who don't know what they are doing. Java on the server is an absolute dream.

    Windows isn't any more productive then say Linux or OSX its just convenient because most people use stuff like Outlook/Project/Visio etc.

  39. Re:Java: Was write once run everywhere ever the ca by Anonymous Coward · · Score: 0

    This guy gets it. I also code Java in flavors of Windows personally and professionally. I gave up client-side Java Applets 5 years ago because it's a mess and if users were smart, would remove the Java plugin from their systems as it is a vector for hacks.

    The latest stuff in Swing isn't bad - Sparx Enterprise Architect is a beautiful app written in client-side java, I believe.

    Java on the server is an absolute dream: performs great, super secure, super reliable. Serve your web apps in Java, for Christ's sakes!

    The bug-a-boo I always hear the haters spouting about path separators on different platforms is easily solvable in a WORA way. Just get savvy with java.io.File and build up your paths one folder/file name at a time using the File(File parent, String child)

    When will people learn Java on the server is the BEST?!

  40. WORA works good enough by abies · · Score: 1

    With Java predominantly on the server side instead of in the browser, what exactly is the use case that WORA is supposed to solve? Or put another way, who is writing cross-platform apps?

    From a person who actually writes java apps for living, not by reading slashdot: it is VERY useful. It allows me to run the server-side code which used to be deployed on Solaris/SPARC on my Windows/x86 box for quick development/debugging. And guess what? When we upgraded to Solaris/x86 AND Linux/x86, we had to do a bit of performance testing, but only real problems were with a native library we had to use - because the C++ guys porting it have assumed that gcc STL works the same way as CC STL... Half million lines of non-trivial multithreaded java code which is handling billions of EUR daily and not a single code change required because of the OS/cpu change.

    The gui itself was written in Swing and running on Windows. Somebody asked for Linux version. It was not painless, because I was using some extra native libraries for window transparency and some custom L&F extensions - but again, within 2 days of work, gui was working on Linux. Yes, it had ugly corners on rounded tabs (because I was missing transparency lib for Linux) and I have spent few hard hours debugging and fixing some focus events behaving differently - but absolute majority of the app just worked.

    Yes, for all the drones coding HTML pages, WORA doesn't matter. For people doing standalone server apps, it does a lot.

    1. Re:WORA works good enough by heironymous · · Score: 1

      I feel that you were trying to be insulting.

      To restate my question, why are you developing your apps on a different os than you are deploying?

    2. Re:WORA works good enough by abies · · Score: 1

      We were deploying on both linux and windows. Server side on solaris sparc then linux x86, gui on windows. 40-50% of code was shared.
      Company policy (it was a huge bank, not a small IT shop) was that desktops are running windows. Later, we were able to experiment with linux desktops, but for sure nobody was going to buy Solaris/sparc desktops just to make us feel better (and gui deployment was done on windows, so it would be the same problem of developing on different platform, just other direction). Finally, most of the team was a lot more familiar with windows gui than with solaris one, so it was more natural to run IDEs on windows (and we were not using any gui component for solaris deployment).

      As somebody said here - java is the platform, not OS. In that sense, we WERE developing on platform which we are deploying. And my statement is, that java-the-platform is similar enough between OSes to save very considerable amount of work, making cross-platform testing very small problem, as opposed to C++ for example.
      Now, we were lucky enough to use Sun JDK in all places. I suppose that for people who try to deploy on IBM jdk/gcj/ExcelsiorJET after developing for Sun JDK, they might be into more problems that going from SunJDK one OS -> Sun JDK another OS.

    3. Re:WORA works good enough by heironymous · · Score: 1

      Thanks, that was a cogent answer.

      As somebody said here - java is the platform, not OS.

      That was actually me quoting Stroustrup.

  41. Re:Java: Was write once run everywhere ever the ca by Outtascope · · Score: 1

    Is it the case that until Android came around, Java, the language, the libraries and the VM collectively known as "Java" was write once run everywhere platform?

    I was there. It was never, ever that way. You couldn't even run multiple java apps on the same computer, because one service provider would only run under and support (made up version) 1.1 and another would only run under and support (made up version) 1.2 and they'd crash horrifically on each other's version. So you'd have workers with two PCs on their desk because they need access to both apps. It was just a nightmare.

    It was supposed to be multi-platform across anything, but it wasn't even as inter-compatible as windows. Ugh.

    Things may have improved in the last decade or so, but in the olden days it was horrific.

    You do realize, don't you, that what you are describing is a situation that was created by Microsoft (to "embrace and extend" Java) and was at least part of the basis for Sun's lawsuit against them, right? That said, I do see vendors doing stupid crap like this still, improperly written applet tags/jnlp files or (for kriseakes) still requiring JInitiator (I'm looking at you FAMIS). Any company that creates a Windows-only Java applet deserves to die of acute, concurrent syphilis+gonorrhea+dysentery. If you are going to make it Windows only, just make it a damn Windows application in C++ or C# or whatever and stop trying to embed it in a friggin' web page.

  42. Re:Java: Was write once run everywhere ever the ca by Outtascope · · Score: 1

    We've done it both ways. Servers are all Linux. Dev workstations were Linux the last 6 years or so but the last round of Ubuntu UI stupidity made me bite the bullet and switch back to Windows (we have several Windows only apps that we require that ran under vms, the UI was just the tipping point). We have had zero issues switching between dev platforms and I have to say, unfortunately, that Linux seems to run better under Virtual Box on Windows than Windows did under KVM on Linux.

    <rant>I would love to be Windows free but honestly, and it pains me to say this, the Windows 7 UI is infinitely better that Gnome. It is on par with KDE from an interface standpoint, but the KDE team seems obsessed with turning my operating system into some @#$#@ twitter/facebook/etsy love child. I don't need 50% of my CPU cycles dedicated to tagging files in my file system thank you very much. I know what the files are. I know where they are, I put them there. Now get back to making drop shadows and reflections. We switched back to Windows because we find it to be less resource intensive than KDE, a fact that I hope disturbs the KDE devs as much as it does me.</rant>

  43. Re:Java: Was write once run everywhere ever the ca by ggeens · · Score: 1

    Do you do that because as a developer you find Windows more productive for you?

    In my experience, IDEs run roughly the same on Windows as on Linux. Not a lot of difference here.

    The reasons for developing on Windows are mainly:

    • Giving each developer a PC/laptop is much cheaper than giving them a Sparc workstation.
    • Company email/documents are based on MS office software. If you develop on Windows, you only need a single machine.
    • For a web application, you still need to test on IE from time to time.
    --
    WWTTD?
  44. Re:Java: Was write once run everywhere ever the ca by rubycodez · · Score: 1

    but it's fine if you're running Linux in a vm under Windows to verify proper function, that's not the type of situation I've seen make trouble.