Packt Publishing, the same book publishing company that sent me the Dojo book, has offered me another free book in exchange for a review, this time on the JavaScript framework Ext JS. I don’t consider myself an expert book reviewer, however, it sounded like another a great opportunity/excuse to learn something new, so I took them up on it.
The book is titled Learning Ext JS and is written by Shea Frederick, Steve ‘Cutter’ Blades, and Colin Ramsay. So far I’ve read about 60 pages, and it’s looking like it’s going to be a pretty good book. It’s paced well and the authors seem to have a good sense of humor (they introduce Ext JS message boxes using a character from Office Space), though I still have around 190 pages left, so there’s still a long way to go.
Ext JS doesn’t appear to be too different from other JavaScript frameworks I’ve tried, though its main focus seems to be in creating slick looking web interfaces. It was originally created as an extension to the Yahoo User Interface (YUI) library, however, due to its popularity, it ended up growing into a stand alone JavaScript framework. Since it was developed with YUI in mind, it initially required YUI to be present to do the behind the scenes work. This changed over time, first with adapters being written so other frameworks (like jQuery and Prototype) could be used to do the core functionality, and then later so that Ext JS came as a complete, stand alone product. Though during this last phase they did keep the hooks in so that you could still use an adapter and have another framework to do the behind the scenes work if you wanted.
From what I’ve seen of Ext JS so far, it’s looks pretty impressive. The offical
Feed Reader and Web Desktop sample apps look especially cool. The only negative I can see, which was initially pointed out to me by Sloat, is that license for the library is the GPL. This means that apps you write using it would be under the GPL and you would have to release the code for them under the GPL. You can avoid doing this by purchasing a commercial license, though this would cost you between $289 and $18,699, depending on the license and support options you picked.
Knowing this, I probably wouldn’t write any large applications using Ext JS, unless I planned to purchased a license. However, for most of the stuff I write, I don’t mind the source code being available, so having to use the GPL is annoying but not a deal breaker. This is something you should think about before you decide to use the Ext JS library though, because this license requires that you release your source code under the GPL.
Anyway, hopefully this experience will lead me to learning a couple of new tricks and being able to create some nicer looking apps. Instead of waiting until I finish the book to do any kind of in depth work with the framework, I think I’m going to try and be a little more interactive this time and write stuff as I go. That way I don’t end up ignoring this site.
I don’t have a specific problem with the GPL, but in this case it’s just confusing. Does it apply to the backend code or just the client side that includes the javascript? How far does it permeate — all the way to the DB schema? Aren’t all webapps somewhat open-source already since anyone can view the source? Is web-app the same as web-site?
It appears the Ext JS developers want it to apply to all of the code in an app or web page. I found this while digging through their website: “If you wish to use the open source license of an Ext product, you must contribute all your source code to the open source community and you must give them the right to share it with everyone too.” [1]
I’d assume that’d include the backend too. Though I don’t think you’d have to release the database schema since that could be considered data and not code (under GPL you only have to release your code).
However, many sources on the net say this isn’t a correct application of the GPL and that the server side stuff doesn’t have to be GPL’d if the JavaScript stuff is GPL’d [2, 3 – these are just examples, there are many more].
As for normal JavaScript apps, they aren’t Open Source since users can’t use the source code for free. The source is visible, but you can’t legally use it without permission of the author.
As a rule of thumb, I stay away from GPL libraries unless I don’t care about freely giving away the source code I write that uses them. In this case though, it’s pretty ambigious since web apps have so many interacting parts, I don’t think the Ext JS developers really understood the GPL when they decided to apply it to their product. They probably just should have written their own license or kept their product under the LGPL.
[1] http://extjs.com/company/dual.php
[2] http://www.planetmysql.org/entry.php?id=11940
[3] http://www.trausch.us/2008/05/14/on-extjs-and-gpl/
Glad your enjoying the book so far – keep us up to date on how your progressing.
Hrm, I wasn’t expecting one of the book’s authors to drop by, though I’m guessing you have a Google Alert (or something like it) set up for “Learning Ext JS”. I’ll let you know if I have any problems with the book, so far I genuinely like it though.
Also, if I end up bashing the book (which I don’t think I will, unless the last 2/3’s is really bad) feel free write a comment rebuttal.
lol – You caught me, I do have a Google alert setup. It helps quite a bit for dealing with piracy actually. A nice side effect is that I get to see right away who is posting about the book.
Don’t let me get in the way of your critique 🙂 I like to look at every situation as a learning experience and grow from it, good and bad alike.
I didn’t even think of the piracy aspect, that’s actually a really good idea.
And don’t worry, your presence wont get in the way, in fact it’s kind of cool that the author will check out what I have to say. I’ll let you know if I have any problems with the book.