Sencha Complete?

I like Ext JS – the JavaScript framework by Sencha. But does it mean that our enterprise clients will be willing to pay $21K for 10 licenses of the recently released Sencha Complete: Team? It’ll be a hard sell for Sencha that plays in the field where all competing frameworks are free.

Such a hefty price tag may limit the exposure of Ext JS to only those enterprise shops that must use software products that are backed by their vendors and are commercially supported (for extra money, of course). Interestingly enough, Sencha even restricts the access to the evaluation copy of Sencha Complete. You have to have a team of 10 developers to request evaluation copy of this product. How many projects have you seen that had 10 JavaScript developers? Not many, right? It seems that Sencha Complete is meant only for the large enterprises where architecture groups approve Ext JS and Touch as THE framework to use.

I understand where this pricing is coming from though. Sencha as a company has started with some serious financial investments. If I’m not mistaken, more than $50 million were poured into the company over a couple of rounds of financing. Having this pile of cash is great for any software product, and Sencha’s engineers have proven that they can deliver. But there are time to scatter stones and there times to gather them. I guess, these venture capitalists what to see their money grow.

I still remember these expensive IDEs from the 90th, which were priced at $2K a pop. Where are they? I still remember Adobe’s LiveCycle Data Services (LCDS) with the extraorbitant license prices that was not able to compete with Adobe’s own open sourced version of this product (BlazeDS). WHere is LCDS now? Do you also see what I see?

As I said, I like Ext JS framework (hopefully it’ll lose some weight in the future versions), and I like Sencha Touch for developing mobile applications. I wish Sencha’s salesmen to be convincing in selling the licenses of Sencha Complete: Team. Our company offers consulting services in development of enterprise Web applications, and Ext JS is one of our frameworks of choice. And the last thing I want is to see the market share of Sencha is diminishing because of the careless pricing policy.

Update: I hope that this blog has contributed to Sencha decision to lower the prices. As of February 2013, you can purchase a one-developer license of Sencha Complete for $995.

Ext JS Tutorial

Today’s JavaScript landscape consists of dozens if not hundreds of frameworks. Some of them serve as tiny additions to your Web page – they  implement just a certain design pattern. For example, if you need to implement declarative binding of your HTML elements and data models, use knockout.js. If you just want to check if certain HTML5 features are supported by the user’s Web browser add a small modernizr.js to your Web page.

But there are feature-complete frameworks that you can use a foundation of your entire Web application. Such framework include rich library of UI components, support MVC paradigm, offer their own layout managers, styling, effects, and may even have server side components. One of such large and multi-featured frameworks is Ext JS from Sencha.

It’s being used by many IT shops developing enterprise Web applications. In our company we also use Ext JS in some Web applications. We’ve also  added Ext JS code generation to our open source tool Clear Data Builder – it’s a useful tool for creating CRUD applications having Ext JS on the client side talk to Java on the server. We’ve also developed our own Ext JS training curriculum and teach it as two or three day workshop by request.

My colleague Victor has recorded a one hour screencast that can serve as a brief introduction to Ext JS. This presentation has been a part of our fifth annual symposium on enterprise software development. Enjoy the presentation!

Talking to Publisher About New Book

I’ve contacted a publisher regarding possible publication of our new book. We’ve been working with these publishers in the past and they seem to be interested, which means the publisher started asking certain questions to see if such a book will have a market value. This blog is our response to these questions.

The question was caused by the proposed book title: “Enterprise HTML5: Desktop and Mobile”. What the word enterprise means in this title and is this book about HTML5? The title of the book can be changed to “Enterprise Web Development. From Desktop to Mobile”. IMO, HTML5 became a buzzword meaning a lot more than HTML. This book is more about Web development than HTML. The targeted audience is intermediate developers and the knowledge of HTML basics is assumed.

This book is mostly about developing for desktop and mobile in JavaScript and related technologies. Many enterprise development managers are facing (or will be soon) the need to make their applications or Web sites available on the plethora of devices used for accessing Internet. They need some kind of a roadmap for going mobile. There are different approaches for doing this. One approach is to create separate teams developing native applications for popular operational environments (e.g. iOS, Android, etc.) This approach can produce good results as long as they can afford creating and maintaining several versions of the same application. Another approach is to create an HTML5 application, which is will use modern versions of HTML, JavaScript, and CSS. This approach has different flavors though. One is to have the same codebase for both mobile and desktop version (this approach is also known as Responsive Design). Another – have two versions of the HTML5 code – one for desktops and the other for mobile devices. If you go with the latter approach, the next question arises – which JavaScript framework to use that will allow reusing as much of the code as possible and to minimize the learning curve. This book will allow you to compare JQuery and Ext JS – popular JavaScript frameworks for desktop development, and their mobile versions: JQuery Mobile and Sencha Touch. Is this an intermediate to advanced book? Which other books will compete with this one?

So let’s profile the books that are currently available on the Web market.

Most of the available books on the HTML/JavaScript market can be divided by three categories:

1. Tutorials on HTML, JavaScript, CSS or particular JavaScript frameworks. For example, Larry Ullman’s “Modern JavaScript. Develop and Design” or “JavaScript 24-hour trainer” are good JavaScript tutorials.

2. Cookbooks or design patterns. These books show code fragments helping to accomplish certain isolated tasks. O’Reilly’s “HTML5 Cookbook” or “JavaScript Cookbook” are good representatives in this category.

3. Advanced books. These cover advanced topics of a programming language (e.g. “Secrets of the JavaScript Ninja” by John Resig) or explain a certain aspect of development, for example “High Performance JavaScript” by Nicholas Zakas.

These are definitely useful books. But our book won’t perfectly fit into any of these categories cause it’ll have a little bit of everything. We’ll structure the materials around designing, developing, and re-developing a sample Web site using HTML, JavaScript, CSS, and popular frameworks. While working on this Web site the reader will learn the language/tools and compare different approaches to cross-platform development. Of course, if you didn’t work with JavaScript before, a chapter on JavaScript will be quite useful for you. But it’s an advanced introduction to JavaScript – we assume that you know what the loops are about and won’t give you a coverage of all types of loops in JavaScript. If you know JavaScript already – just skip this chapter.

On the other hand, such advanced concepts as callbacks or closures deserve better coverage, so we’ll spend some time explaining them. While developing a mobile version of the sample Web site in jQuery Mobile (and then in Sencha Touch), we’ll explain a bare minimum of this framework – just so you can complete this Web application. We are also planning to compare these JavaScript frameworks and highlight the issues that will allow larger Web sites to be written in an efficient and modular fashion.

So we assume that a reader of our new book has some background in programming, but it won’t be overly complicated to be included in the category of advanced books. I’d say that we’d like to write a practical book that will cover the entire cycle of the Web application development using the modern tools and techniques. This book will be written by software engineers from Farata Systems all of which work on real world Web projects.

Generating Ext JS and Java CRUD Applications with CDB. Part 1.

Clear Data Builder for Ext JS (CDBExt) is an open source tool that automatically builds Ext JS/Java EE CRUD applications given one or more annotated Java interfaces. The generated JavaScript and Java code enforce best Ext JS and Java EE practices and is deployed on the development version of the Tomcat ready to run. A tiny library of Ext JS components accompanying CDBExt – Clear components – enables transactional data sync with the application server, including deeply nested hierarchical data transaction, features not supported in native Ext JS 4.

This short video opens a series of demos that will describe various modes of generating CRUD applications with the JavaScript clients enriched by the Ext JS framework from Sencha. At the time of this writing, CDBExt is in public beta and your suggestions are welcome. Please post your suggestions and findings at the Clear Data Builder’s forum at Sourceforge. You can also send us your feedback by filling out this form at our company’s site.

We’ve just started documenting CDBExt at the Clear Toolkit’s Wiki.

To add the CDBExt pluging to Exlipse for Java EE IDE, please select the menu Help | Install New Software, then press the button Add and enter the CDBExt in the Name field and http://www.cleartoolkit.com/downloads/plugins/extjs/cleardatabuilder/4.0/site.xml as Location.

In the next video I’ll show you how to quickly create a Web application using the Ext JS framework as a client and MyBatis framework for the data persistence. If you are not familiar with the HTML5 framework Ext JS, consider attending our 2-day workshop on the subject.