Hacker News new | past | comments | ask | show | jobs | submit login
Apache declares war on Oracle over Java (itworld.com)
105 points by chaostheory on Nov 10, 2010 | hide | past | favorite | 54 comments



I just know that Stallman is doing an "I told you so" dance right about now.


Lead, follow or get out of the way. Stallman hasn't offered a better solution than Java. Java is a better choice than C or C++. Developers are simply more productive in Java. Python, Ruby, etc don't currently offer nearly the level of performance. I'm still waiting for the version of Emacs that's written entirely in Scheme.

[edit] Funny, I got voted down. Hope you guys will volunteer to rip out the Java from Open Office and rewrite it in C++.


I think you were downvoted because you miss the point. Apache's stand is against Oracle, not Java, and Stallman's issues with Java were with licensing not the language/JVM really.

Stallman is a leader not because he must create something better than Java, but instead because for any technology the "Free" vs. "Open Source" issue can be critical as to whether you depend on a piece of software.


In my experience, a combination of Python and C/C++, Lua/C++, or even just plain C++ with a good library like Qt offer better performance and productivity. And Open Office is not a good example, desktop applications are definitely not Java's strength, there are hardly any examples. Java is more dominant than in the "enterprise"/web space.


I think RMS is now pro-Java since OpenJDK came out. Harmony is a tool of capitalist oppression anyway.


Stallman has his ideals, which is fine. However, if Java was never open sourced, he would not be in favor of it. OpenOffice was largely written in C++ because they didn't want to use Java because it wasn't open. Imagine how much more work could have been accomplished if they started with Java. Not that Java is a great, or even pretty, language. It's just a lot easier to work with than C++. Someday, we'll be able to move up another level of abstraction and writing software will again become easier.

My point about Stallman was that he would keep developers in the "stone ages" rather than be practical.

http://en.wikipedia.org/wiki/OpenOffice.org#Use_of_Java


"Practical"? Is that a good thing now?

I don't recall "practical" being synonymous with "awesome" or "excellent". "Practical" is an excellent excuse for not having principle.

I have some issues with RMS' beliefs, but I applaud the fact that he acts on principle. I wish I had embraced principle over practicality and had continued working with Ruby, rather than taking a 5 year detour through PHPland.


OpenOffice might not be the best example since it's older than Java: http://en.wikipedia.org/wiki/Oracle_Open_Office#History


MIT had an emacs-like editor written in Scheme. (I can't remember its name. Probably it was the editor written for MIT Scheme?)

Edit: It's Edwin.


Java is the new COBOL, how anyone could think it is a good idea to write anything in it is beyond me.


I wonder what he thinks of .NET and Mono right now.


http://www.fsf.org/news/dont-depend-on-mono

(short version: "we should discourage people from writing programs in C#")


That's 3 months old, before these Java related scandals.


There's something that often goes overlooked by promoters of open source licenses: The copyright holder is defining the licensing terms for others, not for themselves.

While it's true that it is culturally a faux pas to appear as though you are violating the "spirit" of your own license I think everyone needs a reminder that copyright holders are, by definition, not restricted in what they can do with their own stuff. Everyone else is a licensee bound to the terms of the license.

I realize that's not the only problem with Oracle's behavior. But I still think this point is important to acknowledge.

I'm not a lawyer, so if anyone can prove otherwise I'd love to hear the argument.

(Are there any licenses that do place limitations on the copyright holders themselves? Do we even need a mechanism for that?)


This isn't really about copyright licensing per se. Sun promised (in the JSPA and other places) that they would certify independent JVMs and then weaseled out at the last minute.


A license is an agreement between licensor and licensee. Both parties can bound to all sorts of conditions. Certainly the licensee can be granted irrevocable rights, as they would be with any sort of open source license.


IANAL - is it technically infeasible for Apache to fork the language and call it something else? I think it's getting to the point where if the Java community really wants to continue using this language something drastic must be done.


Google tried that and ended up on the wrong end of a patent lawsuit. The Java community is just going to keep using OpenJDK like they do now. As evil as Snoracle is being, it's mostly a theoretical problem given that so few people use Harmony.


Android is based on Harmony...

http://apache-harmony.blogspot.com/2007/11/google-android-ap...

... for better or worse.


Uh, Android uses Harmony (or a subset thereof). I think that's a rather important detail to understanding what's happening here.


I don't think it has much to do with Android, for two reasons. Google doesn't care whether Harmony gets TCK-certified or not, and the Apache-Sun spat dates from early 2007, before Android was even announced. http://en.wikipedia.org/wiki/Apache_Harmony#Difficulties_to_...


The article explicitly says that that isn't true (on page 2):

"It was thought that Google engineers used some of Project Harmony's code for the project, but the ASF has subsequently debunked this notion."


Can someone explain why Oracle should give apache exemptions from field of use restrictions? I thought the whole point with harmony was that Apache/IBM/Intel et al were trying to create a competing vm that could be used everywhere with no restrictions, with the intent of never giving anything back to Sun/Oracle. How can this be in Oracles best interests given their large investment - or am I missing something?


Well...

(a) Java has always been marketed as an "open" environment, where alternate VM's were encouraged.

(b) Oracle doesn't make any money from the J2SE JVM anyway (it's free to use), and the income they get from licencing J2ME is dropping quickly.

(c) Apache/IBM/Intel have given a lot back to Java, and continue to do so. Look at their involvement on the JCP process - most JCP changes aren't led by Oracle/Sun and getting those done takes real engineering resources. The outputs of them are happily picked up by Oracle/Sun and included in Java

(d) Given that IBM/Apache have invested as much in Java as Sun/Oracle ever did it's not clear to me why Oracle should try and stop them investing more to build their own VM.

In anycase IBM has given up and join Oracle on OpenJDK (instead of Apache Harmony).


a) Really? What alternate vms were encouraged? Java itself was free.

b, c) Agreed, it's a rapidly failing ship.

d) Why should Oracle care how much a competitor has spent on developing a replacement for Oracles technology?


(a) On non Sun JVM-supported platforms Sun would always point to other VM's (eg, hardware support for JVM bytecodes in ARM, etc). Also, they would quite happily discuss the benefits of using IBM's Linux JVM.

d) The Java ecosystem has grown because of the diverse range of vendors. It's easy to make an argument that JavaEE only survived the .NET onslaught back in ~2002-2005 because of the high-quality and free implementations from Apache. The current biggest growth market for Java is in non-traditional areas (eg, Google's product: AppEngine/J, GWT and especially Android). Oracle should work with these vendors to keep the Java platform relevant.


I'm not disagreeing, the ideal solution for me at least would be for Oracle to BSD java, but that's not what I would do in their situation.

Everyone else wants Oracle to license to harmony because that's best for everyone... except Oracle.


I believe the operative word for point a) was "marketed."

Damn Sun fucked this whole thing up. Should have GPLed it from day one... They wanted their cake and they wanted to eat it too.


There are quite a few alternate commercial VMs including Oracle's own JRockit, IBM's commercial JVM and JVMs by some startups such as Fiji. But Sun/Oracle apparently had a problem with an alternate Apache licensed VM.


Wouldn't this mean that JRockit et al would no longer have to pay licenses for their implementations?


No, because the deal was that open source VMs get a free license but commercial VMs have to pay. Basically if you can afford to pay you have to pay.


No, because once something is bsd or apache licensed you could repackage it as a commercial vm.


Can someone explain why Oracle should give apache exemptions from field of use restrictions?

Because Sun repeatedly promised to do so. IBM and Intel spent (probably) millions on Harmony with the understanding that it would be certified.


It was my understanding that there was never any problem as long as they agreed to field of use restrictions. Is this not the case, and if so do you have a link?


http://jcp.org/aboutJava/communityprocess/JSPA2.pdf

Sections 5B through 5F look relevant.


Because the JCP process that Sun agreed to says they are obligated to. Obviously they can renege, but Apache is pointing out that if they do, the JCP is a sham, in which Apache will refuse to participate.


We've waited long enough for Java 7. Let's get that one out then look at the options. Fork Java, put the effort behind another language, like Go or Scala, or simply let Oracle run with it.


The Java programming language is only part of the story. There is also this thing called the Java Platform, aka the JVM. You can't just simply switch to Scala, your Scala code needs to be executed by something.


Oh, you mean like .NET?

http://www.scala-lang.org/node/168

Yes, I am aware of the problems of this, too. * Not as stable as the Java backend ever was * Any code that used Java libraries explicitly needs to be rewritten * Stallman is going to throw a hissy fit about it being .NET


This page is often cited, yet referes to Scala 1.4. Can anyone point me to documentation about running Scala 2.8 on .NET? Does it work?


[deleted]


    If you use Mono, you're always 'catching up' with MS.NET
Yes, how long do I have to wait for me to use MonoMac, MonoTouch, MonoDroid, GTK# and Mono's SIMD + Continuations support right now.

    Their "We won't sue anyone! Really!" is not 
    legally binding
I generally view developers as being smart people that can do a little research; before saying something really stupid.


Just for reference, before the torches and pitchforks come out against Oracle, Apache has butted heads with Sun over essentially the same issue: http://www.apache.org/jcp/sunopenletter.html


True, but in the context of all of the recent activity in the Java world (Apple dropping Java; IBM switching from Apache Harmony to Oracle Java; Oracle suing Google), this takes on a new meaning than if you were just viewing it on its own.


Just for reference, the statement by the Apache Software Foundation board - https://blogs.apache.org/foundation/entry/statement_by_the_a...


Oracle owns Java and can do whatever it wishes to do with its property. Sun tried a 'open' strategy to turn a profit with Java and it failed, everyone has to understand that the old ways are out and the new ways are in. Oracle has a fiducial duty to its shareholders to maximize profit. The Apache foundation doesn't have this mandate. If the Apache foundation doesn't agree with what Oracle does with its property, it can choose not to use it and use a different technology -- or, because Oracle is a publicly traded company, they could buy enough controlling shares and force them to change their actions of the Java language. Alternatively the Apache foundation can move to a country that doesn't allow software patents and implement their own changes.


What would prevent Oracle from just walking away of the JCP and releasing Java versions as they find profitable?

Can't the community just fork either OpenJDK or Harmony and get rid of Oracle altogether.


Patents, for one. Field of use restrictions for another. OpenJDK's classpath exception to the GPL does not apply to JavaME related classes, thus limiting the use of OpenJDK for all platforms.


Well... It certainly doesn't look like J2ME has a bright future. Keeping it alive under present terms may be enough. The OpenJDK and Apache licenses protect against patent trolling by Oracle or IBM, so, that threat is not significant. The only problem would be the risk of deviating from current "safe" versions into Larry's patentland.


J2ME effectively died (became irrelevant) years ago. It still continues to ship in some low-end feature phones but no important developers are targeting new applications to that platform.


Java's standard library is one of its worst features. A fork could just throw this crap away and it wouldn't be too far off.

But honestly, people don't use Java because they want a good programming language. They use it because they're already using Java. That will be a problem for both Java 7 and any future fork.


Maybe people use Java because they want a solid cross-platform VM


Ditto. Though I'd narrow "cross platform" to non-Microsoft. No hate for MS, but I don't see deploying Windows servers and associated licensing costs any more likely for me than buying Oracle licenses.

So yeah, as a small Ruby shop that was looking at JRuby as a stepping stone to a robust VM, this concerns me.


Longtime Java dev here, I'd say taking Java, and the JVM, and creating a NEW set of libraries would be awesome.

As you said the Java libraries are total crap. Sun was for a while hell-bent on throwing out everything that's good while putting in a lot of badly designed ugly classes. And some things, like AWT and Swing, were just crap from the very start.

A fresh start would be awesome. The main thing that's currently good about Java is the JVM, and Eclipse. Ruby is infinitely more elegant but the dynamic typing and lack of IDE support kills it for me.


A lot of the ruby elegance comes from the dynamic typing.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: