Developer Freedom At Stake As Oracle Clings To Java API Copyrights
techcrunch.com
techcrunch.com
* Javascript -- I hate the language, it has enough warts to make it unpalatable
* Dart -- I can see it, that would be great, still kind of new though
* Python -- I understand they could have done it, but it was a political decision not to (at least according to Guido's remark during one of the PyCon's), performance might not be up to par on some devices
* Go -- too low level perhaps, but it would be cool
Assuming that Google had done these, there should be no reason that Python would not be fast or robust enough.
And "better or just acceptable" is rather dismissive of the facts.
Low entry thresholds for developers is nothing but poison for a platform.
This was probably very desirable to Google in 2005 as it gave them the chance to court mobile manufacturers with the promise that their operating system can be deployed across a range of devices and theoretically all apps etc should remain functional, regardless of hardware as it's the VM that's the deployment target, not the phone.
Remember that back in those days the mobile OS world was god awful, Symbian was abysmal, JavaME was broken and Windows CE....well let's not go there.
It seems odd to me to design a platform that only supports one programming language. What happens when people find better ways of expressing their intent?
If Apple had bid to prevent (patents I suppose), I wonder if ZFS would have finally been on OS X. Java would have been the truly odd man out in that acquisition. I could see Java being sold to IBM.
Not that it worked well mind you, it made Finder even more useless than before. But it did "work" for varying definitions of the word.
At least we have dtrace!
I wouldn't mind seeing a new mobile OS build around Go but it's way too late for a change that fundamental for Android. For better or worse Java & Android are married now.
JavaScript
The first Dalvik versions didn't even have a JIT, so performance apparently wasn't the main concern. They could have added optional static typing to their JavaScript VM as well.
I think Google chose Java because many people know it and because the Java faction inside Google is powerful. But many people know JavaScript as well, and arguably the typical Java developer isn't exactly a UX guru. So JavaScript would have been a better fit for Android even though I (and you) don't like it.
Unless you propose writing the entire OS in JS then there's also a huge advantage in using the same language for core OS and APIs and for application development.
In any case as some of the more modest Java replacements like Xtend and Kotlin mature I expect to see Java the language recede in importance for Android.
I don't disagree, but the core OS is written in C, a language that scares off a lot of people.
On the other hand, so far this case has been nothing but a boondoggle for Oracle. It seems that is unlikely to change at this point.
Whenever you think that you should probably read up on both Oracle and SCO.
SCO was a dying company that tried every dirty trick in the book to blackmail the world into giving it a free ride to newfound riches based on ridiculous claims. SCO was backed behind the scenes by Microsoft simply to attack Linux which Microsoft saw as a threat to its bottom line. As such SCO was really nothing but a proxy for Microsoft in the dirtiest fight that the IT industry has ever seen.
Oracle is a very successful company that bought the assets of another dying company (SUN) in order to safeguard a line of business and in order to buy the IP rights of that dying company, which included Java.
Note that I'm not defending what Oracle is doing here but the differences between SCO and Oracle are enormous, and are certainly not limited to scale.
In many ways the Oracle case is much more dangerous because it now openly attacks a well established principle (interoperability) and Oracle actually has the resources to do real damage. For now that damage is limited to Oracle shooting in its own foot (Damaging the Java brand in a very clear and concrete way) but that could easily change.
Google has a very long standing habit of doing or buying things that are illegal (youtube, books, caching the web, images) and getting away with them because they have deeper pockets than the copyright owners or because they strike a deal when cornered.
SCO's claims aginst linux ('10's of thousands of lines') were absolutely unfounded, Oracle's claims against Dalvik seem to have at the surface at least some merit.
And Oracle is not simply going to give up on what it perceives to be its right simply because the party they believe is infringing is Google.
Still, I'm rooting for Google to win this one and for Oracle to lose this one, the consequences of the fall-out of an Oracle win would be pretty disastrous.
Actually, ironically, it's not SCO that tried to sue every Linux vendor, but the Linux company formerly known as Caldera Systems (of Caldera OpenLinux). They purchased SCO's UNIX business and renamed themselves to The SCO Group. The real SCO was renamed to Tarantella.
It's sad, not only is the name of 'old SCO' forever associated with attacks that they did not participate in, the Linux ecosystem was actually under attack by a (former) Linux company.
Patenting an API would be like patenting a UI -- reasonable under the law. http://www.dbms2.com/2010/03/23/software-innovation-patent/ Whether the law should be changed -- as I think it should be -- to make such patents unreasonable is a separate issue.
Sure, I'm just addressing your fair use comment with my own input.
"...non-interoperable reimplementation of the API"
I do not understand this phrase. If you implement an API that's exactly the same as the API in a library that I publish, the underlying implementation is irrelevant to your clients because your software is now an interoperable replacement for mine. If you implement some API that's not the same as my API (and thus not an interoperable replacement), you can't have infringed on my theoretical API copyright.
At the risk of mischaracterizing Oracle's argument, the basic idea is that Google wanted developers to have a familiar API and wanted to reuse some of the tooling built for Java, but there is no way to get a compiled Dalvik program to run on a JVM, and likewise compiled Java software can't be run on Android. So Google piggybacked on the hard work Sun put into designing a coherent (and quite large) API, but didn't really do so in an interoperable way. In some ways the case is reminiscent of the Sun/Microsoft quarrel about Microsoft's extensions to Java (though that also involved trademark issues, as I recall), though many commenters who supported Sun in that case now seem to support Google in this one.
If Larry Ellison hadn't underestimated the cloud trend, the takeover probably wouldn't have happened. Oracle has been very successful with its M&A activities, but this one is clearly a complete desaster.
When you write code, in the U.S. you hold a copyright to it at the moment you put the characters onto disk. In the case of work-for-hire (i.e. you are employed as a software author by your company), the company holds that copyright. No one else has permission to use, copy or distribute the software without the express permission of the copyright owner. Licenses are the mechanism used to bestow rights upon other users (or, in the case of Open Source Software, potentially other developers) of the software.
Switch gears a bit: other companies (vendors) providing interesting systems (those that you or your company are interested in using) also provide information on how to interoperate with their systems and libraries. When using the C family of languages, this information is provided in a machine-readable format known as a "header" - the header file is source code that describes the procedures made available inside the vendor's code libraries. You include this header in your own project so the compiler can validate that you're calling the library code correctly. They've given you a binary library and not the source to the library to help in protecting their rights to their original code.
Now, after years of offering a particular product on the market, a vendor (Vendor A) decides to discontinue offering this particular product regardless of the fact there are numerous client who still use this product and are willing to continue to pay for support. They are not willing, for whatever reasons, to completely overhaul their own systems and incur the immense expense in changing to this vendor's completely new and different product.
Company B steps in offering an interoperable replacement to that old system that's been discontinued by Vendor A. Company B created a completely legal replacement for this system because they did not use Vendor A's source code. They created a "clean room" implementation of the system. As far as the client's systems are concerned, the interfaces into Company B's solution look exactly like Vendor A's system, to the clients network, employees and customers carry on with business as usual.
Courts have ruled that creating systems for such interoperability is legal and necessary. Without such recognition, vendors have the opportunity to lock their customers into the vendor's products. Interoperability is defined by interfaces to systems and libraries. The interface into a library is an Application Programming Interface, or API. The API has pretty much been declared to not be of the expressive type required to obtain copyright protection. If API's become completely protectable by copyright (and thus require a license to use), companies can then limit the ability for others to provide interoperable systems thus limiting competition. In this case, the legal freedom of developers to create tools and apps around an existing system is severely limited and perhaps even eliminated, regardless of the fact that these developers didn't use any code from the vendor in the process.
Am I missing something?
If APIs can be copyrighted, it would seriously harm interoperability. For example, if the ruling holds, someone could make a payments service which replaces Paypal so seamlessly that to integrate it you can just change the 'paypal.com' string for 'competitorsbrand.com' without redoing all the work you did for Paypal integration. This would be bad for Paypal but would be great for making the market far more efficient. Similarly, if it is reversed on appeal, Wine and Mono could be considered copyright violations and sued by Microsoft.
If it extended to non-software interfaces a reversal could be even worse - imagine if the idea that turning the round wheel in front of the driver causes a car to move in the corresponding direction was a copyrighted interface? In that particular case, Copyright in the US wouldn't have expired until 1985, so other manufacturers would have needed to come up with different interfaces, and switching makes would have been hard.
It's a good question, however, if API designs should be copyrightable in the same fashion building blueprints are.
I'm fine if dart kills javascript. What it's made to do.
I'd also be fine if go/python/befunge kills java.
I miss Sun. Dearly. They were perhaps the only major IT company with a true heart.
And now there's none left. Google? Hell no.
im so surprised