Book Review: Learning ExtJS 3.2
dulepov writes "An extensive set of features makes ExtJS a very popular framework. But a rich set of features comes with a cost: the framework is complex. While many frameworks can be learned from source, with ExtJS this is not the case. Syntax of object-oriented programming in JavaScript can be very difficult to understand and ExtJS sources demonstrate that. As a practical programmer, I think that the best way to learn ExtJS is to read a good book and follow examples inside.The ExtJS book I got was published by Packt Publishing. It is called Learning ExtJS 3.2. I consider myself an experienced ExtJS developer but there are always more experienced developers and this book was written by several of them." Read below for the rest of dulepov's review.
Learning Ext JS 3.2
author
Shea Frederick, Colin Ramsa, Steve 'Cutter' Blades, Nigel White
pages
432
publisher
Packt Publishing
rating
9/10
reviewer
dulepov
ISBN
1849511209
summary
A good learning resource about ExtJS
When I looked through the table of contents, I realized that it is one of those rare books that suits all kind of readers: from beginners to advanced. The book starts from "Getting ExtJS" chapter. It discusses why ExtJS is different, how to get it, where to put it, etc. While this may seem like a chapter for beginners, I read it with interest and found several tips I will use in my next project. The opening chapter also tells what to do if the developer sees error messages. This is another advantage of the book: it is highly practical.
Further chapters describe how to use ExtJS. Here is what is covered: getting elements, creating and using forms, working with menus and toolbars, displaying and editing data with grids, using layouts for components (you can quickly rearrange objects by just applying another layout), creating tree controls, using windows and dialogs. There are also chapters about charts, effects and drag-and-drop. In addition there is a chapter about extending ExtJS. This area is probably one of the most difficult for programmers because this is not what the developer can find in the ExtJS package. The topic about extending ExtJS takes 38 pages, so it is really well covered.
Another interesting topic discussed in the book is data transfer between the browser and the server. There are traditional ways (such as AJAX) but ExtJS and the book go further discussing remote method invocation from the client on the server using ExtDirect. ExtDirect is a hot topic in the ExtJS community because it greatly simplifies communication between the client and the server. Thus the developer can save development time.
The final chapter in the book talks about useful additions to ExtJS such as HTML editor, state management on the browser side, using AIR, etc. It also describes several community extensions to ExtJS (such as TinyMCE and SwfUploadPanel) and how to use them.
The book contains a lot of examples, so the reader can learn through them. One side note here (and a recommendation to Packt editors): I found that spacing in the examples could be smaller to avoid line wraps. Reading examples would be easier if the spacing was reduced. Truly speaking, this is the only bad thing I can tell about the book.
Despite being experienced in ExtJS and using it since version 1.x, I found a lot of good tips in this book. It is really useful and now lives on the shelf among good programming books. So if you need a good learning resource about ExtJS, I can definitely recommend Learning ExtJS 3.2 .
P.S. Current version of ExtJS at the time of writing of this review is 3.3.1. That does not make the book obsolete at all.
You can purchase Learning Ext JS 3.2 from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Further chapters describe how to use ExtJS. Here is what is covered: getting elements, creating and using forms, working with menus and toolbars, displaying and editing data with grids, using layouts for components (you can quickly rearrange objects by just applying another layout), creating tree controls, using windows and dialogs. There are also chapters about charts, effects and drag-and-drop. In addition there is a chapter about extending ExtJS. This area is probably one of the most difficult for programmers because this is not what the developer can find in the ExtJS package. The topic about extending ExtJS takes 38 pages, so it is really well covered.
Another interesting topic discussed in the book is data transfer between the browser and the server. There are traditional ways (such as AJAX) but ExtJS and the book go further discussing remote method invocation from the client on the server using ExtDirect. ExtDirect is a hot topic in the ExtJS community because it greatly simplifies communication between the client and the server. Thus the developer can save development time.
The final chapter in the book talks about useful additions to ExtJS such as HTML editor, state management on the browser side, using AIR, etc. It also describes several community extensions to ExtJS (such as TinyMCE and SwfUploadPanel) and how to use them.
The book contains a lot of examples, so the reader can learn through them. One side note here (and a recommendation to Packt editors): I found that spacing in the examples could be smaller to avoid line wraps. Reading examples would be easier if the spacing was reduced. Truly speaking, this is the only bad thing I can tell about the book.
Despite being experienced in ExtJS and using it since version 1.x, I found a lot of good tips in this book. It is really useful and now lives on the shelf among good programming books. So if you need a good learning resource about ExtJS, I can definitely recommend Learning ExtJS 3.2 .
P.S. Current version of ExtJS at the time of writing of this review is 3.3.1. That does not make the book obsolete at all.
You can purchase Learning Ext JS 3.2 from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
I have a hard time with any educational or technical material which claims to be appropriate for everyone from beginners to advanced. If you cover that much material, your book is either several thousand pages long or you are probably not truly serving at least one of the ends of the spectrum.
The problem with Packt publishing is that often, they're the ONLY ONES who produce a book on your particular subject.
Hell, Packt's published more information about Moodle's PHP API than THE MOODLE TEAM has. *grumble*
Non impediti ratione cogitationus.
Who votes these up, anyway? Or does the firehose only get used to make us feel like we have a say in things..
The problem with Packt publishing is that often, they're the ONLY ONES who produce a book on your particular subject.
Why review them then? A simple "thumbs up" or "thumbs down" should suffice, since you don't have any other choices.
Breakfast served all day!
Why buy a book on 3.3.1 when the API and (preview) code for 4 is already out? By the time you've learned 4, the stable release will probably already be released. That's the problem with technical references that are printed in hard copy - they take too long to get to market and can't be updated like references on the net.
Not a very in depth review. It's probably a good book, i've been helped by a couple of the authors in the past.
Timing is a little off, with extjs 4 coming out in the next week or so. Should be mostly backwards compatible, but supposedly there is enough changes in the recommended ways to use and extend the code to maybe make this book outdated.
I'm still going to take a look at it to see if theres anything useful i'm not already doing.
In what category of animal does ExtJs fit vs. jQuery combined with jQuery UI?
jQuery has basically broken away from the pack from other Javascript toolkits/frameworks/libraries. (Which is not to say they all have the same purpose.)
When you've got a lot of players in the field, and have to decide what to use, and are also thinking about new devs already being familiar with a package, going with the market leader seems to be what most people will do.
The $ and css-based selector syntax of jQuery makes it highly welcoming for devs that have to learn Yet Another Library. See also.
I'm not a lawyer, but I play one on the Internet. Blog
It ain't Ext any more, and Slocum is long gone.
Ext is now Sencha:
http://www.sencha.com
Rob
And Ext JS 4.0 is not a small release. The difference is huge (in a good way) so I hope the book will be updated soon.
Keep in mind that this is a JavaScript library. Everything in JavaScript is so dumbed-down or just plain idiotic that the difference between "beginners" and "advanced" is almost non-existent.
The topic about extending ExtJS takes 38 pages, so it is really well covered.
Well, if more pages == more good, then I guess I ought to go looking for an even bigger book! :)
I would have loved to know what it is in those 38 pages that cover the topic of extending ExtJS well. Even basic info about the 38 pages (it walks you through a single example in detail over 38 pages; it starts with a small example & builds on it over 38 pages; it covers sub-topics X, Y, and Z in detail (and X,Y, and Z are particularly important/difficult to do/etc), or whatever) would help me know if this book will be useful to me.
On a more serious note - I appreciate the reviewer taking the time to read through the book, and I appreciate being made aware of this particular title. Much thanks to samzenpus for going out of his/her way to post this!!
I know this is "News for Nerds", but you know what would have made this post better? A 1-sentence description of what ExtJS means. Sure, I figured it out from context that "JS" meant "JavaScript", but what's the "Ext" indicate? "Extended"? "Extensions"? Is ExtJS part of the JavaScript standard that every browser includes? Why should I care about ExtJS?
At the very least, include a link to the ExtJS entry at Wikipedia. (At least, I assume that's the right link?)
ExtJS sucks.
Yes, it has a lot of features. But no, it doesn't scale well when what you need is granular control of how javascript loads and executes, and it doesn't help multiple developers working on different modules. Lots of hardcoded references to global objects, long namespaces, HUGE file downloads. It just doesn't add up. Sencha needs to really step up if it wants to stay competitive with a paid product.
Way better alternatives are YUI3 and GWT. Even ideas such as Wijmo perform better.
I only spent 10 seconds looking at the website of ExtJS' producer, Sencha. But... the first thing I noticed is that ExtJS is available both as open source, and as a commercially licensed product that one pays for. Errrr... OK. So, which is it? Frankly, any software product that is available as both open source and as a commercially licensed product is ... well, it's scary. The last thing I want is an "open source" framework where the producing company has the ability to pull the rug out from under me and start charging me, or claiming that any product I've personally developed that uses their code infringes on their IP.
I'm all good with commercial / closed source software - don't get me wrong. Capitalism rocks and all - go America. But, pick a license and stick with it. The whole license bifurcation thing is just too shaky.
Didn't anyone listen to Mr. Miyagi? Open source yes? OK. Open source no? OK. Open source maybe? Squish like grape.
Thanks for the great review. I'm really glad you enjoyed the book, and especially that you were able to get something tangible to use. It's great to see that kind of feedback. When I first started learning Ext JS there weren't any books out there. I spent hours reading through the demo code, and combing through the forums. When Packt contacted me to help complete the first book I jumped on it, knowing that there were other developers out there like me that would learn more (and faster) from a book resource.
For those who complain about the licensing,
I see your point to a degree, but on another level I am baffled. I use JQuery and JQueryUI everyday where I work, and there are tons of things I love about JQuery. I read code, and have a huge amount of respect for John Resig, and the rest of the JQuery/UI teams. But, to put it simply, JQueryUI is an infant by comparison to Ext JS, and vastly incomplete. You can't write web applications without a datagrid component, or even a tree, nor does JQuery have anything even closely resembling a Data Store (no, the $.data() methods don't count). Yes, there are alternative plugins for some of this, but none of them (IMO) is complete either, nor are their architectures and API's consistent with the rest of JQueryUI. It's an apples and oranges comparison (really look over the demos and API's of all options and you'll see what I mean).
Ext JS is a complete package, with a paid development team whose responsibility it is to maintain consistency, enhance functionality and performance, and to innovate. This is never more evident than when reading through all of the materials that have been put out on the upcoming Ext JS 4. Our book (it did come out in October) is still timely, in that the base model of how to approach most things is unchanged, and it gives the reader a clearer understanding of how to work with this OO modeled, extensible, event driven framework that originally forked off of YUI.
If you still don't agree with licensing all of this, that's OK too. I push code here and there now and again, but I honestly don't have the time myself to reinvent what has already been done. To me, it's worth the fee. If you can write all of these things yourself, for less than the cost of an Ext JS license, then I strongly urge you to join the efforts, and contribute to bring JQueryUI to the same level of quality. They can use, and would welcome, the assistance.
Steve "Cutter" Blades
World Yellow Pages for Higher studies.Find University, Institute, Colleges World wide & talk business.Free Listing www.kezkostudy.com