The short answer is that we are trying to provide the best application development experience. That desire guides all of our choices, in spite of a dynamically changing market and standards landscape.
What is the “Best Experience”
For a longer answer, we need to acknowledge that the “best experience” doesn’t mean the same thing to all developers or projects. The needs of a small team developing a short-lived internal site, for example, are very different from the needs of a team developing a long-lived, customer-focused SaaS platform. Instead of trying to be the best fit for everyone, we try to understand where we can provide the most value to the most users. Over the years, we’ve come to focus on developers of complex enterprise applications – especially those that are familiar with object-oriented design and engineering – because they face a complicated set of problems that are too often dismissed as “that’s just the way things are.”
“Instead of trying to be the best fit for everyone, we try to understand where we can provide the most value to the most users.
For better or worse, enterprise developers often have to work with an environment mandated by their IT department. This simplifies things to some extent because they don’t need to support all possible browsers, but it can also require them to use older browsers that lack support for the latest standards or have “unfortunate” performance characteristics. It’s a huge burden on these teams to add, and especially maintain, tweaks for the different browsers. Browser compatibility is thankfully becoming less of a concern as standards support works its way into IT-sanctioned browsers, but as long as there are different browsers, there will be the potential for these problems.
How Does Using Ext JS Help
When using Ext JS, developers rarely need to even think about this – they just develop their application using the standard APIs. Ext JS ensures that the application operates as intended, automatically activating any tweaks needed for the runtime environment. The APIs allow developers to use adaptive and responsive design techniques to ensure an optimal user experience from the same code base, on a broad range of browsers and devices. The Sencha team accepts the burden of staying up to date on the latest browsers, and we implement, test, and support appropriate compatibility workarounds and fixes in Ext JS. This means that developers don’t need to add and maintain tweaks in their application code – reducing the maintenance burden and simplifying updates. We actually take it a step further and give developers a way to leverage object-oriented design skills to improve consistency, reduce effort and duplication, and ultimately create more maintainable code.
A typical enterprise application might be in use for five years or more. Application code must be maintained over that lifespan, adapting to changing landscapes on all sides. On one hand, enterprise applications need to adapt to a changing list of browsers and runtime environments in use. Security and bug fixes are released frequently, and browsers are occasionally end-of-lifed. On the other hand, enterprise applications depend on third-party frameworks and components with their own development and maintenance schedules.
Given this dynamic landscape of dependencies, it’s extremely challenging to keep everything working together as the number of dependencies increases – even if the application code isn’t changing. Teams might be forced to upgrade a component due to a security fix or compatibility problem, which could break things in another component or in the app itself – leading to a cascade of unanticipated upgrades, rework, and testing.
This is one of the most painful thorns in the side of enterprise development teams, and is also the key to Ext JS delivering such a great, reliable experience.
Downstream maintenance problems are not the only hazard associated with mixing and matching components in these applications. These components are developed independently, meaning they have different architectures and use different assumptions, abstractions, and event models that can lead to problems when they are used together. At best, this can lead to developer confusion and reduced productivity; in more extreme scenarios, it can lead to systemic quality problems, poor morale, and canceled projects.
Ext JS helps developers get control over this mess on several fronts:
- It provides a very broad range of widgets and components, all of which are designed and tested for compatibility and have no external dependencies. By covering so much functionality with a single dependency, Ext JS greatly reduces compatibility risk.
- All of these components are developed to a consistent architecture under the same standards of abstraction, documentation, comments, and coding style. This consistency helps developers minimize mental context switches.
- Sencha provides tools that offer rapid prototyping, debugging, testing, theming, and more, and are accessible from the command line, IDE, or streamlined GUI. In other words, developers get access to the right tools from the right environment – enabling consistent workflows, improved automation, and higher productivity.
- Development teams get professional documentation and support over well-defined maintenance lifetimes for each release, so they can better plan their own upgrade schedule and get expert assistance, if needed.
Ext JS enables teams to focus on their domain-specific problems rather than framework hassles, leading to improved productivity. It also helps them better anticipate and control maintenance costs, because there is more consistency between components and better visibility into the framework roadmap.
Join the Conversation
But enough about us! What challenges are you facing? What would you like us to try to address? Please share your thoughts in the Comments.
If you’d like to learn more about Ext JS, I encourage you to start a free trial and see for yourself how fun it can be. Existing Ext JS users might want to check out our sample applications or try out Ext JS Premium or other tools to get familiar with our more advanced components.
Last but certainly not least, we’d love to see you at SenchaCon. We’ll be making some exciting announcements, and our largest event of the year is a great time to share tips and tricks with other developers and learn how to build great apps with Ext JS.
Patrick Spadaccino says
Overall, I enjoy using Ext JS because I love OOP. However, my number one pain point is having almost nowhere to turn when I have a question or run into trouble. The forums are okay for casual questions, but when I have a deadline, it’s not optimal to depend on a help system where you may or may not get an answer.
There is not enough online training for Ext JS…just a handful of videos. The samples you provide are generally good, but there are not nearly enough of them and–most seriously–not all of them are coded in a real-world fashion, or even to Sencha best practices. If you code an example and use conventions to account for the preview environment, that should be clearly noted and you should provide code that tells developers how to adapt the example to match best practices.
Jon Jarboe says
@Patrick, I’m glad to hear you enjoy using Ext JS. All of our support customers like yourself have access to our premium forums. We guarantee that we will respond to all Support tickets within 24 hours, so you should never be left hanging. Just be sure you post in the right place.
We recognize the need for more training materials, and we’re already hard at work creating on-demand versions for much of our existing training. Keep an eye out for that material soon.
In the meantime, we’ll contact you directly to help resolve any immediate issues you may have.