Collaboration: At the Extremities of Extreme
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Charles Humble on Aug 13, 2010
Late on Thursday, Oracle filed a copyright and patent infringement claim against Google over its Android operating system, opening a legal war between the Silicon Valley firms over the smartphone software platform.
Android has seen rapid growth since its first release in November 2007. Figures from Gartner for the last quarter show it ahead of Apple's iOS for the first time, though it should be noted that these figures were just before the launch of the iPhone 4 when inventory of the Apple product was tight. The top four smartphone OSes were Symbian (41.2 percent), RIM (18.2 percent), Android (17.2 percent) and iOS (14.2 percent).
The lawsuit, filed in Federal court in San Francisco, accuses Google of breaching seven patents that Oracle assumed when it acquired Sun Microsystems earlier this year. All these patents relate to Java:
In a brief statement, Oracle said that Google had "knowingly, directly and repeatedly infringed Oracle's Java-related intellectual property".
Android makes extensive use of Java, both in the core OS and in the software development kit (SDK). Whilst Google has also released the "Android Native Development Kit", enabling developers to build Android components with C and C++, the preferred method is based around coding applications in Java. These are then translated into bytecode that runs in Dalvik, Google's own custom VM. The core Java libraries in Android are based on Apache Harmony, an open source/free Java implementation from the Apache Software Foundation. As such Google's Android SDK implementation is largely independent of Oracle's, and Google doesn't pay Oracle any money for its use of Java.
Much of Sun's revenue model for Java revolved around license fees from mobile handsets and other OEM licenses, and there were concerns expressed in some quarters when Oracle bought Sun that it would seek to wring more money from its control of the software. It is widely assumed that Sun's refusal to license the Java SE 5 Technology Compatibility Kit (TCK), needed for the Apache Software Foundation to certify its Harmony implementation of Java SE 5, was as much about protecting this revenue model as it was about any legal issues.
The lawsuit marks Oracle's first attempt to exert its rights over Java. Larry Ellison, Chief Executive Officer, justified the Sun acquisition largely on the grounds that it brought Oracle control of Java.
At the time of writing Google has said it is still studying the complaint, a copy of which can be seen on VentureBeat, and is yet to comment.
Is this accurate:
Apache ported Java as Harmony.
Google ported Harmony as Android?
Reading elsewhere on the net it seems that this is a patent issue not a copyright issue.
Orcale is apparently suing Google for patent infringements over techniques used by the Davlik VM. The Davlik VM is not a JVM as it has its own byte code. However, Davlik is probably using some patented techniques that other JVMs (or other VMs in general) also use.
Don't know how strong Oracle's case is but looks like this will send shivers down the open source community's spine.
I would love to see a breakdown of the amount of capital that goes into wrestling with the patent system. The titles of the patents are evidence of its absurd state. Why bother actually making anything when you have to pay an army of consultants to make sure you aren't infringing on any patents/copyrights? You might want to make sure the "Email me replies to any of my messages in this thread" system isn't patented.
Hi Vic,
Not quite - Apache Harmony is a cleanroom reimplementation (not a port, which implies copying) of a Java Virtual Machine released under the Apache License (although I don't think they were ever officially certified as a Java implementation due to the longstanding TCK issue: en.wikipedia.org/wiki/Apache_Harmony#Difficulti...).
Portions of the Dalvik VM are based upon Harmony:
www.infoq.com/news/2007/11/android-java
en.wikipedia.org/wiki/Apache_Harmony#Use_in_And...
Dalvik is not a direct port of Harmony in the sense you described, but some of Android's core libraries are based upon some of the Apache Harmony code.
Thanks,
Ryan Slobojan
James Gosling has written his ideas about this lawsuit, it gives some valuable insights.
nighthacks.com/roller/jag/entry/quite_the_fires...
Whenever Oracle get round to the big nukes, they will take G to court for Android because Android is Java - dont believe me look at the source its got java.lang.String everywhere etc.
Oracle is evil and Larry is a scumbag. There you go.
I mean are we really surprised? Basically Oracle is a 1-product company (the RDBMS). Now they are facing competition from MySQL / Postgresql on th one hand, and a whole plethora of NoSQL technologies (Couch, Mongo, Redis, BigTable and the rest) on the other.
We have recently started developing our ruby apps against mongo. Document-oriented stores and just SO flexible. Never need another migration. Never write another static schema definition. I'm prepared to go out on a limb here: we will probably never write another "conventional" RDBMS-backed application again!
The times are changing and Oracle's "stack" is increasingly looking like legacy technology. Is it any wonder that they now resort to patent trolling to shore up their reason for existence? I am disappointed but far from surprised.
I mean are we really surprised? Basically Oracle is a 1-product company (the RDBMS).
Oracle has dozens of very successful products, including Oracle Financials, all of various applications (PeopleSoft, Siebel, JD Edwards, etc.), middleware like WebLogic, Coherence, Glassfish and Tuxedo, and databases like Berkeley DB, MySQL and TimesTen, not to mention hardware (servers, storage, networking) and a whole lot more.Now they are facing competition from MySQL ..
That's Oracle MySQL ;-).. and a whole plethora of NoSQL technologies
.. like Oracle Coherence.
Peace,
Cameron Purdy | Oracle Coherence
coherence.oracle.com/
In the same spirit Charles Nutter has some interesting thoughts/insights on this
blog.headius.com/2010/08/my-thoughts-on-oracle-...
Given the Oracle suit against Google's Android on the basis of VM patents, Google may, out of necessity, need to switch to their own Go language as a replacement of Java. (Because frankly the Oracle suit is looking to have a great deal of merit.)
The Android version of Java requires the Dalvik VM to execute. Go language, however, compiles to native code and there is an ARM compiler. Its runtime library is layered on top of POSIX APIs and would be relatively easy to implement on Linux-based Android. (It supports garbage collected memory management and has nice Erlang/actor-like goroutines and channels for implementing concurrency.)
Go language needs a dynamic link library enhancement, though, so that its runtime could be supplied as versioned dynamic linking library. Smartphones could then cache different versions of the Go runtime so as to match up with various generations of applications that get released in the app store. (Adobe Flash Player has similar feature of runtime shared library for caching the Flex SDK libraries.)
I've programmed for years in Java and then did a project in Go. I admit my first professional programming language back in the day was C. Yet I appreciate the improvements to programming efficiency that Java brought when it was first introduced. Go is indeed a kind of C language updated for the 21st century. It has a C like sensibility to its approach but has avoided a lot of the boiler plate coding of Java and other issues Java has with its OOP programming model based on classes.
Go language has the potential to be an ideal programming language for the new generation of small devices such as smart phones and tablets.
Oracle has dozens of very successful products, including Oracle Financials, all of various applications (PeopleSoft, Siebel, JD Edwards, etc.), middleware like WebLogic, Coherence, Glassfish and Tuxedo, and databases like Berkeley DB, MySQL and TimesTen, not to mention hardware (servers, storage, networking) and a whole lot more.
Regardless, they choose to impede progress with vague, overarching patents. I guess that even Satan will have his apologists.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.
11 comments
Watch Thread Reply