Google Backs Out of JavaOne
snydeq writes "Citing concerns about Oracle's lawsuit against it, Google has backed out of the upcoming JavaOne conference. 'Oracle's recent lawsuit against Google and open source has made it impossible for us to freely share our thoughts about the future of Java and open source generally,' Google's Joshua Bloch said in a blog post. The move may signal eventual fragmentation for Java, with Google conceivably splintering off the Java-like language it uses for Android."
Oracle should use their Java related patents to stop this from happening,
Oh wait...
Looks like we're seeing a new loss of confidence in Java, much like the loss of confidence in mono, for which patent concerns stunted its uptake.
So where to next?
And where is my replacement for open office?
Sun did open source Java, and did wind up rewriting some of the native libraries to make it possible. What would happen, however, is renaming it due to trademarks now owned by Oracle. That brings up questions such as would Google need to rename portions of the code, such as package names? The entire JFC exists in the java.* and javax.* packages. What about the sun.* classes that are used under the covers? Those would be easier, since developers aren't supposed to use them directly.
I think "open source Java" is a reality, but forking the project is not as easy as it sounds.
24 beers in a case, 24 hours in a day. Coincidence? I think not!
The similarity of android's dev language with Java is only superficial. It's not really Java by a long way.
Now that Oracle's Java is showing its true colours and proving it's not really open source, I see no reason for Google (or any other company that backs open source) to support it.
This will lead to Java's death, and that's a good thing because it's WAY over-due.
> Java's death means .NET and Windows in the server arena.
That's an interesting theory and I agree with it. .NET/Windows on the long run to avoid Java?
I'm wondering if this really is one of the consequences Oracle indended with this lawsuit.
What value would the acquired Sun be if everybody switched to
Sun open sourced Java, and you can easily fork it. You can't call it Java unless it still implements the specification correctly, but the license that Sun released the code under means that you are safe from patent problems.
Google's problem is that they did not fork Java, they reimplemented it. This means that they have no copyright problems and do not have to abide by the Java license (GPL + runtime exemption), but they do have potential patent problems. Sun / Oracle has a patent grant that permits the use of their Java-related patents in any complete implementation of the Java spec. Android, however, is not a complete Java implementation. It implements the core language and a number of the java.* classes, but it does not provide the entire java.* class hierarchy. This means that it is not covered by the patent grant.
In summary, open source Java is fine, open source almost-Java is not.
I am TheRaven on Soylent News
It's still huge in Big Business, where COBOL also remains alive and well.
.NET.
From what I've seen, it's still largely popular as a web application language for the server-side. Usually an alternative to
The entire JFC exists in the java.* and javax.* packages.
JFC is mostly a synonym of Swing. What you mean is that the standard libraries (mostly java.*) and extended libraries (javax.*) can not be expanded by anyone except Oracle/Sun/JCP.
Concerning the sun.* packages: these are VM specific implementations - nobody should be using them directly.
This lawsuit boggles my mind. I'm sure the guys running Oracle are pretty smart. Can't they see that no matter the outcome of the lawsuit, they are losing big on reputation and client lock-in just by pursuing it? Am I missing some great strategic outcome Oracle is hoping for?
Well, if Josh Bloch said it, then it must be true.
No, seriously. Bloch is one of the few smart public figures in Software Development who, like everyone else, sticks to his agenda, but, unlike everyone else, is very open about his agenda. Besides, he's one of the most entertaining public speakers: Example. If you haven't already watched it, you should.
Now, since I did as you told me, gimme teh darn 500$, please.
On second thought, let's not go to Camelot. It is a silly place.
> In summary, open source Java is fine, open source almost-Java is not.
Where is the difference? Isn't that legal newspeak of corporate lawyers... and why we have a free software movement? I can't see how this sentence makes any sense to an open source developer.
The whole point of Microsoft developing .net was Microsoft trying to embrace-extend Java with Microsoft-only bits and Sun suing Microsoft over use of the name .net.
"Java". Microsoft took their marbles and went off to play in their own yard creating
The only difference here is that Sun sued over calling something "Java" that wasn't exactly Java. Oracle is doing something a bit deeper in that they are saying that Google can't fork the language even if they call it something different.
But Java has already been forked into "real-java" vs ".net/mono/etc". If this suit were being done in some dream world where a still-existing Sun were suing Microsoft over the Java-like structure of .net, then I think the perception would be quite different than Oracle vs Google. the real question here is how much control software patents give over a language.
jEdit is one that works well for me ... and I am sure there more java apps.
hippies happen
new sig
Do you have a bank account?
Most likely the back office operations are using Java in one way or another.
That is just for starters.
People saying that Java is dead and then refer to what is happening on their home computer simply show a degree og ignorance that is short of embarrasing.
IANAL but write like a drunk one.
So wouldn't Google's best option be for them to just implement the missing classes?
Dalvik still wouldn't run JVM bytecodes, so I don't think it would a conforming implementation regardless. I haven't read the spec however, so I don't know if the bytecode is specified there or separately.
Higher Logics: where programming meets science.
... keep saying that Java is dying.
People that have not worked in places where millions are handled by the hour should keep their opinions about coporate grade technologies to their good old selves.
Not at all. The promise of Java is that it would be useful in everything from cell phones to set-top boxes to mainframes, and to an extent that has happened (Android runs a form of Java, and so do some set-top-boxes.) But, in the same way the Cobol is dead outside of a few specific (if important) market sectors, Java is likewise being marginalized. That's what usually happens to anyone or anything espousing the mantra of "one-size-fits-all". Now, I don't understand what Oracle's game is, just yet, but I'm guessing it doesn't have much to do with Java running outside their own playpen. In any event, Oracle isn't a particularly nice corporate citizen, so I suspect that whichever way Ellison decides to jump, a lot of people aren't going to like it.
The higher the technology, the sharper that two-edged sword.
Java will eventually lose ground there as well for several reasons:
#2 is currently the big issue. Once a Java project passes a certain complexity, any "it's simpler in Java" advantage is lost, and the Java language and development environment become a boat anchor.
In summary, open source Java is fine, open source almost-Java is not.
If you make a derivation/fork with the open source Java code Oracle only extends patent grants if your fork passes Oracle's expensive certification tests for Java. This certification is impractical for most people or organizations and is inherently impossible for anybody who is interested in making a new language with the code or adapting some of the code for other purposes.
In summary:
-stephen
For Slashdot readers this seems to be about Java the language (as created by Sun), Oracle & Google the companies, and Android the 'upstart'. However to Oracle customers (for which there are tons), none of this means anything because they are completely indemnified in anything relating to Java. They (Oracle clients and developers) are also neck deep in Java for many big Oracle products, so why should they care much about Google's Java-like language for a phone? Oracle is big enterprise and its users/developers are behind ERP, sales, db & inventory systems, etc - huge enterprise (not consumer so much) investments. I don't think most people using Oracle products are gonna notice anything unusual going on because this affects Android only - this does not affect Google server products, although if Oracle wins, then what's Google to do with all that Java server code? Anyway, think the Sun/M$ Java shenans that went on a decade ago. I'm sure Oracle is viewing this in a similar way.
Google has the most to loose, obviously. They will either have to obey and license the patents they are infringing on (and possibly change big portions of their code to be compliant) or switch out to a new language.
Build a browser plugin that runs python and pygame from the server (so users don't have down download anything except the plugin), and lets talk :D
Hey Im totally for it!
Two enormous differences with the Sun/Microsoft case: 1-- Everything Google built for Android is open-sourced; 2-- No Java license is involved
Google built a VM called Dalvik. Like the Java and .Net VM's, it can run code written in a number of languages, including the Java language. That patents at issue are not related specifically to the Java language, but they do cover common techniques in VM implementation, and if upheld could threaten other VM implementations.
How the hell is the OP a troll? Or did some fucking idiot mod once again misread "troll" as "I don't like what you're saying!"?
The full Java SE is not appropriate for a mobile phone, far to heavyweight and full of APIs like the AWT, SWT etc.
Sun also produced Java ME for mobile use which they charged phone makers to license. Sun (now Oracle) only open sourced, and gave patent grants for, the desktop oriented Standard Edition where they didn't have any revenue anyway. They were careful in the licensing not to allow a free Mobile Edition which would threaten their mobile revenue.
This was a significant problem for Apache's Harmony project. They couldn't accept Sun's restrictions on use so Sun wouldn't license them as a conforming implementation (despite them having done the work to pass the tests).
In practice, the terms of the patent grant mean that while the Java Virtual Machine implementation is free software and can be altered (such as RedHat's work porting the OpenJDK to other architectures). Java as a whole doesn't give you the freedom to make changes to the standard libraries (even if you do call it something else); it's hard to consider it free software.
It's all particularly annoying since, post-iPhone, Java ME has slipped into irrelevancy. There's no particularly strong reason why Google based the Android environment (dalvik) on the java language (though not on the JVM nor standard libs) rather than something else. The availability of Harmony code for reuse, existing tooling in the form of Eclipse, developer familiarity, and substantial internal use of java at Google probably played a part. Interoperability with other mobile java certainly didn't.
Wish I still had that mod point that expired yesterday so I could counteract the idiot that modded this "troll". I neither agree nor disagree, but this hardly qualifies as trolling.
That's odd. I'm an open source developer and it makes sense to me. Lets hear RMS's take.
I don't know what they hope to achieve with this but maybe this lawsuit is connected with the purchase, ie. they planned it from the beginning.
No sig today...
Parent is basically correct. However, pedantically, Dalvik does not, in general, run programs written in the Java language. The language is defined not just by its syntax, but also by a certain set of standard libraries being present and implemented according to Sun/Oracle specification. Dalvik doesn't support all of those, and hence doesn't run Java.
However, Dalvik does run a very Java-like language. One that has all the syntax of Java, and *many* of the same libraries. Moreover (as everyone here knows, I'm sure), programs compiled by 'javac' to .class file may be converted to Dalvik executables (as long as they contain only the subset of Java that Dalvik supports).
It would be proper to prevent Google from claiming that Android "Runs Java"... but then, I'm pretty sure they never claimed that to start with. Indeed mostly--almost entirely--it's claims about patents that should never have been granted, or really just about lawsuits to try to mess up competition and technical progress just for the sake of disruption (I doubt Oracle actually cares that much about the outcome, it's mostly FUD).
Buy Text Processing in Python
Isn't this the perfect moment for Google to pass to Scala for Java-like development and Go! for the rest of it (critical native components)? To hell with Java the language. After all, what is really important is the JVM and they've already forked that with Dalvik.
"Sum Ergo Cogito"
In essence Google has created, in Orifice's...er...Oracle's eyes, an "almost" Java. An "almost" Java does not enjoy the protections the open Java does, according to them. That means they think they can go after Google for patent infringement.
This "almost" makes sense.
~X~
That's funny... since RIM uses JavaME in Blackberry, the most widely sold smartphone brand on the market.
GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
Did you bother looking at their FAQ? Obviously not. GCJ DOESN'T WORK.
Their "mostly-completed" target is JDK 1.1 - you know, released February 1997.
No AWT.
No Swing.
Good luck with anyone taking that seriously.
Sun open sourced Java, and you can easily fork it. You can't call it Java unless it still implements the specification correctly, but the license that Sun released the code under means that you are safe from patent problems.
No, you are only safe from patent problems if Oracle determines that your implementation is fully compatible.
Google's problem is that they did not fork Java, they reimplemented it.
Google didn't reimplement the Java platform, they implemented their own platform and used the Java language. Oracle has no patents on the Java language. And the patents they do have, they could have sued over no matter what virtual machine Google had implemented.
In summary, open source Java is fine, open source almost-Java is not.
There is no "open source Java"; open source principles require the ability to make incompatible forks, and as you correctly pointed out, Oracle doesn't allow that and has the patents to enforce their will.
This was a significant problem for Apache's Harmony project. They couldn't accept Sun's restrictions on use so Sun wouldn't license them as a conforming implementation (despite them having done the work to pass the tests).
And that means that Apache Harmony almost certainly violates Oracle's patents and can be sued into oblivion at any time.
No - the reason GCJ hasn't taken off is because, to date, they're still trying to get a complete implementation of JDK 1.1.
And no AWT, no Swing, etc.
So let's see - liggcj was released in 1999, and here we are more than 10 years later, and they still haven't caught up to JDK 1.1 (1997).
At that rate, you might get to a half-decent release (1.5) sometime around 2150.
Something interesting I've learned since the lawsuit though, is that Dalvik is NOT actually a Java virtual machine. The "Java" code is converted to the native Dalvik bytecode rather than into Java bytecode. Hypothetically, Android could run ANY languages that had a converter, and I think the only reason Java was chosen as the first language to use was to tap the large population of people who are already used to programming for mobile devices running Java ME.
I wouldn't be at all surprised to see, for example, a converter for Googles "Go", or maybe even something that can handle a subset of Python or similarly popular interpreted language popping up as an alternative to writing in Java.
Hacker Public Radio is our Friend
RIM's JavaME implementation is hackish, at best, and even then, you're best off writing "native" BlackBerry code... which is STILL Java. J2ME support only exists in BlackBerry so that they can get away with doing essentially what Google is doing, except the core differences are that:
P.S. Yes, RIM's earlier x86 BlackBerry handsets ran native code and had native code interfaces for third party apps, arguably a whole different OS, but those handsets are so old that their relevance is nil.
Ximian, now Novell, did fork OO.o...
Microsoft's partner Novell forked the code because they are putting toxic elements that are unacceptable to the community at large. Novell is acting as Microshat's proxy to poison the code pool. They weren't allowed to shit in the core project so they made fork and are polluting that. I would say use at your own risk but by you using it, you make computing worse for the rest of us. So don't use anything from Novell.
Novell is putting one trojan horse after another into their fork on behalf of Microsoft. That's where the docx and vba turds are coming from. Even if only strategy rather than the technical and licensing inferiority are not enough to eschew Novell's fork, OpenDocument Format is the future as are scripting languages Javascript and Python. Upgrading to OpenOffice.org and carrying VBA baggage with just guarantees that the systems are out of date before they are deployed. That goes double for the file format, especially since the public sector around the world has been moving back to open formats and naming OpenDocument Format specifically along with HTML and PDF.
Quantity of work is not the same as quality, and goals and licensing are yet another pair of separate factors.
Beta is broken and the link to classic doesn't work. Stop wasting our time or there won't be anybody left here.
You misunderstand what I'm getting at. Pointer arithmetic may make an implementation faster, but that doesn't make the algorithm itself any faster. A faster algorithm is one that has a lower speed complexity, not one that simply runs more quickly than another. I'm not saying that pointer arithmetic isn't useful, only that it's superfluous to designing faster algorithms. At best, it's an implementation detail.
File under 'M' for 'Manic ranting'
Well the Apache Harmony project have never made a stable release, so they've never got to stage where they have any users to sue[*], and without access to Oracle/Sun's Technology Compatibility Kit they probably won't.
If they could get certified as a conforming implementation then they would covered under the patent grant.
[*] I don't know of anyone actually using Harmony code for real -- apart from Google who use some of the class libraries on Android!
If they could get certified as a conforming implementation then they would covered under the patent grant.
The problem with certification is that Sun/Oracle refuses to let them certify.
so they've never got to stage where they have any users to sue
And that's no coincidence; Sun/Oracle has made sure that the only Java implementation that anybody can use is theirs. That ensures that they stay in control and get licensing revenue from mobile and server implementations.
The full Java SE is not appropriate for a mobile phone, far to heavyweight and full of APIs like the AWT, SWT etc.
The full Java SE ran at full speed on desktop computers that had a fraction of the computational power of today's mobile phones (think about 75 MHz Pentiums with 16 MB RAM). The cheapest smartphone of today could run Java SE with no problems. Except for the fact that many desktop-oriented APIs would make little sense on a phone (e.g. Swing UIs). SWT was never part of Java SE.
Java ME was created in a time when phones had alphanumeric, monochrome displays and CPUs without floating point math, so it was designed with a *very* minimalistic approach. That's why it really sucks for all purposes today.
So, apparently the backstory of C# / .Net is that Microsoft wanted to add some features to Java that Sun nixed. As a result, we ended up with a VM and language that's Java-like, (C#/.Net) but has some pretty cool features that weren't in Java at the time. These include AppDomains, improved garbage collection, better reflection, multicast events, delegates (similar to function pointers,) foreach (later copied in Java,) support for pointers in "unsafe" code, support for manual memory management, and an ability to directly call lower-level libraries. .Net on Windows even has a very nice ability to consume COM libraries and export itself as a COM library, thus making it very easy to interoperate with legacy systems.
What's my point? Multiple competing VMs are a good thing if the new VMs bring needed features.
No, I will not work for your startup
The full Java SE ran at full speed on desktop computers that had a fraction of the computational power of today's mobile phones (think about 75 MHz Pentiums with 16 MB RAM). The cheapest smartphone of today could run Java SE with no problems. Except for the fact that many desktop-oriented APIs would make little sense on a phone (e.g. Swing UIs). SWT was never part of Java SE.
Oops, I did mean Swing rather than SWT.
Don't think "full java" has remained constant though. Java6 wouldn't get out of bed for 16Mb RAM. And remember it was the performance on pre-Ghz machines which gave Java its reputation for being dog slow.
I have the latest and greatest c2j, so I "compiled" some of my java code.
I put "compiled" in quotes because a quick look with a hex editor into the resulting a.out shows that it is not "compiled native binary code" - it's a list of my classes, along with the java code that the runtime will further interpret - which the "compiled" code calls when you run it. So you not only don't have a stand-alone binary - you only have a wrapper around the gcj equivalent of java.class files. Same as when, back in the old days, we'd "compile" dbase programs by merging the dbase runtime with our .dbo files. The runtime still interprets them. Changing to Clipper made a huge difference in speed.
Now, back to compatibility - it's STILL garbage. My stupid demo program, which works perfectly when I run the class files, generates LOTS of errors with the c2j version. LOTS. It's garbage, and it's not even "compiled" garbage.
So the next step is to see just how big it would get with static linking.
gcj doesn't like that - it tells me "gcj: Java programs cannot be linked statically". I kind of expected as much, since it's not REALLY putting out native code.
Nice try. A real compiler would have first translated the classes into a series of native function calls, not just served as a wrapper to the java class files. There would have been NO trace of, and no need for, my original class files in a true compiled program. And you'd have the option of statically linking any libs used.
Bottom line: Your buggy "compiled" program is for the birds. It doesn't work! And even if it did, it doesn't really do what you claim it does - it does not produce native binaries. It calls an external library which interprets the code embedded in the file, same as the JVM does.
So, can we stop with the "gcj compiles java programs!" BS?
Splitting that hair mighty thin. Using java at all, whatever they call it, was their main problem.
Don't think "full java" has remained constant though. Java6 wouldn't get out of bed for 16Mb RAM.
But today's cheapest smartphone has 128 MB RAM, which I remember were enough to run Windows XP.
And remember it was the performance on pre-Ghz machines which gave Java its reputation for being dog slow.
An undeserved reputation. I can run Python applications on my 300 MHz smartphone, and Java is orders of magnitude faster than Python. I've never heard anybody lamenting Python's speed. Java does require more RAM tough.
gcj -static-libgcj -o Foo --main=Foo Foo.java
But you will not WANT to do that, as you will lose some features, and obtain a HUGE executable.
On a side note, are you saying that static linking is the only form of compilation? Isn't "linking" a fully separate process from "compilation"?
If you do, then you're implying that 99% of existing code, being dynamically linked, is not compiled. I think my desktop system has less than twenty statically-linked binaries.
Also, static link has some limitations in modern systems. For instance, some pieces of glibc require, even when statically linked, the presence of the dynamic version (of the same release) of the library at runtime.
I'm guessing that your phone is a Series 60 device. IYDK, Nokia ported Pythong to their Series 60 platform
Let me support your case better: I have a Nokia 6620, that has a 150MHz TI OMAP-1510 ARM-based SoC and it can run Python. I once had a Nokia 6600 (which has a 104MHz ARM9T and discrete motherboard components, not SoC) and it, too, can run Python.
gcj under linux says you can't. I already tried that. Where do you think I got the error message from?
And no, I'm not saying that static linking is "the only form of compilation." Object code is the result of compilation. Whether you stick it into a lib or link it directly into your executable is irrelevant. I've been doing this for more than a quarter-century - I know the difference.
The only reason they would require the presence of libgcj (and why gcj refuses to statically link) is because it needs the interpreter at runtime; there's no other way to support reflection, for example, because Sun implemented it wrong.
http://gcc.gnu.org/wiki/Statically_linking_libgcj
They abandoned all development on it last year for a reason. It doesn't support swing, and without swing support, it is of limited usefulness in today's world.
Look - I'm not saying that people should abandon Java. I *am* saying that Sun made some serious mistakes in the original design, and then kept everything so locked up that they couldn't be addressed. Java can stand to use a few improvements that would reduce bloat and make it more flexible if it's going to move forward.
So last Thursday, when perl was being its usual self, I decided to use python. Much cleaner code is the end result.
I've always liked python's "indenting counts!" model.