You may have seen our recent blog entitled “AMD: The Definitive Source” which exhaustively explained Asynchronous Module Definition. AMD is a topic with significant technical nuances but the purpose of THIS article is to explain the value of AMD for your business.
AMD is an emerging defacto standard for efficiently developing modular JavaScript applications and libraries. There’s a tremendous amount of business benefit to be achieved from making the switch to AMD for any JavaScript application. If you’re using Dojo 1.7+, you’ve already made the switch and are reaping the rewards as we speak!
Utilizing AMD in your web application dramatically affects code maintainability, application performance and interoperability and these will assuredly result in the following benefits for your business:
- Efficient engineering
- Improved user experience
- Empowered technical leadership
Let us tell you how!
Code Maintainability
AMD resolves a significant number of issues that occur in JavaScript and HTML5 development projects through its employment of many best practices. JavaScript’s low initial barrier of entry to development often leads to the use of global variables, either intentionally or accidentally. Older versions of Dojo used namespaces, but these are verbose, have an impact on performance and require uniqueness. By following the AMD approach, your team will run into fewer issues and errors when developing.
Benefit = Efficient engineering
In larger projects and within larger organizations, it is common for different teams to build different portions of an application or library. AMD makes it much easier to share source code between projects and teams, create modules that are more easily reused by different initiatives, and merge work together, saving time and reducing redundant efforts.
Benefit = Efficient engineering
The AMD module format also encourages development of source code within an architecture that reduces overall development time. By providing developers with a solid model for writing clean, modular source code, fewer errors occur during development, improving time to market while increasing team efficiency.
Benefit = Efficient engineering
Using an AMD approach through feature detection, it is easier to create versions of your application that are optimized for mobile platforms and to remove legacy browser support for users of modern browsers. Additionally, the logic for such support is stored in an efficient manner making it easier to maintain, and eventually remove when support for legacy browsers is no longer required.
Benefit = Efficient engineering AND improved user experience.
Application Performance
AMD and its associated application optimization tools will lead to smaller source code for your applications, directly improving the performance of your applications. (Read more about the business benefits of improving performance) The result is a reduction in cost for bandwidth, faster page load times and an increase in both satisfied and engaged users. The asynchronous nature of AMD also makes it possible to load modules in parallel, further improving application performance.
Benefit = Efficient engineering AND improved user experience.
Because of improvements with AMD, a typical Dojo application is now 25-90% smaller in its code base, and load times of 5-10 times faster are not uncommon.
Interoperability
When I helped start the Dojo Toolkit, the vision was to create a collection of tools and libraries that would make developers more productive in creating web applications. It was never intended to be a battle between toolkit brands, or an attempt to force users to just use one toolkit and never find inspiration or useful modules from other sources. We’re big believers of having the freedom to choose options that are best for your project.
AMD helps prevent toolkit lock-in by making it far easier to mix and match modules between toolkits and makes it possible to use the dgrid module within a jQuery application or use some MooTools features within a Dojo application. It is still recommended to exercise caution when loading additional, full toolkits, as this creates some performance overhead. However, by making all of Dojo more modular, you will gain the benefits of microtoolkits while also receiving the benefits of having modules and tools that are tested together, in a manner that meets your expectations and the needs of your applications.
Benefit = Empowered Technical Leadership.
AMD has already been adopted by many large organizations including IBM, BBC, and Twitter, to name a few. We expect the list of major sites using AMD to grow exponentially this year.
Summary
Code maintainability, application performance, and interoperability provide the flexibility to create more dynamic applications. The cost benefits of AMD are driven through these technical and business benefits.
Most companies have one goal in common: Keep customers coming back and do it as efficiently as possible without sacrificing quality. AMD is aligned with this, and we’re excited to see this progress.
When you’re ready to explore your options for leveraging AMD in your web application architecture or if you just have questions about AMD, contact us. We’d be delighted to chat with you to see how SitePen can help your organization achieve the results that AMD provides.