| Learning Ext JS | |
| author | Shea Frederick, Colin Ramsay, Steve 'Cutter' Blades |
| pages | 309 |
| publisher | Packt Publishing |
| rating | 8/10 |
| reviewer | JR Peck |
| ISBN | 978-1-847195-14-2 |
| summary | Build dynamic, desktop-style user interfaces for your data-driven web applications. |
All trademarks and copyrights on this page are owned by their respective owners. Comments are owned by the Poster. The Rest © 1997-2009 Geeknet, Inc.
Yes, this is a troll. But deserved ... (Score:5, Insightful)
I suppose it all depends on what their licensing terms are today at this given moment.
Re: (Score:2)
They've pretty much gone down the path of GPL + Commercial split that a lot of tools have. I really think mySQL was the first widely used one to follow this path, and ExtJS kind of has the same viewpoint. I know there's a lot of criticism here, but it's a pretty fair set of options imho. I think I was much more critical of the mySQL view of their database drivers. Though I don't have any plans of using ExtJS in a commercial app for redistribution that wouldn't be GPL in nature.
The guys behind EXTJS are terrible (Score:5, Interesting)
I was working on a large scale project (with way too much application-like behavior on a web page) that switched from DOJO to EXTJS. We were planning on using their LGPL version at the time. EXTJS actually turned out to be one of the better toolkits out there as far as documentation and clarity in the API went and things were looking pretty good. Then, one day the people behind EXTJS announced a licensing change. This would have been fine under normal conditions, but they claimed that it never was released under the LGPL. They tried some silly technicality where they said it was only released under the LGPL under some other terms. The LGPL itself clearly says any added terms can be removed, but they insisted it couldn't. We had a big enough corporate backing where buying licenses was an option, and was pretty likely as things got closer to deploying, but this really shook us up. These guys totally screwed over a large part of their community. I strongly believe they are wrong about the "never being under LGPL" thing, but we weren't going to be wasting time dealing with lawyers and fighting them. It was a lot easier to drop ExtJS from our project and go switch to another toolkit (eventually YUI). So, anyway, just a disclaimer the company behind EXTJS is EXTREMELY unprofessional, and bad to deal with. They now claim to have a GPL version, but that is only useful if you plan on keeping your code open. A lot of people may think, it's web client code, who cares, but for some of us web client code is becoming more and more like any other application code. So, the moral of the story is, ExtJS is a nice toolkit, but the corporate entity behind it is terrible and will stab you in the eye. Avoid using them at all costs!
Re: (Score:3, Interesting)
Re: (Score:3)
They now claim to have a GPL version, but that is only useful if you plan on keeping your code open
You probably already know this but it's worth mentioning that under the GPL you're only required to share the code with people who use it (i.e. execute the code), so if you only use it internally or your customers only use the web output you don't have to share it with anyone.
Re: (Score:3, Insightful)
Are you sure? If you distribute an application you have to share the code under GPL. If you distribute the JS, even in an obsfucated state, aren't you distributing the application? They are running code on their browser. They got it from somewhere. I would think that qualifies as distribution, and therefore they have the right to the source. Please, correct me if I'm wrong.
Re: (Score:2)
Re:The guys behind EXTJS are terrible (Score:4, Informative)
You are correct: you are distributing the GPL code, you would have to put the javascript code you wrote under the GPL as well. This is the reason why most javascript libraries go with the BSD license or LGPL.
Then again, you are distributing your own code ("proprietary" or not) anyway.
Parent
Javascript by definition is used by the clientq (Score:2)
So, none of that applies. However, claiming you OWN javascript is as silly as claiming you own HTML. Just accept that if it is worth copying, someone will and make your application depend on the service it delivers, not the code itself.
Re: (Score:2)
I was thinking the same thing. But then again, HTML and CSS is fairly simplistic compared to Javascript (yes, I know HTML and CSS can get hairy if you need to do certain things). Javascript requires a lot more thought, design, and good old fashioned programming skills. I too think it's silly, but I can also see how someone might feel that a huge library like EXTJS, jQuery, etc, could be more than just some client-side plain text file.
I think as we see more logic embedded within javascript, and thus more
Re: (Score:3, Interesting)
The problem is that the company behind the ExtJS claims that the server-side code tightly coupled to JS code. So it makes it a derived work with all implications.
Yes, I'm too lazy to search for this statement on their site right now.
Re: (Score:3, Insightful)
There's one important difference.
Web client code, by its' nature (it has to run on the client) isn't something you can hide. Any obfuscation can be de-obfuscated given enough incentive (and the fact that you've tried to hide it is "incentive enough" for some people). They HAVE to have the source to run it. (and this ignores the whole "performance hit
Re:The guys behind EXTJS are terrible (Score:5, Interesting)
That's a nice story, so I might as well give my story too.
I started using ExtJS when they were using the LGPL. I read through the terms of the LGPL and realized it wasn't really the type of thing I was looking for (our application isn't open source), so I looked into their commercial license. I looked over the terms and price of the commercial license and met with my boss to tell him that this was the library I wanted to use to build our next application, and that the commercial license was a better fit for our plans. He agreed, and we purchased the license. We're a small company, less than 20 employees, but the few hundred dollars for the commercial license was a no-brainer (a few hundred dollars isn't a lot of money for any company to spend on product development).
We went ahead and also got the support package which gave us SVN access, support forum, etc. During my first several months I posted several times to the support forum and got my questions answered. In addition, like you pointed out, the API documentation is one of the better examples of good documentation (far from perfect, but far more than what a lot of other products have). It took a few months to really get comfortable with everything, but the learning process was easy and the product made sense to use.
As ExtJS 3.0 rolled around I decided to plug that in to the application and see how it worked. I've got about a page of changes that need to be made to get it to work with ExtJS 3.0, but considering all of the changes that went into the new version it looked like we were eventually going to want to use it, so we went ahead and bought another commercial license for 3.0. ExtJS is using GPL3 now, but that didn't apply to us.
The core developers of Ext, which are the people running the company, all post in the forum and have all been quite a bit of help with regard to tracking issues and dealing with bugs. They respond to requests for documentation pages, new examples, bug reports etc. I've never thought them to be unprofessional (let alone EXTREMELY unprofessional, in caps), nor "bad to deal with". They are available for communication through the forum, email, and phone.
For our own application, it now has about 3000 hours of development behind it and continues to grow, and we're just getting ready to begin marketing and selling it. ExtJS has continued to be a good product to use and develop with, and I've got no regrets about choosing ExtJS as the framework for our application.
Parent
Re:The guys behind EXTJS are terrible (Score:5, Informative)
Mod parent up.
The LGPL debacle was a single instance. Many people put way too much weight on it than necessary - if you look at the entire history of the company, they have been extremely responsive and credible. My company's story shares many commonalities with the above. I have worked with extJS back when it was called yui-ext, so named because it was an set of add ons to the Yahoo User Interface libraries. Jack Slocum was a responsive, dedicated developer back then, and remains so to this day. For a long time he developed widgets in his spare time, and once demand was high enough and he wasn't getting compensated for his time enough he decided to monetize it. As with any business, there are growing pains and mistakes that get made, but to describe the licensing change as a stab in the back is hardly accurate.
Parent
Re:The guys behind EXTJS are terrible (Score:4, Interesting)
Parent
Re: (Score:3, Interesting)
Re: (Score:2)
"There will even be algorithms in the JS that they want to protect. They may be limited to obsfucation as a technique, but that can be pretty decent."
Unless said companies put pressure on browser makers to somehow re-engineer their javascript engines, who cares?
Just because I want to use a hammer to do some soldering doesn't mean it's the right tool for the job. If you want business logic to be kept hidden, then javascript isn't the tool for the job. That's what server-side scripting is for. When did peo
Another Book (Score:5, Informative)
I've been using Ext JS for a little while now and when I went looking for books I saw the reviewed book and another one titled "Ext JS in Action" ( http://manning.com/garcia/ [manning.com] ). I ended up choosing the latter. While it is still in the process of being written the publisher has a early access program that allows you to get the chapters as they are written. I would definitely recommend the book to others interested in learning Ext JS.
Re: (Score:2)
And I wouldn't be doing my job if I didn't point out "Practical Ext JS Projects with Gears" from Apress:
http://apress.com/book/search?searchterm=zammetti&act=search&submit.x=0&submit.y=0 [apress.com]
Yes, I'm the author... I have kids to feed too :)
Re: (Score:2)
EXTJS Opinion (Score:3, Funny)
Having had to work with EXTJS and its controls where I work, here's what I think.
-- R. Bemrose. With apologies to Jamie Zawinski.
Good tool kit for web apps, not web pages. (Score:3, Interesting)
I've been doing a lot of work with extjs for building web applications (business type apps with Domino or Salesforce as the back-end source), and for that its great. From time to time I've looked at using parts of it for web pages and it fails for a couple reasons.
The big one is that you want to design things from the outside in, with containers in containers and layouts within layouts. Which is perfect for totally controlling the behavior of an entire page to make it look at feel like an application. However, if you just want to put a menu on a page, the container hierarchy becomes cumbersome.
Course, this is all just my opinion. Can't prove any of it.
Crossbrowser libraries just perpetuate the problem (Score:2)
Why not just refuse to use non-standard features, browser sniffing, etc. Accommodating multiple broken browsers just perpetuates the "we don't need no stinking standards but our OWN!" mentality. We've seen
Re:Crossbrowser libraries just perpetuate the prob (Score:5, Informative)
"But my customers want it to work in their browser!" is not an argument when better browsers are freely available.
Really? When your customers contact you about this or that not working right in IE, all you tell them is to use a different browser? Don't you think that's a bit lazy?
How "standard" is a "standard" if people aren't following it?
It's pretty bad when more than half the time ona web project is "fixing" broken IE rendering.
Oddly enough, the exact reason I don't have to spend a considerable amount of time debugging IE is because I use a library that is cross-browser compatible, because of things like browser sniffing. My time spent debugging problems in IE has dropped significantly since starting with ExtJS.
Parent
Re: (Score:2)
No, it's the mirror image of "This site is best viewed^W^Wonly works in IE." What's sauce for the goose is sauce for the gander. Simply tell the customer to search for "Internet explorer is a steaming pile of crap" and that
Re: (Score:2)
People are following web standards. It's Microsoft that doesn't.
Exactly which standards are the -moz-opacity and -khtml-opacity CSS properties defined in? If I want to support opacity in IE, Firefox, Safari, and Opera, why is it that I need to use 4 CSS properties? Is that Microsoft's fault also?
Re: (Score:3, Interesting)
You can't know and test for all known web browsers, nor can you test in future browsers that don't exist yet.
That's correct, but I can update the Javascript framework I'm using, which does get updated as browsers are released.
Did you know that JavaScript has feature sniffing that is a perfectly viable alternative?
Of course, as soon as Ext starts using feature checking then my applications will too. Until then, I'll continue writing one piece of code that runs the same in all browsers.
Re:Crossbrowser libraries just perpetuate the prob (Score:3, Insightful)
Why not just refuse to use non-standard features, browser sniffing, etc. Accommodating multiple broken browsers just perpetuates the "we don't need no stinking standards but our OWN!" mentality.
the existence of dynamic framework compilers such as Google Web Toolkit [google.com] and Pyjamas [pyjs.org] makes it perfectly possible to accommodate "multiple broken browsers".
in the pyjamas case, the result of the compilation command is no less than FIVE completely separate applications: one for each (wildly incompatible) browser. user-agent string detection then redirects at run-time to the correct application.
this is just a "merging" trick that is applied at compile-time, by taking two ASTs (python abstract syntax trees), wa
Re: (Score:3, Insightful)
And this is the problem. Web browser sniffing is bad, because it duplicates code and breaks lesser-known web browsers because you can never test in all of them (including future browsers). It's the new version of "Best viewed in My Favourite Browser(TM)". While there is
Re: (Score:3, Insightful)
A good developer uses them for the same reason they use anything else that isn't technically essential: To improve the experience. Granted, a lot of people do things for a lot of bad reasons, but that's another issue.
A web browser is a tool, both for the user of the websites in question and the developers. As a pr
Please now can we update the wikipedia RIA page? (Score:4, Interesting)
One of the editors of the RIA wikipedia [wikipedia.org] page keeps reverting any changes made which make reference to the fact that, overwhelming evidence to the contrary, extensive use of javascript does actually qualify as creating applications that are "Rich".
it would be very helpful if someone (other than myself) could review the discussion, add references to this book, citing it as an example of how javascript can, if utilised correctly, result in "Rich Media Applications".
jQuery, dojo, prototype, ExtJS, ... oh my (Score:3, Interesting)
Too many JS toolkits!
Will it ever settle down?
Re: (Score:2)
The same argument could be made for server-side languages.
Who cares, just use the one you like.
I use ExtJS extensively... (Score:2)
and I think it's fantastic. It is an excellent platform for putting together a web application. The support forums are great, and on the rare occasions when I need to use my purchased support, the ExtJS guys are very prompt and helpful.
Re: (Score:2)
For what it's worth, I agree. I've been working on an enterprise project that's deploying a web-based application, and around a year ago we switched our project from using home-grown widgets to using Ext. The library is fantastic; it's honestly one of the best GUI toolkits I've ever used (and off the top of my head, I've used at least MFC, Swing, Qt, Carbon, and wxWidgets).
On top of that, I hate Javascript. It's one of my least favorite scripting languages; the only thing I can think of offhand that I li
Re:Boo (Score:5, Insightful)
Yes, 99% of websites "on the Internet" could perform their current functions without javascript. You're right.
The question is: of those websites, how many of them do their current functions better than if they didn't have javascript?
This is not a question of whether or not it "can work" without javascript; it's a question of whether or not the user interface, user experience, functionality, etc., is enhanced through javascript.
The argument that "it was working without javascript!" is a very poor one. Operating systems worked without GUI's. Typewriters worked without "edit" mode(s). Transcribers worked without word processors. For that matter, computers worked without monitors!
The question is, again ... is it better (or worse) with javascript/ajax/whatever. If it's better, then why not? If not, then you have a point.
Arguing that it "could" do it without is silly. In my experience, there are some site functions that are vastly improved with something like ajax... for example, being able to upload a file while filling out a form and and not having to wait for the upload to finish before pushing Submit on the form. Or making sure you do the form first and then the upload. Or having to do the upload at hte same time as the form. It can improve efficiency by allowing you to do two things at once. Multitasking on a site without javascript or some scripting thing would be more difficult. Unless, of course, you use frames, or something like that. But 99% of the websites on the Internet could perform their current functions without frames.
Meh. 99% of the websites on the Internet don't need to exist. ;)
Parent
Re: (Score:3, Insightful)
Re: (Score:3, Insightful)
I'm currently working as a contractor at a large company on a project that has three different web front ends for portions of the application. One is written in ExtJS, the other two are mainly straight HTML with some MS-Ajax controls. To be honest the ExtJS one is probably the most well-liked, it's slick and works well. The down side is too few of the other developers have the skill or inclination to come up to speed on using JS well enough to be proficient in the front end development of this applicatio
Re: (Score:3, Insightful)
The argument for many companies to need IE6 is that existing intranet applications would break if they moved to another web browser (version). Now I'm reading that you're making a new intranet application for IE6?!
We'll never get rid of this pest at this rate. Though I guess it's a good thing that you're keeping other web browsers in mind, too...
Re: (Score:3, Insightful)
Slashdot, for instance?
I much prefer the old interface.
In my experience, most sites don't enhace anything, they rather make it more annoying.
For instance, various sites with images now do thi
Re: (Score:2)
Slashdot, for instance?
Is that a fault of javascript/general asynchronous model or a fault of the particular Slashdot implementation, though?
For instance, various sites with images now do this annoying thing where clicking an image makes a sort of modal window appear in the middle of the page
Agreed, they can be annoying. On the other hand, I've seen some fairly well-done thumbnail scripts where hovering them makes the thumbnail blow up a little bit, but clicking it functions like you would normally think (opens in a new window or tab or whatever you want, just a normal link). Again, this seems to be an implementation specific issue... albeit a big one... heh. One pet peeve of
Re: (Score:3, Insightful)
Slashdot, for instance?
I much prefer the old interface.
This is the rallying cry of the anti-Web-app crowd. "I liked the good old Internet."
The problem is that the good old Internet kind of sucked.
Look at the original MapQuest vs. Google Maps. I spent large amounts of time trying to find things on MQ back in the day. When Google Maps came out, it changed the way mapping worked. Dragging the map around to pan alone was worth having to suffer slow (now much better) JavaScript interpreters. Now, of course, MQ uses a Google Maps-like JavaScript UI for that very rea
Re: (Score:2)
Depending for what kind of use. If you want to make apps on it, indeed it did. But I don't want apps, so the current one sucks more for me.
Re: (Score:2)
We don't want rich internet applications
Who do you think you're speaking for?
even if they're rich, the quality is poor
Really? All web applications are poor quality?
The 1% have functions that no one wants
Maybe that's what your AC wisdom is telling you, but here in reality I've got customers paying good money for those functions "that no one wants".
You can keep designing and selling your "pure HTML" web sites, as long as that makes you happy keep doing it. I'm happy making attractive and functional web applications, so that's what I'll continue doing.
Re: (Score:2)
Maybe so, but I'm referring to features in web applications here, not "sites" with "neat" things. The corporations who buy my software most certainly do want those features, or else they wouldn't pay me to write them.
Re: (Score:2, Offtopic)
And tell me what I want for lunch today please!
Oh, that's too easy. McDonald's, Mr. mcbutterbuns. ;)
Re: (Score:2)
It's BIG
They also have Ext Core available, which is all of the DOM/Ajax/Data components and none of the GUI components.
Packt marketing (Score:2)
I suspect the post author didn't name his account "stoolpigeon" for nothing. Packt have a history of publishing crap books on every new technology, presumably to make money on the burgeoning interest asap. They've approached me numerous times, trying to get me to review their books, simply because I have a popular blog and can get them extra publicity for their wares.
Re: (Score:3, Funny)
I'm waiting for EXT3.11 for workgroups before upgrading.
Re: (Score:2)
But but.. silverlight will solve all these problems and more, no?
Since you tongue-in-cheekily asked, just some of them. :)
It's a hell of a lot easier/faster to make a good/responsive/pretty web UI in Silverlight than by dicking around with JavaScript libraries. Obviously, that approach also has other downsides. Depending on what you're doing they may or may not matter.