Having a quick read of the documentation, Ext Core 3.0 is very similar to jQuery, except no-one uses it, its syntax is uglier (i.e. the distinction between Ext.get vs Ext.fly is problematic, the weird inclusion and naming of Ext.radioClass for something you can do in 2 lines of code), it adds a hodgepodge of dubious "object oriented" features, and randomly extends a few built-in objects via prototypes (or 'JavaScript Augmentation') something which is generally considered a bad idea.
The idea that people should choose this above jQuery because one day they may shell out the money on a proprietary JavaScript library is crazy, especially as so few people on the web are doing RIA stuff to begin with. There's simply no reason to use it unless you're relying on ExtJS anyway, especially as most web developers already knows and uses the simple jQuery syntax.
I have looked the implementation* of Ext.fly and I still don't understand why it's smart or faster than using document.getElementById. Somebody care to explain?
Ext.fly uses the Flyweight pattern, which basically means that instead of creating a new instance of Ext.Element to wrap around the DOM element, it uses one global instance of Ext.Element and just simple replaces the internal pointer to the DOM element within that instance. This makes it faster because it can skip constructor and additional logic to create the Ext.Element instance, and smart because it doesnt need additional memory for a new instance. To read more about the Flyweight pattern, you can read here: http://en.wikipedia.org/wiki/Flyweight_pattern
The bit to explain is that Ext.fly (and jQuery() for that matter) don't return actual DOM elements like document.getElementById does. Instead they return a Javascript object which you can use to interact with the DOM element(s) using a different API.
Both are probably slower than document.getElementById, but allow you to program at a higher level of abstraction. For example, jQuery(".foo").someMethod() could act on many DOM elements, but document.getElementById().someMethod() can only act on one.
Edit: Oh, I see you removed your post ;) I'll leave my reply on here anyway for people interested in what the Ext.select element does.
Actually you can't use CSS selectors with the Ext.fly method. I think you are confused with the Ext.select method, which returns a CompositeElementLite instance containing an array of all elements conforming to the specified CSS selector. It lets you perform operations on a collection of elements as if you are using a single element. This is very close to what the jQuery $('.some-selector') provides you and works by iterating over the elements array and swapping the DOMElement pointer on an internal Flyweight instance right before it executes the operation on that Flyweight, and thus performing the operation on each element.
I'm a big fan if jQuery and haven't used Ext. However this post does nothing to convince me to switch. It really seems all of the authors points boil down to "I think they're both tied, but Ext is better because I like it."
jQuery makes writing javascript much simpler. By this, I mean that it let's me write code to do what I want and not to get bogged down in the pecular aspects of the framework language. I have recently tried YUI and completely hated it for this reason. No consistency or simplicity to the framework. Doesn't help me build products faster.
Agreed. Most of the "points" were either personal taste, or jQuery won but it was called a tie because of "negligible difference" (for example - the fact that jQuery core is 30% smaller than ExtJS, but it's "only 19Kb").
Or ExtJS's ostensibly "more powerful DOM manipulators", which actually fail to be demonstrated in the article.
So sorry for having a personal opinion on my personal blog :-) 19K has never mattered to me compared to all the rest of the stuff that ends up getting pulled down. Since both are base libraries, I have always ended up including more.
I explicitly kept this comparison to their overlap. I'll be doing another post covering the areas where Ext Core excels. Both libraries are very good and you can't go wrong with either, but I do prefer Ext Core.
No one should be using Ext. Ext has had a very shady history regarding licenses (http://en.wikipedia.org/wiki/ExtJS#License_History) and they have tried to stop developers from using their previous LGPL code citing some spurious interpretation of license.
Bottom line is, use jQuery or dojo or prototype if you want to avoid headaches.
The company behind Ext wants to have the cake and eat it too. They want people to adopt the code (hence the GPL) but they want people to pay for it too.
I don't see what Ext Core - which is released under the MIT license! - has to do with the GPL license of the Ext JS library.
Nobody has to pay for using Ext Core, so the only valid reason for not choosing it is a dislike for its syntax, internal workings or any other technical reason.
It's the same reason people are suspicious when Microsoft associates itself with open-source software. Past actions make people suspicious as to whether they can rely on them for support in the future, especially when it comes to something like frameworks where large code-bases rely on its continued existence and the vendor not pulling the plug, and kill any ill-will in the community.
"cancerous GPL" ? I used to have more tolerance for this but when I hit this phrase I stopped reading. It's amazing how bias works. When you deliberately use a phrase designed to insult people their natural biases kick right in. So the commenter's view that "except no-one uses it, its syntax is uglier" immediately is accepted as truth. I guess freedom is cancerous, once one person has it everyone wants it.
I am flabbergasted that this guy gives the Ext documentation a better grade than jQuery's. I have to use both at work, and I can always find what I need very quickly with jQuery, but with Ext I end up hunting, sometimes for hours. Honestly, for someone just getting into Ext development and not want to use one of the pre-fab RIA stuff, the documentation is among the crappiest I have ever seen, for all its volume.
If you want an enterprise level Javascript framework, then ExtJS is your answer. When major web-app companies like SalesForce use ExtJS for core functionality, you might turn and ask yourself are YOU missing out on something because you are stuck in the past looking at licensing?
Respect the past but, quit complaining and get out their and DO. Think about the time an energy you wasted trying to remind everyone of some indirect pain you experience while a start-up company discovered their positioning within a tough market.
I for one will continue to use ExtJS and Ext Core for my clients commercial applications because I want a company I can rely on and not bet my customers success on some 3rd party plug-in developer to always be their to upgrade or update there jQuery Form or LiveGrid plugin.
I do want to note quickly that I use jQuery on my front-end websites and it is a great core library for websites. It just can't make the jump from web to web application.
EXT-JS is the shame of software development and ethics. I doubt anyone will have the guts to use EXT-JS libraries as the licenses keep changing on whims. It's not just cancerous but HIV+ve as well.
So your definition of hard-working, talented developers trying to create quality products, while trying to be able to keep doing this by selling a license for commercial projects not wanting to use the GPL license (note that GPL is as open-source as code can get) is "the shame of software development and ethics". I was about to write a detailed reply, but after rereading your comment a couple of times, I think there is just no point in arguing with someone who obviously doesnt know what he is talking about, and is obviously meaning to offend others by making untrue and hurtful statements.
Besides that, The Ext Core library is released under the permissive MIT license, and I'm confident in saying that that won't change in the future.
History shows that the license change was an attempt to find a business model. (they already had commercial licenses with the lgpl - maybe no one was buying?) If you interpret this as being untrustworthy, then so be it. These guys are doing amazing work and to question their ethics, when you obviously don't know them, shows a bit of immaturity on your part.
I'm suprised to see all the negativity about ExtJS. There is one aerea where ExtJS is much better than JQuery: visual widgets. JQuery UI lags far behing ExtJS. ExtJS offers a large array of widgets, with a consistent look.
It should be mentionned that you can replace the ExtJS base library with JQuery, so you get the nice ExtJS UI widgets + the JQuery DOM interaction.
For websites, I use JQuery. But if I build a web application that looks like a desktop application, ExtJS is much better at it.
It seems funny that no one bothers to mention that most of Ext's "so called" core is actually YUI. They did some find and replaces and added some wrapper code, but it's all still based heavily on YUI.
Why use this license mess, when I can use YUI/jQuery and know where they stand?
The idea that people should choose this above jQuery because one day they may shell out the money on a proprietary JavaScript library is crazy, especially as so few people on the web are doing RIA stuff to begin with. There's simply no reason to use it unless you're relying on ExtJS anyway, especially as most web developers already knows and uses the simple jQuery syntax.