Translate: Select any text in the browser and have it convert to English (or your language) Twitter Translate: Automatically convert tweets to your language
Apr 27

Ext JS: A reminder that you are not alone

JavaScript, Open Source, Tech Add comments


Every now and then, normally when talking to a libertarian, I think about how we are actually all connected to each other. It is impossible to sandbox yourself from society which leads me to conclude that I need to embrace it and do what I can to work out what kind of society we want to be.

With the current Ext JS debacle, you get reminded of how connected your project and business are to other people. Just because you own a company, doesn’t mean that you control it. When I think about my own company, Google, I realize that the most important currency is user trust. It doesn’t matter how many PhDs and great technology releases we have, if we ever lost some of the trust. I think that Google has earned its reputation, but all it would take is something that goes against what we have stood for so far, and we could lose it just as fast. I actually like this fact, as it keeps us honest.

It is a little like your tennis ranking. A rolling year of past performance is what really matters here. It doesn’t matter if you won that grand slam one year and one month ago. This is why every tournament matters. A bad showing loses points.

Of course, with user trust it is a lot more nuanced, and the graph is more exponential (the longer you go back in time, the less it matters).

Anyway, enough side tracking. When you have a software project that is a library for developers, your end users are those developers. If the project is open source, then there is a clear communication of the rules through your license. This is why open source licensing is so important. It allows you to have a simple contract saying “this is what you can and can’t do”. As a developer I can see GPL, BSD, Apache, and I know right away what kind of community this is, and how I can play a role. It isn’t about one license being better or worse than another. It is about communicating rights.

If you are fortunate enough to gain a real community, where other developers are participating, then the game starts to change. Now you have people who are invested in your project, maybe building on it for you, or evangelizing it, writing documentation, or creating their own business. At this point you really start to see what kind of project it is going to be, above and beyond the source code licensing. This is the Open Community side of a project. It can range from: only people who work for company X contribute in anyway, to: active commiters from all over the Web. This paints a picture of the project as a whole, and will have large effects on project, including who uses it. This is all about governance.

This also comes into play in other ways. When you think of Apache, or the Dojo foundation, you know about the legal protection that comes through the process. You know that everyone has signed a CLA, and that the history of the code is clean and well known. This has a huge effect on getting large companies into the game (This is why companies like IBM and Sun are so involved in Dojo IMO).

Now that you have users of various stripes, and a community with varied roles, you also have connections through out. If you then change the open source license for your project, the contract in the community has changed. When you make a change you not only need a good reason, but it has to be transparent, and you obviously have to get all of your ducks in a row to even be able to pull it off (e.g. depending on the change you may need every author of a line of code to get involved).

With Ext JS, there was a strange situation. The original license of LGPL-ish was very confusing, which lead to a confused community. Some kind o change was required, and clarity needed to be brought in. Unfortunately, it seems that the move to GPL has caused more chaos and confusion. Developers who poured a lot of time into the community (e.g. by creating GWT-Ext) are upset. The chaos can rip the community apart and you end up with a true lose-lose. Jack has spent far too much time and grey hairs on this one, instead of writing great code and growing his business.

So, it acts as a reminder, that the community is all connected. Everyone may not be equal, but make sure that communication is incredibly clear at all times to make sure that something like this doesn’t happen.

One Response to “Ext JS: A reminder that you are not alone”

  1. andy Says:

    I was using ext for one of my projects and was updating some stuff when I came across the ext licensing brouhaha all over the internet. I must say the licensing terms appeared sneaky from the beginning when I started using the library, but since what I wanted to use it for appeared to be LGPL licensed, I decided to go along with it. One of the major reasons I decided to use it was that ext appeared to do some pretty amazing stuff and with a really nice interface. BIG MISTAKE. The library was horrendously hard to learn and to use and debug, not in the least because:
    a) For a lot of the stuff in the API (which appeared to be well documented but was really not because a lot of it was just repitition of not very helpful comments) there was no contextutal information which can quickly tell a developer how to use the api (to get an idea regarding what I’m talking about, see jQuery API). Even YUI docs are better than ext.
    b) Second, but more importantly, noobs were treated like crap in the forums.
    With the benifit of hindsight, it is now clear why it was not in the best interests of the Ext team that the developers learn to use the library easily and on their own – or how else would they make support money? Also, lacking the budget for as big a testing/development team as the open source comuunity, it was in the ext owner’s best interests to keep the real nature of their motives hidden until they had a commercially viable product ready.

    This licensing fiasco is really the last straw. As of now, I have thrown out the ext-js library from my project.

Leave a Reply

Spam is a pain, I am sorry to have to do this to you, but can you answer the question below?

Q: Type in the word 'ajax'