JavaOne: Simon Phipps on Forking Resistance, Open Source

by Tim O'Brien

From Simon Phipps' Liberating Java Talk:


"Apache Software Foundation has told me that they have looked back in the ten year industry and they haven't seen any example of someone forking an Apache codebase and keeping going with it as a fork of the apache codebase without contributing code back in the end. Everyone either gives up or gives back, there isn't a third way."


Phipps has perfected the pitch for open source. You can tell he's had to explain open source to a zillion executive types who have no idea what he is talking about. Here are some good quotes:


"...with more and more people deploying the software, improving it,developing it, fixing bugs in it, and ultmi contributing to the comm. Not because they want to give way stuff but because contributing back reduces your cost and allows you to benefit from the network effects of the community."


More on the true cost savings of open source:


"It's not about getting free stuff, it's about getting control over what you pay for. That is what is really key for end-users about open source software. And, if you hear a CIO talking about thinking about how they are going to reduce their cost by not having to pay for software licenses anymore they are thinking wrong. Open source is about getting control over what you do pay for, what you hire for, and what you don't pay for. And, that is a sustainable way of keeping costs under control as you are deploying software."


On open source and the rapidly growing Asian markets...


"In China, four years ago, the Chinese economy was using 95 plus percent foreign source software. Last year the Chinese government was using 70% open source software. There is a profound transition happening in Asia in the rapidly developing economies that is using open source as a power house. And if we want to do business in those new markets...open source is just a basic hygenie factor, and you better have an answer ready when they ask. ...In 2007, we're in a world where open source style licensing in now a prerequisite for your presence in an environment. And that means that the time is now right for the Java platform to become free software. "


On selecting the GPL...


"Using the GPLv2 was a controversial choice when we made that decision. The reason we used GPLv2 was primarily because that meant we could distribute on GNU/linux. That was the number one reason for using GPLv2. There were some other reasons for using GPLv2. One of the reasons for using GPLv2 is that it discourages people from creating proprietary forks. It does that by forcing forking behavior to be done in public. By bringing transparency and daylight into attempts to create a fork of the platform."



2 Comments

JT Wenting
2007-05-11 01:16:05
Having a webserver as open source is one thing, a programming language spec is something else entirely.
Not too much harm if someone uses your codebase as a basis for his own webserver with some "kewl" new features, but if someone does that with your programming language and releases it under the same (or confusingly similar) name, you're in trouble because you're the one (being more established) who'll get the miriad support calls from people suckered into using that forked product and thinking it's compatible with yours.
Given the number of people with "great" ideas to "improve" Java that's not just a likely outcome, it's a certainty.


You MUST have a single governing body for a language spec, a body with the power to protect that spec with strong legal means to prevent others from perverting the spec while keeping the name for whatever reason.
If not you marginalise your language.

Arnold
2007-05-14 07:18:57
This "there m ust be a strong leader" stuff gets boring.


Programming language specifications are in the open for a long time, for everyone to implement. Whatever mainstream language you take, there is an openly (usually not freely, but openly) available language specification. Does it hurt? No.


Further, whatever mainstream programming language you take, there are lots of different implementations. Does it hurt? No. People standardize on a combination of product (compiler brand XYZ) and language specification (ANSI/ISO standard ABC), not on a language specification alone.


And whatever mainstream programming language you take, there are a bunch of public forks, in the sense of language evolution. Scheme is a fork of Lisp. And Common Lisp is an evolution of Scheme. Ratfor was a fork of FORTRAN. Smalltalk is a fork Simula. PostScript is a fork of Forth. BCPL was a fork of CPL. B was a fork of BCPL. C is a fork of B. C++ is a fork of C. Java is a fork of C++. C# is a fork of Java. Does it hurt? No. Either the fork can live on its own merits or dies (see Ratfor in the example above).


Support calls? Whom do you call today if your Java is broken? No one. Unless, of course you made an explicit support contract with someone like Sun. Do you really think people sign support contracts without specifying what the support encompasses?