Forgot your password?
typodupeerror
Java Google Oracle Programming Apache

The Coming War Over the Future of Java 583

Posted by Soulskill
from the can't-we-all-just-get-along dept.
snydeq writes "Fatal Exception's Neil McAllister writes about what could be the end of the Java Community Process as we know it. With the Apache Software Foundation declaring war on Oracle over Java, the next likely step would be a vote of no confidence in the JCP, which, if the ASF can convince enough members to follow suit, 'could effectively unravel the Java community as a whole,' McAllister writes, with educators, academics, and researchers having little incentive to remain loyal to an Oracle-controlled platform. 'Independent developers could face the toughest decisions of all. Even if the JCP dissolves, many developers will be left with few alternatives,' with .Net offering little advantage, and Perl, Python, and Ruby unable to match Java's performance. The dark horse? Google Go — a language Google might just fast-track in light of its patent suit with Oracle over Android." Reader Revorm adds related news that Oracle and Apple have announced the OpenJDK project for OS X.
This discussion has been archived. No new comments can be posted.

The Coming War Over the Future of Java

Comments Filter:
  • Where is IBM? (Score:5, Insightful)

    by rvw (755107) on Friday November 12, 2010 @11:23AM (#34206790)

    They are the one and only company that can pull this thing straight. They have the money, they have proven their commitment to OSS, so I sincerely hope they step in and fix this. It's too important to let Oracle mess everything up.

    • by medv4380 (1604309) on Friday November 12, 2010 @11:34AM (#34206900)
      Google is trying to force the legal issue and end this with a court battle.
      Apache is trying to end it using the JCP
      IBM is trying to be all chummy and get Oracle to support OpenJDK

      If Google wins then Java is Free, if Apache wins then Java is Free, if IBM wins then Java is theirs.
      • by VGPowerlord (621254) on Friday November 12, 2010 @12:03PM (#34207262)

        IBM is trying to be all chummy and get Oracle to support OpenJDKIBM is trying to be all chummy and get Oracle to support OpenJDK

        OpenJDK is Sun's (now Oracle's) project to begin with. IBM switched its support from Apache Harmony to OpenJDK. So, you could say that IBM has already chosen sides.

    • Re:Where is IBM? (Score:4, Informative)

      by Lennie (16154) on Friday November 12, 2010 @11:35AM (#34206912) Homepage

      They seem to be on the side of Oracle. They left Apache behind.

    • Re:Where is IBM? (Score:5, Interesting)

      by WrongSizeGlass (838941) on Friday November 12, 2010 @11:43AM (#34207014)
      Not trolling, but is Java really worth the fight at this point? Years ago it had the promise of the 'programming panacea' but now it's just another programming language. Yes, it's deeply ingrained in the internet and server landscapes, but that isn't going to change if Oracle wants to start charging fees for integration with their middleware and for some advanced utilities.

      The mobile/embedded world is a different animal but Google certainly has something in the works to dodge the Android uses Java mess. Once Google releases a new VM that avoids the Java comparisons the rest of the mobile/embedded world will transition to it and leave Oracle holding an empty bag.

      It won't be easy but look at how far Android developers have come in the short time Android has been available. Google isn't flawless but they won't want to pay any licensing and they'd rather spend the cash on developing an alternative.
      • Re:Where is IBM? (Score:5, Insightful)

        by mcvos (645701) on Friday November 12, 2010 @12:11PM (#34207350)

        Not trolling, but is Java really worth the fight at this point? Years ago it had the promise of the 'programming panacea' but now it's just another programming language.

        It's not about the language, it's about the platform. The JVM, and Dalvik's status in that respect.

      • Re:Where is IBM? (Score:5, Interesting)

        by TheTurtlesMoves (1442727) on Friday November 12, 2010 @12:15PM (#34207394)
        Well it never had the promise of the "programming panacea". But really all this shouting is really just everyone fighting over the "its mine" java pieces.

        When java first came out there was no JCP. Sun just decree what was and what was not "java" (with some hilarious results). The parts of the "for" pay JVM have *always* been this way (Jrockit), but some features are going to be made free. And finally we have a proper apple/"java" JVM. Its lots of good news for people in the know.

        99% of the comments and cries of the death of java are clearly said by people who just don't work with java as its really done (at least commercially). This is a storm in a tea cup, meet the new boss, not as bankrupted as the old boss.

        My only hope is that the patents get ruled invalid. Hopefully that will pave the way for more software patent invalidation.
  • Alternatives? (Score:5, Interesting)

    by Anonymous Coward on Friday November 12, 2010 @11:26AM (#34206812)

    You know, this is very puzzling. Why hasn't FOSS come up its own managed runtime+language stack?

    It's certainly not for a lack of engineering talent.

    Procrastination? Lack of vision? Or is open source just too tribal and fragmented to coordinate on something so big and cross-disciplinary?

    • by ByOhTek (1181381)

      Or is open source just too tribal and fragmented to coordinate on something so big and cross-disciplinary?

      I'm tempted to respond to this with "Hammer, mean head-of-nail", except that we have projects like Linux, FreeBSD, KDE, Gnome. Even though they are competing, they are big and seem to be quite cross-disciplinary. Likewise there's GCC, which could be considered the same (and lacking serious FOSS competition).

      More likely, nobody has felt the need, given what is currently available.

    • Re:Alternatives? (Score:5, Informative)

      by Lennie (16154) on Friday November 12, 2010 @11:36AM (#34206928) Homepage

      Something like http://www.parrot.org/ [parrot.org] you mean ? A whole new VM which can run multiple languages.

    • Re:Alternatives? (Score:5, Informative)

      by icebraining (1313345) on Friday November 12, 2010 @11:39AM (#34206952) Homepage

      Parrot is a register-based process virtual machine designed to run dynamic languages efficiently. It uses just-in-time compilation for speed to reduce the interpretation overhead. It is currently possible to compile Parrot assembly language and PIR (an intermediate language) to Parrot bytecode and execute it. Parrot is an open source project distributed with a free software licence, making Parrot free software.
      (...)
      Many languages already have compiler front-ends designed for Parrot, however many of them are still only partially functional. The languages currently implementable, partially and fully, on Parrot are: Arc, APL, bc, Befunge, Brainfuck, C, Common Lisp, ECMAScript (aka JavaScript), Forth, Generic Imperative Language, GNU m4, HQ9 Plus, Jako, Java, Java bytecode, Joy, Lazy K, Lisp, LOLCODE, Lua, MiniPerl (Perl 1.0), NQP (Not Quite Perl), Octave, Ook!, Perl (via Rakudo), PHP (via Pipp), Python, QuickBASIC 4.5, Ruby (via Cardinal), Scheme, Shakespeare, Smalltalk (via Chitchat), the "squaak" tutorial language, Tcl (via partcl), Unlambda, WMLScript, and .NET bytecode.

      http://en.wikipedia.org/wiki/Parrot_virtual_machine [wikipedia.org]

    • Re:Alternatives? (Score:5, Interesting)

      by fishbowl (7759) on Friday November 12, 2010 @11:40AM (#34206984)

      >You know, this is very puzzling. Why hasn't FOSS come up its own managed runtime+language stack?

      The strength of Java is less in the language and more in the widespread adoption of enterprise frameworks. I have less appreciation of the language itself than I do for the ASF toolchain and for Spring. I realize that Python has parallels for these things, but they tend to not be used in the places where Java is used, by which I mean places that have ever given me paychecks.

      When these threads come up, I'm usually shocked by how little awareness there seems to be of just how much business software is in Java, and how much of that responsibility rests on various Apache projects over the years. It would be a real surprise to see any Enterprise Java that doesn't link at least some ASF libraries, and usually there are *many*.

      Apache, not Sun or Oracle or IBM is the big name in Java. I hope the Apache group can make a unified front and play their cards effectively, but so far they are acting like victims.

      • Re: (Score:3, Insightful)

        by butlerm (3112)

        Apache, not Sun or Oracle or IBM is the big name in Java.

        Apparently, Apache needs to start applying for defensive patents, or it is not going to be the big name in anything.

      • Yes. (Score:5, Insightful)

        by abulafia (7826) on Friday November 12, 2010 @12:45PM (#34207798)

        Understanding that the entire toolchain and widespread adoption is the most important part of getting it. We all (at least, if we were there for it) know how Java happened - the short version is that Sun positioned it as an alternative to the MS Borganism that many companies were rightly afraid of back then.

        I still think Java pretty much sucks. But it has the tools, and perhaps more importantly, a huge number of able bodied code monkeys who can write it.

        Enter Oracle. The entire strategy that they've pursued forever is not much different than what Microsoft tried - build or buy essential parts of the stack, and then march up and down it to dominate your category, then extract as much rent as possible. It works better in the enterprise space and is bloodier because there are fewer players. (Microsoft's ecology was too varied with too many players to really dominate like Oracle can.)

        So, Oracle's strategy is obvious. They own Java, and thus indirectly can manipulate the terms of output of thousands of developers. They don't care about people liking them, and inertia means they can extract rent for a long time (Even if a second Sun/Java moment happened - say, Parrot v. Java, ramp-up for Parrot to fill the niches, get solid, debugged libraries for everything, get widely deployed, and get thousands of developers up to speed takes how long?)

        They don't give a shit about Apache, or developer goodwill [tbray.org]. The for-profit players like IBM have different strategies, but keep in mind that their goals are profit maximization, too.

        So there are some potentially interesting strategic plays to be made between the various players, but anyone with a bit of experience with the business side of the industry has seen this show before.

    • Re:Alternatives? (Score:5, Informative)

      by TheRaven64 (641858) on Friday November 12, 2010 @11:54AM (#34207170) Journal

      Why hasn't FOSS come up its own managed runtime+language stack?

      You mean, apart from Perl, Python, Ruby, GNU Smalltalk, Pharo, Lua, Io, and so on? Probably because they solve a problem that is only really applicable in the closed-source world: needing to run the same binary on multiple operating systems / architectures. If you have the source code, [Objective-]C[++], Pascal, Fortran, or whatever is just as portable as Java, if not more so.

      • Re:Alternatives? (Score:5, Insightful)

        by Kjella (173770) on Friday November 12, 2010 @12:23PM (#34207522) Homepage

        [Objective-]C[++], Pascal, Fortran, or whatever is just as portable as Java, if not more so.

        Show me a GUI "Hello, world!" that'll run on every platform Java does - even if Java windows look like shit. Java isn't just a cross-platform language, it's also a cross-platform toolkit that hides all the OS specifics, far more than any of the languages you mention.

      • Re:Alternatives? (Score:4, Interesting)

        by fusiongyro (55524) <(moc.oohay) (ta) (otiuqsomeerfxaf)> on Friday November 12, 2010 @12:29PM (#34207604) Homepage

        It's an excellent point and it's well-taken, but none of those are really what the OP is talking about. Parrot is really the pertinent example, though it has arisen out of Perl (more-or-less); none of the other systems you name are really a generic managed runtime.

        The answer to the question, why isn't Parrot more widely-used is to look at context. We're not comparing Parrot to (say) Python's bytecode; if we did, Parrot looks like a runaway success. We're comparing Parrot to the JVM, but that's not a fair comparison, because people write languages that target the JVM to make life easier in Javaland, not because the JVM is a technical achievement.

  • C# (Score:3, Interesting)

    by Xugumad (39311) on Friday November 12, 2010 @11:27AM (#34206836)

    Maybe I'm being naive, but right now C# looks fairly tempting. MS aren't pulling strange "premium VM" tricks, Mono is well developed and generally works as expected, and it's not a huge leap in terms of language. Many libraries in Java have C# equivalents (Bouncy Castle, iText, etc.). If we were going to leap from Java, C# would definitely be top of my likely destinations.

    But no, obviously we're more likely to jump to a language I've never heard of before, with none of the libraries we use, and no experience base to pull from...

    • Why not C#? (Score:4, Interesting)

      by Anonymous Coward on Friday November 12, 2010 @11:33AM (#34206890)

      Not to mention that C# already has a ton of useful features that are, at best, planned for Java 7 and 8 (or later).

      I've done significant cross-platform .Net/mono development and 99% of the stuff "just works". I'd argue that Mono is actually a better cross-platform development environment than Java *right now*. Java often requires tweaks because different builtins work differently on different platforms, even though they're not supposed to.

      • Re: (Score:3, Informative)

        by FutureDomain (1073116)
        I can second this. Whenever I have to write a cross-platform project, I almost always go with C#. Unless you use something totally Microsoft Windows specific (like WPF or Windows Services), it should run fine on Linux or Mac. I almost always do testing on the Linux platform as well, but even my simple HTTP server ran fine on Linux, and you can do reflection to detect and implement platform specific Mono instructions (such as doing a Mono.Unix.Native.Syscall.Chown on the aforementioned webserver).
        • Re: (Score:3, Informative)

          You obviously write smaller apps only. Write a large app (such as my current work project) and C#'s cross-platform limitations become apparent very rapidly.
    • Re:C# (Score:5, Insightful)

      by Anonymous Coward on Friday November 12, 2010 @11:34AM (#34206894)

      With Microsofts history over the past 20 years, I'd say they won't pull any strange tricks until enough people have adapted it and are locked in, then they will suddenly have a change of heart. It's only Microsofts kind heart that keeps C# and Mono open enough, not *anything* legally binding.

      • Re: (Score:3, Informative)

        by interval1066 (668936)

        Whether Silverlight [thenextweb.com]

        "The world was abuzz with HTML5 and Silverlight innuendo after the SL platform was all but ignored at PDC10. Silverlight developers were furious over what they deemed to be something of a betrayal by Microsoft, nullifying endless hard work."

    • Re: (Score:3, Interesting)

      I think C# is well poised to scoop up the niche Java filled in businesses/enterprise -- when Java stagnated, it was the existence of a constantly-improving C# that forced Java to improve as well again. Similarly, I don't see any reason that C# isn't a good replacement for the kinds of web applications that previously would have been written in Java. (Note that this is not all web apps.)

      I'm less sure about C# in the embedded/mobile space -- I don't have a lot of expertise with either, and these have been h

      • Re:C# (Score:4, Interesting)

        by Richard_at_work (517087) <richardprice.gmail@com> on Friday November 12, 2010 @12:20PM (#34207478)
        The way I see it playing out (I'm a .Net developer that works heavily in the London, UK market) is Java becoming the Cobol of the future in that it takes the position of the top end of the enterprise market (London Stock Exchange level of operation) while .Net takes a significant chunk of Javas small to medium enterprise work (we sell a heck of a lot of ASP.Net sites, no one asks us for Java even tho we have the capability and we get a few PHP/Python/Ruby queries, again even tho we have the capability).
    • Re:C# (Score:5, Insightful)

      by Raenex (947668) on Friday November 12, 2010 @11:50AM (#34207122)

      Maybe I'm being naive, but right now C# looks fairly tempting.

      Yes, you are incredibly naive. People are looking to flee Java because of the greedy and proprietary corporation behind it, Oracle, and you think they should run into the arms of Microsoft? Get a clue.

    • Re:C# (Score:5, Insightful)

      by gmuslera (3436) on Friday November 12, 2010 @12:02PM (#34207258) Homepage Journal
      So, as the actual problem with java is the corporation that "owns" it decided to misbehave, you propose to switch to another language, from another corporation, for which misbehavig is their way of life?
  • by ByOhTek (1181381) on Friday November 12, 2010 @11:30AM (#34206870) Journal

    Really? As competition to Java it is fairly comparable. It has some features that, used improperly will lead to slower code (though, they are nice as a convenience), it is missing some features, has some features that Java is missing, and the free version of Visual Studios, at least in my opinion, is a nicer IDE than Eclipse, Netbeans or Anjuta. And it's not being used in a bunch of lawsuits by it's owner.

    As a point of reference as to where I'm coming from with this post - Sysadmin + Java programmer at work, C/C#/Python Programmer at home.

    • by dclozier (1002772) on Friday November 12, 2010 @11:35AM (#34206910)

      Really? As competition to Java it is fairly comparable. It has some features that, used improperly will lead to slower code (though, they are nice as a convenience), it is missing some features, has some features that Java is missing, and the free version of Visual Studios, at least in my opinion, is a nicer IDE than Eclipse, Netbeans or Anjuta. And it's not being used in a bunch of lawsuits by it's owner.

      Yet...

    • by Anonymous Coward on Friday November 12, 2010 @11:37AM (#34206934)

      This is exactly why Oracle has to stop what it's doing. ByOhTek has exactly the same mentality as most Windows developers/shops, i.e., the view that now Java is embroiled in lawsuits while Mono is stable and safe. Microsoft would never lock you into a platform.

      Incidentally, I've worked in Java and .NET. Visual Studio is a big disappointment when you been working in NetBeans or Eclipse. Maybe I just don't see the appeal.

  • by zooblethorpe (686757) on Friday November 12, 2010 @11:30AM (#34206872)

    So assuming the JCP does dissolve, I fail to see why folks couldn't find a way to fork Java. Are there patents in place that would completely moot any such effort? What about clean-room reverse-engineering of the JVM, wouldn't that open some doors?

    Confused by the summary's lack of options,

    • by John Hasler (414242) on Friday November 12, 2010 @11:38AM (#34206942) Homepage

      Are there patents in place that would completely moot any such effort?

      That's what the lawsuit is about, isn't it?

      What about clean-room reverse-engineering of the JVM, wouldn't that open some doors?

      That only deals with copyright problems. It's irrelevant to patents (And Google claims to have already effectively done it).

    • Re: (Score:3, Insightful)

      I fail to see why folks couldn't find a way to fork Java.

      In this case, I think it's an important to draw a distinction: there's really no reason why you couldn't, except that Oracle will attempt to (right or wrong, and probably wrong) sue whoever tries into bankruptcy.

      They'll be able to put a good enough case together that won't initially appear frivolous, even if it would ultimately be doomed to failure with good legal representation, and lawyers aren't generally free.

    • Re: (Score:3, Interesting)

      by andymadigan (792996)
      This may actually be a good thing in the long run. Changes to the language or libraries will likely be delayed, improvements will hopefully be made in the JVM.

      This whole situation is basically what open source groups were warning about years ago, but now we have an open JDK. Eventually, one of two things will happen:
      1) Oracle maintains control of Java in the enterprise, while an open source group maintains the Java that "everyone else" uses. The two languages will fork, leading both to a slow death.
      2) Oracl
      • by VGPowerlord (621254) on Friday November 12, 2010 @12:29PM (#34207606)

        2) Oracle will fail to keep control of Java, and everyone will end up using Java as maintained by an open source group (probably Apache). Ultimately something like the JCP will still be needed to keep enterprise involved in Java.

        Dear lord, I hope it's not Apache. Any organization that allows new versions of its libraries to target Java 1.4 when 1.5 has been out for over half a decade does NOT deserve to be put in charge of the entire language. Particularly when said library [apache.org] deals with Collections.

        As a developer that works primarily in Java, I'm a bit worried. If my company sees Java as being a risk we might end up moving over to .NET, and I just detest the documentation and library design of that platform.

        There are some things .NET does better than Java. This includes: Generics, Properties, GUI, Web Services (although JWS is a marked improvement over Axis 1/2, and brings this more in line with .NET's WCF). This does not include: Database access (although the .NET Entity Framework may address much of this; from what I've seen it's a lot like JPA), Concurrent collections

        Granted, that list is just things I can think of off the top of my head.

  • Alternatives (Score:4, Insightful)

    by Massacrifice (249974) on Friday November 12, 2010 @11:32AM (#34206888)

    It's too bad that some of the most promising new languages (Scala, Clojure) are JDK based. What we need is a modern lingua-de-franca, a language that's structured enough, with modern features, a good standard library, and that doesnt take 10 years to master. Go is still proprietary shite that will bite you after Google turns evil (and you know they will). Havent looked at D yet. Erlang maybe?

    Is there any high-level, easy language today that's not threathened somewhow by f%^&%ng patents from the big guys?

    • Re:Alternatives (Score:5, Informative)

      by Coryoth (254751) on Friday November 12, 2010 @11:48AM (#34207088) Homepage Journal

      Is there any high-level, easy language today that's not threathened somewhow by f%^&%ng patents from the big guys?

      Well, presuming you want something fast, as opposed to say Python or Ruby, there are some options:

      1. Ada: No, seriously, it's a nice language and Ada2005 is worth looking at; perhaps lower level than you might like. I seriously doubt it faces any patent troubles whatsoever.
      2. D: Sort of C++ done right. Unlikely to face patent issues, but does have some standard library issues with more recent versions of D being incompatible with some standard library efforts.
      3. Eiffel: High level, OO, garbage collection, generics, closures, and still fast and memory efficient. It might have patent issues from ISE, but they're very small, and the core language and IDE are all GPL.
    • Re:Alternatives (Score:5, Insightful)

      by characterZer0 (138196) on Friday November 12, 2010 @11:52AM (#34207146)

      We do not need a language-de-franca. We need a virtual-machine-de-franca. Everybody seemed to think that the JVM was it.

  • by js3 (319268) on Friday November 12, 2010 @11:34AM (#34206896)

    The open source weak spot has always been the infighting, eventual lawsuits, splitting and renaming, remember that old saying about too many cooks in the kitchen?

  • We may even codename the next release "Paris"...

  • by mario_grgic (515333) on Friday November 12, 2010 @11:44AM (#34207042)
    to Open JDK.

    http://blogs.sun.com/theaquarium/entry/the_story_of_a_tweet

    Basically, the original news about Oracle splitting the JVM to open/free but crippled and premium/fast commercial one were wrong and based on misinterpretation of a tweet.

    Apple just today announced they are contributing their java/jvm implementation to the Open JDK project, so there will be JDK for OS X in the future as well.

    So, everyone calm down and enjoy JVM + your favourite language (Scala, Clojure or what ever else you like).
  • Why Go? (Score:3, Interesting)

    by AdmiralXyz (1378985) on Friday November 12, 2010 @11:50AM (#34207126)
    I understand the need to drive page hits by claiming, "In this bad situation $LANGUAGE could step in and fill the void", but Go seems like an odd choice. It's not that I don't like it: I've written some pet projects with it and it's a fascinating language that I doubt I'd mind having to code in as a full-time job, but they're not similar languages at all, it's an apples-and-oranges comparison

    Java is interpreted, Go is compiled. Go lacks inheritance, generics, huge backing libraries, and a bunch of other things that Java programmers rely on. Basically, Go is not an application language, it's a systems programming language that happens to have garbage collection; it's closer to a replacement for C++ than one for Java.

    In any event, I just don't see people abandoning Java en masse because of this Oracle spat. There's just too much legacy code out there, and too many programmers fluent in Java and nothing else.
    • Re:Why Go? (Score:4, Insightful)

      by mswhippingboy (754599) on Friday November 12, 2010 @12:39PM (#34207732)
      I agree with MOST of your post, but your statement that "Java is interpreted" is misleading. Java (at least modern Java) is a compiled language, it's just that it's compiled in two stages; once when the java compiler converts the source code to byte code and then when the JVM converts the bytecode to native code during runtime (JIT). To state that Java is interpreted leaves the impression that it results in inferior performance as compared to a traditional source-to-native code compilation process. This is a persistent that myth has been shot down time and time again in real-world benchmarks.

      I'm just sayin'

      As far as something replacing Java - who knows, but I don't see it in anyone's interest (including Oracle's) to throw out the baby with the bathwater. Oracle was already heavily dependent on Java long before they acquired Sun.

      There are already alternatives to the Sun/Oracle Java distribution (the Delvek VM itself might be a good candidate to replace the JVM) and it really boils down to software patents and how far the courts and the broken patent system allows corporations to claim IP over generally accepted concepts. It may just be a matter of forking OpenJDK and calling it "Coffee" to remove it from Oracle's greedy hands (just like OpenOffice being forked as Libre Office). I have a feeling Oracle won't let this happen with Java however because it has too much interest in it. IMHO the best outcome of this would be for Google to prevail, and take down Oracle's patents along with it. Not only would this teach Oracle a (much needed) lesson in how to deal with the OSS world, but it would also remove current obstacles to the acceptance of Java out of fear of Oracle's legal team.
      • Re:Why Go? (Score:4, Funny)

        by sgt scrub (869860) <saintium@@@yahoo...com> on Friday November 12, 2010 @01:44PM (#34208572)

        --> Java (at least modern Java) is a compiled language, it's just that it's compiled in two stages; once when the java compiler converts the source code to byte code and then when the JVM converts the bytecode to native code during runtime (JIT).

        Your description points out that it is not compiled by saying that it is compiled twice? So using your description, Java is a language that has to be compiled by the writer and again by the user. I say compiling scripts so the outcome can be compiled every time they are used is just annoying. I think the only reason for it was because some Java programmers wanted the contents of their code hidden. Everyone knows that if you don't want someone reading your code you write it in Erlang and Perl.

  • Performance my A** (Score:4, Insightful)

    by Herkum01 (592704) on Friday November 12, 2010 @12:05PM (#34207284)

    Perl, Python, and Ruby unable to match Java's performance

    I don't know about Ruby, but Perl has damn good performance, such that it still runs a number of major web sites, including this one. The ONLY reason Java is as popular is because Corporate America loves a corporate solution and Java was being sold as a solution by major vendors(think IBM, Sun and for a while Microsoft).

    You cannot really sell Perl, or Python, or Ruby as a corporate solution because they cannot hijack a version, edit it and claim it is special. Hell, Perl runs on EVERYTHING what more can IBM add to it? This is really why good open source languages are neglected by large companies, they cannot charge anything for it.

    • by mswhippingboy (754599) on Friday November 12, 2010 @01:15PM (#34208156)
      I'm sorry, but I use both Perl and Java daily and Perl is not even in the same ballpark. Sure, for building a website Perl is fine because a web application is generally not a compute-bound application. The difference between Java and Perl in throwing up HTML is probably measured in milliseconds (with Java winning). You might get the impression that java is slower than perl for websites, but this is due to the fact that java based websites many times use some heavy framework (JSF, J2EE, etc) which tend to bog it down. However, this is not due to the language, but rather to the overhead of using an enterprise level framework (which does have significant value despite your premise that it's somehow inferior) vs a perl script that simply spits HTML back to the browser. A java program executing the same logic as a perl script will beat it hands down, everytime.

      Your statement "The ONLY reason Java is as popular is because Corporate America loves a corporate solution and Java was being sold as a solution by major vendors(think IBM, Sun and for a while Microsoft)" is pure rubbish.

      When Java was introduced it provided features that were previously unavailable and has grown into an extremely powerful platform in it own right. This had nothing to do with being a corporate solution and in fact, it took YEARS for Java to catch on in the corporate world. Many large corporations would not allow it until it finally became such a force it could no longer be ignored.

      In case you are not aware, Perl has been in use as corporate solution, especially among sysadmins, long before Java became so popular. And one more thing, Perl (as produced by ActiveState - pretty much the market leader by my reckoning) does sell their product to corporations. While you can get the community edition for free, corporations usually want some level of support for the tools they use so the commercial editions are a good way for them to go. It's a win-win situation as the license fees help fund the OSS effort and the corporations feel comfortable in adopting it as a strategic tool.
  • Lisp? (Score:3, Interesting)

    by starseeker (141897) on Friday November 12, 2010 @12:19PM (#34207456) Homepage

    It might be worthwhile to explore what it would take to make some variation of Lisp (*cough*sbcl*cough*) a workable choice for modern software developers. My own sense is that the major things lacking are a modern, powerful, cross-platform GUI and a general "lack of polish" (for lack of a better term) when it comes to interfacing with the rest of the world, but perhaps there are other fundamental issues? This seems appropriate:

    We were not out to win over the Lisp programmers; we were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp.

    - Guy Steele, Java spec co-author (http://www.paulgraham.com/quotes.html)

    Maybe it's time to drag them the rest of the way?

    • Re: (Score:3, Funny)

      by Tetsujin (103070)

      It might be worthwhile to explore what it would take to make some variation of Lisp (*cough*sbcl*cough*) a workable choice for modern software developers.

      Well, we did a little research* and spoke to some programmers, and our design committee looked at different directions Lisp could be taken to make it more workable for modern developers... We were thinking maybe we could cut down on some of those parentheses.

      (* Not actually true)

  • by aslag (1884052) on Friday November 12, 2010 @12:54PM (#34207912)

    I'm sick of reading slashdot stories and comments that compare dissimilar languages with Java. What makes Java interesting, useful, and modern is the JVM; these comparisons between language features alone are ridiculous. Most of the languages suggested as alternatives in Java-related posts in the last month are merely interpreted. Python, ruby, perl, etc. are all modernish, high-level languages with dynamic typing. They all run (primarily) on their slow, crippled interpreters. This has numerous drawbacks including problematic multithreading (c.f. the arguments about python's GIL and workarounds over the years), if it's even attempted (in perl, separate processes are the only reliable way to do concurrent programming).

    And now Slashdot compares Go to Java. Go is certainly interesting, but it's not in the same space as Java. Java is a portable, networked, object-oriented *application* language. It removes a lot of hassles not necessary to tinker with when writing applications. It has useful, established APIs (servlets, EJBs) for building large-scale enterprise applications. Go compiles to machine code and is therefore not portable. Go doesn't allow inheritance. Go is a language that tries to solve a different problem than Java has solved. Go is no replacement.

    Java is by no means the end of all languages and runtimes, but it has set the bar pretty high. It would be wonderful for other projects to adopt Java's features and improve and extend them. It'd be awesome if such an efforts weren't completely nullified by having Microsoft as its boss.

    For the naive (and the dude who argues that python is a suitable replacement for Java), below is a list of features Java provides:

    Java's JVM does true multithreading. The memory model is tight, efficient, and predictable. The language includes useful mechanisms for writing for concurrency (everything from traditional locking mechanisms to concurrent data structures and the convenient "synchronized" keyword). Productive, predictable concurrency is possible in Java and not in many other languages.

    The JVM offers other benefits, including security. The class verifier can sort out malicious code before it's executed. The class loader can check roles granted to a piece of code and a cryptographic signature and decide not to run code on that basis. Even if a piece of code gets loaded and executed, it's sandboxed. Talking about these features is usually relegated to discussions about java applets, but their relevance to other applications is noteworthy.

    Java includes a lot of well-organized, stable libraries for doing everything from handling HTTP requests and crafting responses to doing cryptography. Its collections API has many data structures that just aren't present in other languages without looking to a third party.

    Finally, the JVM makes naive code fast. One can write reasonably expressive, straightforward code and expect that the hotspot compiler will optimize it. It's a boon for getting maintainable, quality code out-the-door quickly.

    I too am bothered by Oracle's litigiousness, but running away from Java isn't a solution. We need alternatives, that's for sure, but the availability of such is a lot more limited than the average slashdotter seems to think.

    • by ForumTroll (900233) on Friday November 12, 2010 @02:31PM (#34209140)

      Finally a comment from someone with a clue. The Python and Ruby communities really don't seem to realize how primitive the mainline implementations of their languages are. They're a complete joke when compared to the JVM, the CLR, LuaJIT, SBCL, Clozure or numerous Smalltalk implementations.

      Even the mainline implementation of Factor, which is primarily programmed by one person, makes CPython look utterly terrible.

  • by sgt scrub (869860) <saintium@@@yahoo...com> on Friday November 12, 2010 @01:15PM (#34208160)

    that was meant to be a joke right? i've written wxPython scripts, and even perl with wxWidget extensions, specifically to replace sluggish memory guzzling java "gui applications". an example of java app actually outperforming perl, python, and ruby (like google apps for java vs. google apps for python) should be a standard link on such claims.

  • by Just Brew It! (636086) on Friday November 12, 2010 @01:16PM (#34208172)

    While Sun may not have had a stellar track record (e.g. their alleged mismanagement of OpenOffice.org), at least they were not trying to actively sabotage things.

    I think LibreOffice has a reasonably clear path forward independent of OpenOffice.org/Oracle, but I am still concerned for the future of MySQL and VirtualBox. At least MySQL has the MariaDB fork (and maybe we'd all be better off migrating to PostgreSQL anyhow). I am not aware of an active VirtualBox development community outside of Oracle though; they're probably at risk if Oracle decides to shake things up.

  • by MattW (97290) <matt@ender.com> on Friday November 12, 2010 @01:32PM (#34208400) Homepage

    Perl, Python, and Ruby unable to match Java's performance.

    I saw a comparison a while again of 3 sites implementing identical functionality in PHP, Python, and Java, and the performance characteristics were nearly identical, assuming that none of them were interpreting on the fly. (ie, php had a bytecode cash that was hot for the purposes of the test, etc.)

    If anything, I'd say that while runtime speed might be similar, Java uses more memory per connection.

    Sooo... since when?

I bet the human brain is a kludge. -- Marvin Minsky

Working...