Are All Funded Open Source Companies Destined for the Dark Side?
Spring Framework was the chosen one. However, there was a growing disturbance in the Source. Spring tried to reinvent every library under the sun while ignoring great existing solutions like XFire. There was a controversy involving SpringSource and OpenLogic where SpringSource claimed that it should be the sole supporter of Spring. The SpringSource Application Platform was released as GPL instead of the expected Apache license. Now, the transformation is almost complete with the announcement that most Spring minor releases will only be directly provided for paying customers. I only have one word to say in my impression of Anakin overacting: nooooooooooo!!!
http://www.youtube.com/watch?v=Tim5nU3DwIE
One company that should be especially concerned is G2One, the company behind Grails. Grails is built on Spring, and is enjoying increasing awareness and the impending release of a book. However, Grails also has major obstacles like poor Eclipse support and performance issues. This disturbing SpringSource trend could tip the scale and derail Grails.
Any further chilling action on the part of SpringSource could cause a domino effect and topple other major innovative open source projects, since almost every Java library integrates with Spring. Just like the financial crisis in the U.S., it all started with greed and outside parties enabling that greed. Also like the financial market in the U.S., the viability of open source is on the ropes with consumer confidence and trust shaken badly.
I have blogged a lot about Ext before, so I will not rehash those arguments. However, Ext is another company that received external funding. The main difference is that Ext never tried to do no evil. At least Spring does not have the additional incomprehensible legal clauses that Ext tries to tack on its licenses, so maybe there is a chance to fork Spring effectively if absolutely necessary.
I was wrong with a previous assessment of MySQL. MySQL actually changed the JDBC driver license to GPL a few years ago, so MySQL will contaminate commercial Java-based sites depending on your interpretation of the ambiguous GPL. PostgreSQL is probably the only truly free enterprise database, which is unfortunate since many PHP applications do not support PostgreSQL.
As a user of these open source libraries, you are on the frontline. There are always warning signs, and unlike cheesy space operas, the villains never turn back to good again. The only real solution is to jump off the bandwagon when you have enough evidence that a company is stringing you along with artificial open source bait. Once you are certain, stop giving free technical support on the forums, submitting bug reports, or evangelizing the library. Instead, support any promising forks that may emerge and strip out any extra baggage libraries previously added to make it a bloated monster.
If you are a technology manager, and you care about the future of open source, please consider not financially supporting any open source company that consistently betrays the trust of their users. If you are an executive of a major company like Sun and Google, please do not acquire companies like Ext and possibly SpringSource that have overwhelmingly negative goodwill. Just like the EA/Spore DRM controversy, the bottom line is the only feedback that some companies will understand. Do your part and stop enabling the reckless greed that is destroying the growth of the overall Java market and our futures.
If you are thinking about starting a company around an open source project, please stop and rethink that decision carefully. Are you 100% committed to keeping the project open source in the original spirit, even if the project becomes wildly successful? If the answer is no or even maybe, please keep it proprietary and do the rest of the world and your potential users a huge favor. Only open source extremists will have a problem with that decision. This will give legitimate open source projects a chance to thrive.
In my naïve MBA days, I thought the be-all, end-all objective of a startup is to acquire venture capital and then cash out with an IPO at any cost. After leading many Java projects and seeing things like this, I now believe bootstrapping is the only way to go and still stay in touch with your vision and users. You can succeed without stepping over the corpses of your users and allies, even if it may take a little longer.
September 20th, 2008 at 1:23 pm
Yes, because making money is illegal. Open source doesn’t necessarily mean free as in beer.
September 20th, 2008 at 2:02 pm
With Spring building support for EJB 3.1 and the standardization of many Spring like features in WebBeans 1.0, I wonder if developers will choose to go back to the JCP standards with the arrival of Java EE 6. This happened already when JPA came out. Many developers choose the JCP standard annotations or XML over implementation specific ones. I blogged about that here:
http://www.ryandelaplante.com/rdelaplante/entry/end_of_spring_vs_ejb
September 20th, 2008 at 2:27 pm
@wageslave
By your statement, I assume that you mean Spring, Ext, and MySQL are heading toward a free as in freedom model only and you like it that way. However, all three started with a free as in beer model as well and that was the main hook by which they obtained their communities at the expense of others. I prefer to have both kinds of freedom, since vendor lock-in is a huge negative for me. I also believe in transparency and not changing the rules adversely on one’s customers if possible. You are free to believe otherwise. I have far more respect for Microsoft than for these companies, and MS is the ultimate moneymaking machine.
I love money as much as the next person, but it is not my main motivation in life. I suspect this is true for most developers as well.
September 20th, 2008 at 2:58 pm
@Ryan
I have a very negative view of JCP standardization now, partly due to the original propaganda by Interface21 years ago and first-hand experience with some of the hyped JCP-approved API’s. These days, it seems like JCP is only effective when it copies de-facto standards like Hibernate. In which case, why even bother with JCP except to let Sun maintain primary control of the Java community instead of having a more democratic and organic approach?
As for other developers, I cannot speak for them. Ultimately, the winners may be Guice, Seam and other solutions (e.g., JRuby on Rails) for the business and persistence layers.
September 20th, 2008 at 4:54 pm
Someone linked to this blog entry.
http://www.theserverside.com/news/thread.tss?thread_id=50727
Thanks for mentioning that G2One and SpringSource have the same funding source. To clarify the second paragraph, the negative publicity of this SpringSource decision can easily carry over to Grails. Up to this point, Grails has had a very positive reputation for doing almost everything the right way. However, the fact that G2One might end up going down the same path as SpringSource due to venture capital pressure is a major reason not to select Grails.
Remember, Rod started out sounding like someone who is passionate about freeing the Java community from the EJB nightmare and breaking the platform lock-in. Will the people involved in Groovy/Grails end up changing as well? Unlike Spring, there may not be enough of a community for Groovy/Grails to handle a fork effectively.
September 22nd, 2008 at 1:14 am
I think the most worrying aspect of this is that the (particularly open source) developer community may begin to lose their trust in projects which don’t come out of organisations without a very well established non-commercial ethos, such as the Apache Software Foundation.
Phil Zoio
http://impala.googlecode.com/ - Impala dynamic modules for Spring
Spring reloaded, fast and simple!
September 22nd, 2008 at 2:15 am
Are All Funded Open Source Companies Destined for the Dark Side?…
[...]Spring Framework was the chosen one. However, there were subtle signs that things were not right. Spring tried to reinvent every library under the sun while ignoring great existing solutions like XFire. There was a controversy involving SpringSour…
September 22nd, 2008 at 4:35 am
@Phil
I agree with your comment. Apache and other organizations like it look even more appealing now. I feel somewhat bad for projects based on Spring like the one that you lead, which actually sounds pretty interesting.
I went into way too much detail about this in my next blog entry.
http://abotar.com/blog/2008/09/22/funded-open-source-companies-part-two/
September 22nd, 2008 at 6:25 am
> These days, it seems like JCP is only effective when it copies de-facto standards like Hibernate.
They are not copying defacto standards, they are making defacto standards an official standard. That’s what it is all about!! JCP doesn’t re-invent the wheel all the time, they assemble expert groups with many many businesses and individuals with expertise in a particular area (such as Gavin King and Oracle for the creation of JPA) to agree on how to merge the best ideas from everyone into an official standard.
> why even bother with JCP except to let Sun maintain primary control of the Java community instead of having a more democratic and organic approach?
I don’t think you understand what the JCP is. Sun is not the JCP. There are hundres of JSRs in the JCP and dozens of companies involved. Every JSR has expert groups comprised of businesses that are leading in that area, be it mobile, speech recognition, transaction management, ORM, etc.
Look what SpringSource is today. They have become just like every other application server vendor, except they are proprietary and narcissistic. They preach about terrible J2EE and EJB 2.x but never talk about how Java EE 5, EJB 3.0 and especially 3.1 is actually easier to use than Spring when you consider having to integrate with JTA, JPA, JAX-WS, etc.
September 22nd, 2008 at 6:31 am
Look it is already happening. Lots of Spring users saying it is time to look at EJB 3.1 because it is a standard
http://www.theserverside.com/news/thread.tss?thread_id=50727
September 22nd, 2008 at 10:31 am
@Ryan
I will start out by saying that I have a huge built-in bias against JCP from years of frustration by their previous results, but EJB 3 was definitely a huge step toward the right direction. I stopped following JCP a few years ago, so readers should definitely get a second opinion from someone like you.
However, I believe that too many cooks spoil the broth for APIs, since each company has a different agenda. In general, the objectives of large companies almost never align with John Q. Developer such as me. I would rather see the entire Java community vote with their feet by an organic approach, rather than be tied to the opinions of a couple dozen experts.
To address your second point: given how badly EJB 2 was botched, does Sun really deserve the specification lead positions on EJB 3 and EJB 3.1? My position is that JCP benefits Sun disproportionately.
EJB 3.1 Specification Lead
Kenneth Saks - Sun Microsystems, Inc.
http://jcp.org/en/jsr/detail?id=318
EJB 3.0 Specification Lead
Linda DeMichiel - Sun Microsystems, Inc.
Michael Keith - Oracle
http://jcp.org/en/jsr/detail?id=220
EJB 2.1 Specification Lead
Linda DeMichiel - Sun Microsystems, Inc.
http://jcp.org/en/jsr/detail?id=153
Some APIs that Sun and JCP produced in the past and I had used include Java Applets, Swing, Java ME, EJB 1-2, and JSF. If you have ever used any of these APIs, you might understand why they would give Sun and JCP a bad reputation. Third parties that implemented standards like EJB 1-2 (and Java ME) are partly to blame for incompatible implementations so you cannot generally take an EAR file from one enterprise server and put it in another without change. There is a big incentive for the different vendors to introduce minor differences to achieve platform lock-in. Sun and JCP could have cracked down on this but failed to do so. I do not really know too much about the quality of the EJB 3 implementation across different vendors, so this may have changed.
I mentioned that I cannot speak for other users, and it is good to see that other users are seeking alternatives to Spring like EJB 3.1 as you mentioned. This will put a little counter pressure on SpringSource against the overwhelming venture pressure. Like you, I think SpringSource has become a hypocritical company. I think some open source companies should not grow too large, and SpringSource might be one of them.
September 22nd, 2008 at 3:43 pm
I can’t argue with that. I think you are absolutely right about the past. I came into the Java world only a few years ago so I’ve had the opportunity to taste J2EE but quickly moved onto Java EE 5 which was a huge improvement. It still has important missing features which have made me use Spring and Hibernate in some projects still. However, I am happy to see progress and think that EJB 3.1, JPA 2.0, JSF 2.0 and WebBeans solve every single pain point I have identified. I am really looking forward to trying it all out.
I think there is a bit of reform happening in the JCP with expert groups becoming more open: blogging about what’s going on, asking for community feedback, public issue trackers, etc. They KNOW it has to change from the old way, and I think that is happening. I don’t mind that Sun is spec lead on specs such as EJB 3.1. I’ve seen them listening to the communities and making major changes in their entire product line. Modularity in GlassFish V3 is just one example. Also, there are many non Sun employees on these expert groups such as Adam Bein, a freelance consultant in Germany. I believe he has just as much influence as anyone else in the expert group, plus he has a lot of experience using EJB 3.0 in real enterprise applications (BMW, Volkswagen, government, etc.)
For me the #1 reason that attracted me to JCP standards was that it made decision making easier when I was getting started in Java. Every single decision I had to make had 20 options and I didn’t know how to evaluate them. Choosing JCP standards for everything made decision making easy. It also felt familiar, like my Microsoft days where Microsoft sets the standard. I’m glad to see the JCP standards have finally caught up to the “organic grass roots open source” projects in Java EE 6.
September 22nd, 2008 at 4:28 pm
@Ryan
You sound very informed, especially for someone with only a few years of Java experience. It is good to hear that Sun can learn and grow. If only Sun would change the MySQL JDBC driver license to be more business-friendly.
I usually make my technology decisions by reading blogs regularly, and then evaluating frequently mentioned technologies.