ExtJS befuddles me

I have only one more week left on my current contract. My final responsibility is to finish off this über cool web view of one of our documentation products, which will be integrated as an output stream from the newly-installed XDocs XML content management system. The best part about technical communication is that I get paid to write all day, and when I need a break, I can fix the CSS for an embedded help system or hack some JavaScript. My Technical Communication department manager gave me permission to showcase the web output with obfuscated text in my portfolio, so be on the lookout for samples in the near future.

For the last month I’ve been going nuts trying to hack the ExtJS javascript application framework, recommended by the Technical Adviser from the company’s Web Services department. I have no problem applying different plugins to my project. However, when I try to add custom behaviours to the objects, I get that little red Firebug that shows me the hand and says “not so fast, cowboy!”

I’ve read the scant Learning ExtJS wiki, and tried to translate the ExtJS API Documentation to build sample code, all to no avail. Piecing together fragments from the ExtJS User Support Forums has been equally frustrating. I’ve found the user forums extremely hostile to newbies. The common complaint is that they don’t believe that the ExtJS forum is meant to teach users JavaScript OOP. I think the user base grew from version 1. Now experts by version 2, they forget that others haven’t been along the journey with them.

Many of the users are so ExtJS entrenched that they assume the reader has committed every single post from both version 1 and version 2 to memory. One would have to, because the accepted response to many questions is only one line of code without context, and the reader is just supposed to “get it”. (Strangely enough, the original poster often does.)

Add the additional stress of my having to find a new job, and you have my current befuddled state.

JavaScript JavaScript
This Fifth Edition is completely revised and expanded to cover JavaScript as it is used in today”s Web 2.0 applications. This book is both an example-driven programmer”s guide and a keep-on-your-desk reference, with new chapters that explain everything you need to know to get the most out of JavaScript, including: Scripted HTTP and Ajax XML processing Client-side graphics using the canvas tag Namespaces in JavaScript–essential when writing complex programs Classes, closures, persistence, Flash, and JavaScript embedded in Java applications.


An understanding of OOP is essential in understanding the way ExtJS extends common prototypes. Fortunately, in my last-ditch effort to plow through unexplored regions of the forum I stumbled upon a recommendation to purchase a really good JavaScript book, JavaScript: The Definitive Guide (5th Edition) by David Flanagan. Several users recommend this book to help users understand the object-oriented JavaScript programming concepts behind ExtJS, stuff I managed to miss by coding script as a writer rather than a software developer.

I only hope this recommendation didn’t come too late. It will take up to a week to receive this book if I order it by mail, but I know Chapters has it in stock. Wish me luck.

 

  • Tony –

    I look forward to seeing the Ext app that you are able to put in your portfolio. As a Core Developer at Ext, it is easy to forget that I was once in your shoes as well. Ext is a huge framework with a wide variety of pieces of functionality, everything from lower level Dom manipulation, Ajax, etc up to the rich UI widgets that we are well-known for (GridPanel, TabPanel, etc). That being said your best bet to learn is to read the forums, learn sections and check out all of the examples we distribute in the SDK. Of course our API Viewer is immensely helpful to learn of new configuration options and methods in each specific component.

    If you follow the guidelines for Ext Forum Help, I think you will find that you will get quick and concise responses that will help you resolve your issue. If you have any more suggestions as to how we could ease the learning curve please feel free to send me an email with some suggestions.

    Best of luck and I hope you continue to use Ext JS in forth-coming projects!

  • John

    I too have struggled to figure out extjs. I put myself in the hot seat by deciding to use this on a three week project. Luckily I was able to figure most of the stuff out through trial and error.

    The forums are not exactly friendly all the time. It sux waiting days for someone to reply to your post and then find out it is some sarcastic post about how stupid you are for not doing it right.

    The examples are also hard to follow. Things that require a complex example like putting a form in a tab and having the form refresh, or how to change the path to a url for a data.store on the fly in response to an event that would require a reload do not exist. Yet examples like how to use a simple widget are shown with extension and complicated scenarios.

    One of the things that bugs me most about extjs forums is when someone says look how smart I am here is what I did, but they don’t provide the other pieces to make it work. Then when someone has a question they respond condescendingly and complain that people don’t trace their own code.

    Luckily I was able to get everything done on time for my project, but I am definitely going to find another framework to use that is truly open source and not viral GPL’d. That is another topic I could rant about but wont.

    Just like you I am looking for a job too. These times are tough. Good luck!

  • @Aaron: I was hoping this response would have included a link to my sample application. As time went on, somehow developing a sanitized-of-nda-information sample got lost in the shuffle of priorities. I was proposed a venture for the new year that ExtJS might suit, so you may see me slugging it out in the forums yet again.

    @John: Thanks for responding with the same feelings I had about the forum. It’s insane that we both chose to use the framework for a three week project. I didn’t realize I’d need a year to study the framework. At least I can blame the guy at the company who told me to move in that direction.

    To Ext’s credit, I’ve seen their framework used in several commercial-scale applications used by my domain registrar to my Synology network storage device. It holds the potential to develop rich client interfaces (though Google Chrome support was still pending in the version I used).

    To Ext’s fault, all the applications LOOK like Ext apps. Application developers probably had a tough enough time developing the app, let alone making it look different.

    Methinks I have the subject of another blog entry!

  • Just thought I\’d post a follow up on this discussion to credit the ExtJS development team for rebranding as Sencha. In addition to ExtJS is the new HTML5-ready Sencha Touch framework for mobile touch devices, as well as integration utilities for jQuery/jQuery UI and Raphaël.

    Wicked cool.

  • Joe

    We have been using ExtJS on a project and it is a disaster. It does not scale at all for large applications and is the root of many performance issues. Create a “Hello World” app and just look at how much markup ExtJS generates. Now extrapolate to the real world. Visually their stuff looks great but it is a horrible framework.