ExtJS - impressive - and more than I needed

Note: After receiving quite a lot of feedback on my first version of this blog post I considered rewriting it.

As usual I spend too much time looking at different possible solutions for a problem. It gives me a great overview of the available software but it wastes quite some time I could otherwise spend learning more of a certain piece of software. I'm working on a workflow web application written in Python (using the Pylons web framework) and was looking for a nice Javascript library to compliment the static parts. Like fading in and out sections, having widgets like tree views or grids. You may make fun of me for trying my current (workflow web-site) application with three different Javascript frameworks. But I was interested to learn how using each Javascript library felt when used in a real-life application and not just from looking at some code examples.

So I had one version using jQuery. Another version used YUI. Those were the easy ones. But the largest amount of time I spent struggling with ExtJS. I quickly learned that it's not just a library adding a few Javascript effects, allow AJAX requests or adding a widget or two. ExtJS is seriously different from most other Javascript toolkits. It's not a utility library - it's a framework. ExtJS is not supposed to compliment static HTML pages. Rather the other way round: your main application is written in Javascript using what ExtJS provides and your web server backend delivers the data. So comparing ExtJS to lighterweight libraries like jQuery or YUI is not totally fair. Still here are some biased pros and cons of ExtJS.

Noteworthy:

  • Applications do not degrade gracefully. Turn off Javascript and you are left with a few naked lines on your screen screaming "eeeeek" and disappearing in shame. If you need to make sure that your applications run even without Javascript (yes, sometimes that's a requirement) then forget about ExtJS.
  • 90% client-side coding. I still love Pylons (the Python WSGI MVC web framework). I have a good programming language. A good templating language. A nice online debugger. But with ExtJS I initialise the application in the browser and just interact with my backend using JSON. Which means that most of the complex logic that I use to display things on the web must be done in Javascript. This is harder to debug and the user can see exactly what I'm doing. I overheard developers worrying on how to load Javascript code on-the-fly so that every user just sees the widgets that are necessary. Seriously - such code belongs in the backend. You'll have to do the data validation in the backend anyway. (Although I saw some example of ExtJS applications where all the security validation was done in - easily tampered with - Javascript.) Try the login tutorial. You'll see that logging you in means forwarding you to another page. No session cookies. No making sure that AJAX/XHR requests don't come back with a 401 (Authentication needed) error. Just the kind of security you'll expect from an average PHP application. AJAX is a security risk anyway and you should use it carefully to avoid cross-site scripting problems. Did you know that passing JSON arrays is potentially insecure? ExtJS often expects JSON data as arrays (or in XML). Perhaps I'm wrong here but ExtJS feels like making secure applications is difficult.

Pro ExtJS:

  • Nice widgets. They have just everything. ExtJS is like a superset of the widgets of all available Javascript frameworks. And so far I couldn't find any obvious bugs. Be it menus, status bars or grids. It's just impressive. Take a look at the ExtJS-based pastebin and you'll likely say "Wow". It's great from a user's perspective. When I saw it the first time I had to show it to everybody who couldn't get away fast enough. It's like a proof-of-concept of what's possible in the web browser.
  • Good API documentation. If you need to look up something you'll probably find it.

Con ExtJS:

  • The CSS. It's nearly thousand definitions which are giving you no idea which is used for what purpose. I don't think it's documented anywhere either. So you just can't seriously customize it. Their style is "eat or die".
  • The HTML. Okay, the generated HTML works. But it's huge. Many tags get so many CSS styles assigned that you don't understand what's going on. DIVs are nested so deeply that you'll need a minute at least to find a certain widget in Firebug. If you are fast. It makes debugging things hard.
  • ExtJS works in pixels. You don't say "give me a textarea with 60x5 chars to enter" but "give me a textarea that is 300 pixels wide and 80 pixels high". I rather try to avoid working with pixels. Isn't the point of HTML to render properly on every screen? Try a Layout in a Panel (rendered in a DIV). You'll have to specify the height which is either too high or too low. Try a Layout in a Viewport and you are all set - it's exactly filling the browser window. But you won't be able to change anything in it or use it in the context or your existing application. If you want ExtJS you'll have to virtually surrender to its way to render things. Perhaps I'm thinking too old-school here.
  • The license. When ExtJS started to use the GPL3 everybody complained. At first I wondered why. After all 50% of what I do is open-source anyway. I just forgot about the other 50% where I either create web applications for my employer or for my own customers. I obviously don't want to publish my own source code every time - especially not under the GPL. (At first I wondered why all the trolls were so upset about the viral nature of the GPL. But with the time I understood that's really viral and often a problem. The GPL may be okay for applications. But it's definitely the wrong choice for libraries - like ExtJS.) In the context of applications for my employer it's all internal/intranet applications. So I'm not distributing the application and don't need to pay for a license or publish the code. (Even though the ExtJS web site tries to confuse their readers regarding the "internal usage" and claims you need a license to do so.) Of course the makers of ExtJS can publish the library under whatever license they want. And it's definitely high quality so they deserve to get paid for it. But their GPL restriction may really be a no-go for many projects that are evaluating different Javascript applications. If you like to hear my proposal: publish ExtJS under a permissive license (MIT or BSD) and just sell support. Many companies make money that way. And it would make people worry less about using it and rather have them using it.
  • The web-based support forum. Now that I went back to jQuery I value their simple mailing list so much. I dislike web forums although they are pretty widespread. Their advantage is that you can easily seperate different topics on a single site. If you tried the same with mailing lists you'd have to offer a dozen mailing lists. But on the downside you have just 20% value (with 80% being HTML, rankings, polls, blinking signatures and "me too" postings). I really wish we would all go back to using the usenet in a proper way - subscribe to a group and participate without subscribing or clicking your way through a web forum like a crazed monkey. And I believe that the friendliness in the jQuery community is much better than the arrogance of some ExtJS users.
  • Lack of proper examples in the API documentation. The API documentation is pretty complete. I rarely found something in an example that wasn't found in the official docs. But often the classes and objects are derived from other objects. So you have to click your way through hoping to find where something is documented. A simple code snippet would help to understand how a certain class or widget can be used. Trying to guess from the formal specification how to use a certain class feels like playing MUD while being drunk. It doesn't give you an idea of the concepts behind a certain class or object. I often felt totally lost. It helps though to look at the well-documented example applications. It's just not where I would look at first.
  • No customization. I can hardly imagine how I should use ExtJS on a customer web site. Show me a web site and I'll tell you if it's done with ExtJS or not. ExtJS is probably good for applications where you really need all the widgets - like a internal management or workflow application. But you will hardly find a good way to make the widgets look any different than in the examples. It's sink or swim. If you have to follow a corporate identity then you are pretty much screwed.
  • Verbosity. To do simple things you'll find yourself writing large amounts of Javascript. Of course a grid or layout has a lot of possible options that you can pass. But nothing beats jQuery's simplicity of $('#div1').load('/something').
  • Debugging. Although there is a debug version of the library I could hardly ever figure out what went wrong. My main debugging tool wasn't Firebug. It was my revision control software. Because I checked in every single working change I had and diff'ed my changes in case anything didn't work any more. Programming on trial and error isn't really my favorite style.
  • Size. The library is 500 KB in size. While people may argue that you load that once and then keep it cached it's still 500 KB. Okay, I can use mod_gzip and shrink it to 150 KB. But imagine you have that on your start page. I wouldn't worry about that size on an intranet application where everybody is on 100 or 1000 Mbps. But on the web?

Please don't let me make your decision on whether to use ExtJS or not. Just consider the above criticism if you consider using ExtJS.

P.S.: Yahoo's YUI has similar widgets like ExtJS. It's just also very verbose. But at least they are flexible enough to be used easier and you can skin them.
P.P.S.: I have to admit that the jQuery UI widgets are still a tad buggy. If you seriously need widgets then consider the YUI.

Comments

I am using ExtJS to

I am using ExtJS to developing web based applications for intranet. According to my experience, to learn ExtJS is a pain in your A**, BUT when you get comfortable with it, ExtJS ROCKS.....

@Rohan Thomas: Yes, you are

@Rohan Thomas: Yes, you are absolutely right. Looking at the feedback I received for this post I should make clear why ExtJS was not the right solution for *my* problem. ExtJS probably rather expect a set of static HTML/JS(/CSS) files and a backend data source to exchange information. I have seen applications use parts of ExtJS in their applications. For example Zenoss uses it for the setup dialog. But I think that's rather a side case. And trying to mix two different frameworks (Pylons and ExtJS) is probably asking for trouble. :)

If you find your extjs

If you find your extjs application difficult to mantain, the problem is in your code not in the framework. Extjs has the best structured and clear set of objects I've ever seen in any javascript library, and is very easy to extend to fit your needs.

You can write good code or bad code with any framework, and please tell me an example of good written JQuery application that is more readable than a good written extjs application.

@rocklobster: ExtJS isn't

@rocklobster: ExtJS isn't generally bad. For someone who is ready to surrender to a framework and can cope with the cons it's a great library. It just suffers the same problems like every framework: it locks you in. I was originally looking for a Javascript utility library and not a framework. It wasn't easy enough for me to take parts of ExtJS that I loved and integrate them in my own application.

My jQuery-supported applications are very readable. But the jQuery just compliments what my Pylons-based application does. The HTML gets created by Pylons (an MVC framework) and I just want to make some parts of the application more interactive. The majority of my code is in Python - not Javascript. If I would be willing to use 99% Javascript and use a Javascript framework then ExtJS is indeed tempting.

@Christoph: Your response to

@Christoph: Your response to rocklobster should be included in your article - otherwise it misleads the reader that ExtJS is 'painful for the programmer' when in fact its just painful to a programmer looking to use a javascript utility library that compliments a Pylons-based application which creates HTML. ExtJS works well for a HTML/Javascript application talking to your backend via JSON or XML (AJAX). Yes - it is AJAX driven. If your app isn't, ExtJS won't fit well. But it is not fair to bash ExtJS just because you started out on it with false assumptions (e.g.: I thought it was a javascript utility - it turned out to be a framework).

I have been developing a real

I have been developing a real web app/web site using Ext for the last 5 months. I started with YUI, but ran into major deficiencies in their layout algorithms. I was able switch to Ext within a week, and solved my layout problems with ease.

Ext does not twist Javascript. It embraces Javascript and prototypal inheritance. Most people are not familiar with prototypal inheritance, but once you get the hang of it (as Douglas Crockfield of Yahoo did), it feels very natural.

Ext's widget set is large. To use it, you need to spend time reading the source code. The examples and the documentation are not really enough.

I have not tried to customize the widget CSS yet, but find customizing the widget behavior to be very straightforward.

The Ext forum members are very responsive to questions, even from newbies.

I use the Ext Grid with hundreds of rows of data. Performance is ok in Firefox, and outstanding in Chrome. I suspect that IE 8 performance will be excellent too.

I would fully agree with you

I would fully agree with you that ExtJS can be a bit of a struggle and that it's really only suited for web "applications" and not web sites. However, you should be aware that you can also use jQuery along side of ExtJS. That takes some of the pain away, but not much ;)

Thanks for sharing your thoughts!

@webengineer: I wished your

@webengineer: I wished your comment would be less insulting. That would have made it more credible. I encountered the same style on web forums or the IRC channel and it's not appearing very mature to me. If I had to judge a JS framework by their community I'd end up with jQuery quickly anyway.

Well, I do actually use Firebug - every day. But problems with ExtJS programming don't show up as proper backtraces and error messages like in real programming languages. Sometimes it just doesn't work the way you intended or it fails with some obscure error message. ExtJS follows a unique paradigm that is totally different from more lightweight Javascript frameworks and of course from traditional web server (WSGI/CGI or PHP) programming. And if you ask me ExtJS is a dirty proof-of-concept hack that provides beautiful UIs for end users while bending Javascript to dimensions it was never meant to be used for. Developing whole applications in Javascript isn't a very comfortable way. And I especially try to use more developer-friendly frameworks and programming languages and use Javascript to spice up things. A little. ExtJS is rather the opposite. It takes your soul. It makes you need a several-days-workshop to get started.

The documentation is very detailed. But many examples were meant for an outdated version. Many tutorials are incorrect or even dangerous. Once you understand the basics and know which panel is used for what purpose it probably becomes a matter of looking up methods and attributes. But starting out from scratch leaves you pretty helpless. The only way to learn it seems to be looking at the examples.

I second that readability counts. But I don't think that $('#foo').hide() is especially hard to read.

Believe it or not but I didn't just bash it because I was frustrated after 5 minutes and too stupid/lazy to spend time with the docs. I seriously tried a new project with ExtJS. And I'd consider myself an experienced programmer. (Who laughed there? Step forward. ;)

@sosamv: I believe that if

@sosamv: I believe that if you spend enough time and are happy with the GUI programming approach (widgets, events, ...) of ExtJS it might be useful. But you totally lost me when you quoted Gartner because that's by far the biggest ballony company I've ever seen. They wouldn't know how to make a pizza but pretend to have information on what software, company or whatever is good or bad. :)

@prometheus: Thanks for your

@prometheus: Thanks for your thoughts. I admit that it's probably not very useful to compare ExtJS with YUI, Prototype or jQuery. Web development is really way behind and full of dirty tricks. (It sucks so badly when CSS "gurus" talk about how cool their non-table designs are with a dozen tricks and workarounds for a dozen browser versions. That's no way to do serious work.) Honestly I haven't written any serious GUI application yet (Gtk, Qt, whatever). So we agree that ExtJS isn't a library to spice up your web site but a framework that completely locks you in. But it was meant to work like that and it's okay for me. It's just not the kind of tool that I'd want to use. :)

Pff! It takes some OO js

Pff!

It takes some OO js ability to use Ext, that's all. There are 80, yes, EIGHTY example pages which illustrate almost every technique you are likely to need in the first few months of your development.

The API documentation contains LOADS of class summary information, and code snippets, and DETAILED method description. Did you not find out how to click the margin to expand method descriptions?

Pixels? Why would you ever need to use them? Ext's layout managers take care of this for you. You never size a text area, you ANCHOR it, and it resizes with the container. FLUID LAYOUT..

No customization? Just extend the nearest Ext class to get what you want. Usually Panel. Then add member functions. Piece of cake. If you are prepared to learn OO javascript.

Verbose? What, you mean "$" does't do EVERYTHING? Typical geek talk. 90% of the time should be spent THINKING not typing. Who cares whether you type Ext.DomQuery.select("a.my-class"), or some obscure, overloaded function name which does 20 things? Code READABILITY is more important. After all, we minify our scripts before sending them live don't we? DON'T WE?

Debugging? Piece of cake. Don't want to use Firebug? That's your problem. And it IS a problem.

It just gets my goat when I see people wailing like this without having applied any serious brain cell activity.

You can have fluid layouts

You can have fluid layouts that shrink and grow with the browser window, i dont set any widths on my grids or panels.

Seriusly, you should try

Seriusly, you should try Mootools.

@webengineer: Yes, I

@webengineer: Yes, I understand that ExtJS is not a programming language. But that means it has a few drawbacks compared to e.g. Python. Unfortunately I didn't save the error messages I received so I currently can't tell but even with the help of FireBug I couldn't really make any sense of it. But it had the flavor of "T is not a Z in a fuzzyfoo object context" while I actually had a typo in an attribute name while invoking a panel. Something like that.

ExtJS is just using Javascript, HTML and style sheets - admitted. But it uses a dozen nested layers of DIVs (no problem for the browser but not nice for the poor web developer chasing bugs) with several of many hundred styles defined in the central stylesheet with names that only make sense for the ExtJS devs themselves. If you are not making mistakes and don't need to look at the resulting code - fine. But for me it wasn't sufficient to try and play with the ExtJS code and hope that it does what I expected.

I don't mind working ExtJS code. It's beautiful and featureful for the user. But as a developer who has seen many different programming paradigms I have to say that it doesn't really stick to me.

Btw, in jQuery context the '$' is just the handle for jQuery itself. I was a little surprised that '$' is even a valid Javascript object name. So it's used for everything you do with jQuery. Selecting objects, DOM manipulation, attaching event handlers and running actions. It's really just the same as "Ext".

I believe that the main differences are that jQuery is used to spice up web sites while ExtJS is used to write complete web applications. For people who prefer to stay with the framework they are used to they can use jQuery. But if you want to harvest the powers of ExtJS then you need to say goodbye to your old way of working and surrender to it. For people who love to work that way it's surely great.

Real programming

Real programming languages?

ExtJs is not a programming language.

We are still talking about perfectly normal Javascript. And stack traces work just fine because I use them all the time when I break on an error, and then go back to find out who initially set a bad value.

I find people forgetting that it's just plain old HTML and javascript when they use Ext because it look so good.

All it is is a few styled DIVs.

So $ means select, that's fine. That's what it always means then?

Every new guy hates extjs,

Every new guy hates extjs, but once you are used to with the extjs framework. Its more pretty than any other client side technology. Its more fun to work with extjs. I like it.

New to extjs and in complete

New to extjs and in complete agreement with the examples part. They have a whole set of examples and documentation but I simply cant find how to write a simple page. Absolutely no info of how the stuff really works!!!!

I could not agree more about

I could not agree more about ExtJS.

The license issue is a killer argument against using it in commercial applications and the amount of workarounds needed to get basic things (such as a reasonable databinding) working is incredible.

We are slowly but steadily moving our applications away from ExtJS to smartclient (http://www.smartclient.com), and in the long run we will go even further and drop all this handcrafted JavaScript madness in favour of SmartGWT, which seems to be the best alternative right now.

I totally disagree with you

I totally disagree with you man, I'm the CIO of a small company and i discovered ExtJS a couple of months ago, I wont lie, its been difficult to learn Extjs but we managed to create an app within 1 month (2 weeks of research and 2 weeks of development) it is a snippet administrator for my company and works like a charm, we showed the app to a customer and they bought it right away, you need to work harder (no offence), ExtJS is the next best thing and it is rated by gartner as "promising" along with adobe products (Air, flex).

=)

I try to work with ExtJS last

I try to work with ExtJS last 4 months (forced...) after
working with YUI. And I want to say:

1) layouts are disaster. Not only I am forced to add
some margins where naturally must be reasonable defaults, the methods to do this are widget and layout
dependent. And must be in pixels. Plus I hit at least
one bug every day (normally known for ages and called
"feature"...), so my code is full of fixes (called extentions...) from the forum.
The result dimensions are always in pixels, and there
are too often calculated wrong.

2) error processing for JSON is different for different widgets. I have already 4 functions to do near the same thing. The same about near all concepts - there are no common solutions for common tasks.

3) now, when I can compare, I spend near 10 times more
time compare to YUI for the same result.

I wish I could stay with YUI...

I'm not a new and not an old

I'm not a new and not an old user of ExtJS. I think, if anyone said that the "Ext-concept" don't crosses his thinks, that does because ExtJS not a simple framework, or library what the webdevelopers use commonly likes prototype or jQuery. ExtJS uses the concept of RAD'ed programming languages, it's has all but 80% of _components_, not really objects/classes only that are use others, and not really plugins which patches only the original class/object. To use ExtJS well, you need to think in components, not in objects/classes only AND you need to think in objects/classes very well certeainly. ExtJS more likes about Delphi in it's concept. If this concept is far away from you, that is not the concept's problem, but it's a problem of websystems, which are far away by 5-7 years from any RAD'ed desktop language in technics and developer tools. We writes 2009, but webdevelopment is in the past century in developer tools and concepts, and therefore developer knowledge. And that's all we sucking every day.

I've been workin with ExtJS

I've been workin with ExtJS during the last year.
All that it takes is time to learn, which i'm not surprised with any JS UI framework (take Dojo for example) , and a bit of reactivity as a developer.
Use all the tools you've got in your hands, and you'll be able to develop something great with Ext.
I hate Python.

I've decided to use ExtJs but

I've decided to use ExtJs but it does take a fair amount of commitment, i've never been a fan of JS as a language but after a few shaky months/weeks i feel i have a better grasp of it. and i find it quite easy now to customise components and make reusable widgets.
i do think its better suited to whole web applications but i often use it for simple grid listings, which take all the hard work out of displaying data.

Nice post, but I dont think

Nice post, but I dont think you have embraced ExtJs. What do I mean? ExtJs is a "framework" and like marriage you get stuck to it, and you gotta find its quirks until you master it. Once you master it, you'll provide the "wow" factor many people want in their "web applications" not "web sites".

Personally I am happy with ExtJs for "web applications" and managers go "wow" and "why can't we produce things like this more often?" (Because you are using .NET controls I say )

"90% client-side coding" I

"90% client-side coding"

I mentioned this in another comment, but this is not necessarily true. I've started creating nearly "blank" js files filled with empty container objects, and then passing in json metadata objects (in my case I use Coldfusion CFC's) that I can use to build/configure all the forms/grids. It's good for me since I'm dealing with a lot of different permissions levels (and I don't want to manage all my permissions in javascript, obviously).

As far as error messages, I can only say that after you get over the (admittedly daunting) initial difficulty gradient, it becomes a lot easier to recognize your errors. Also, I discovered some setting that, if you had an error, mousing over the error in Firebug would bring up a tooltip containing the entire function that produced the error -- incredibly useful and easy to debug and learn about the underlying ExtJS code.

I will also echo Derrick and say that Chrome is indeed a good match for ExtJS.

I've been reading this

I've been reading this article, and I'm not much of a writer so my response is brief.

To use ExtJS is rather cumbersome, a radioactive nest of configuration objects results in completely unmaintable code and is practically to follow if you arrive back to it some time after writing it.

What you need is a means of developing with ExtJS in a simpler way. I'm currently writing a PHP interface to ExtJS. I've worked out for every 1 line I write, I generate 7 or 8 properly formated ExtJS lines.

Check out http://www.davegoodchild.co.uk/library/ for the PHP and then the generated results.

This now allows me to include a simple grid or widget very simply with no headache. It's clean and self contained, but still gives you 100% access to all ExtJS features.

I'd be interested to hear what you guys think.

I agree completely. Im trying

I agree completely. Im trying to write a web based finance software, but I quite wanted a nice grid, which extjs provides.

But even getting a couple of basic UI elements working properly has been like pulling teeth.
Finally I did get extjs working as I wanted, but the grid performance turned out to be pretty dreadful once you get quite a few rows (nothing excessive mind).
Its a real shame, because visually its stunning.

A few other things I hate about extjs, is that to do it properly you really have to write your whole application in it, and the learning curve is almost vertical.

I found it very difficult to output HTML from PHP and then tie it together with bits of extjs. Debugging is a nightmare too because you often get some obscure message from deep within the extjs core.

So thanks to your post, I decided to try jQuery about 5 hours ago. Ive found it so intuitive, and easy to code with. Im not sure why I never looked at it before, maybe I assumed it was Java because its from IBM.

So I decided I dont need a fancy grid anymore, Ill just write some usable DHTML table without all the bloat that extjs has. That was only 3 hours ago, and Ive already made more progress with jQuery and PHP than I did in nearly 4 days with extjs, so Im very happy I found this blog

Thanks a bunch :))

Give it another try

Ext JS rocks! I use it internally, and it's the best framework available.  Our company did a bunch of testing with the other frameworks and the decision was easy. You should take another look.

 Fabien

Agree With You For The Most Part

I know some people are picking lines/words out of your article to say you are wrong/misinformed whatever. On the whole I think you are spot on. EXTJS can be laboursome to learn compared to other frameworks in my experience, and bringing new staff up to speed costs an arm and a leg in lost dev time...

We had several staff transfer to other departments where they are going great guns with other OO lanuages, but couldn't get to grips with EXTJS without going way over deadline or loosing time they should be spending with their families to meet those deadlines. In contrast  they had no problem meeting said deadlines using other frameworks to achieve the same results. Readable code has nothing to do with the technology being used in my view(just my view). Complex syntax becomes very readable regardless of the tech if its well structured and documented within the code.

In saying this I do admit, I work with EXTJS everyday, but only because our company hasn't finished porting current EXTJS projects to other frameworks. On the whole a good article if you ask me ;)

All depends on your background

I think the main problem people have with the Ext library mostly stem from
what languages and platforms they come from.  I can certainly understand
how some people might find it rather confusing.  If you just want to gussy
up a web page... it certainly is not the right choice.

If you are building an application I would say that it is at least as flexible of a front end choice as
Actionscript (Flex/Flash)   but without the need for the plugin. Personally
I found very little dificulty in transfering concepts and code from Java and AS in to JS with Ext.  
In fact in this regard Ext basically makes up the difference between what is possible with
POJS and AS. 

In that regard... loading the 500KB of the Ext library isn't bad considering all the
libs that can get compiled into a swf.

As far as failing gracefully, again in that regard requireing JS is even less of a demand then requireing Flash
so if you want the splash without the flash... Ext can give you some of that.

Also don't blame the framework for security problems... that's a design issue.  I've seen insecure
systems written in just about every language and platform.  Ext, AJAX, JS has nothing to do with it.
Being able to see your source code has nothing to do with it.... if you write a client server app in
Javascript, Actionscript or Name-Your-Script... if you don't secure your server (on every call), you are
writing an insecure application, even if the source code is compiled and encrypted.

One last thing, I don't know what you are talking about it being difficult to debug... Having come from
a background with AS and the Flex Debugger, I found very little difficulty in using Firebug with Ext.
In fact one thing from firebug that I would love to see implemented in the very nice Flex debugger
is the ability to console.log  an object and then be able to click on it in the console window and
go to it in the dom window... very handy.

 

Okay, you got me hooked

Fabien, I threw away my predujices and will give my opinion of ExtJS a reboot. :) The new 3.1 version looks even nicer and I think I should try it. I'm convinced that Pylons as a backend and ExtJS as a frontend aren't the worst choice. I'm just still not sure how far the license issues concern me. My project at hand is a web-based software I did for a friend (who uses it for his real-life commercial shop). And I'm just not sure if I get into licenses clashes here. ExtJS is available under the GPL. And the GPL should allow me to use the application but not sell it. Well, I'm not selling it. I'm just offering a web interface for commercial use. I don't even get paid for doing that. Actually this should be an "internal application" then and I can use ExtJS for it. Could I perhaps even make the application usable by other shops as well without having to pay for ExtJS? As I'm not earning money with it I'm obviously not willing to pay for ExtJS.

Thanks

Thanks for your comment. I had edited this post so other readers' comments are likely reactions when I ranted more instead of providing a fair comparison. :)

May I ask what framework you are preferring? I was reading about Backbase lately but the license is similarly confusing. Currently I'm using jQuery again but am slightly disappointed about the quality of the ExtJS like widgets.