Changes in technology have led to changes in how web applications are created. And that has caused some consternation among web developers.
A decade ago, the development choice was to use .NET or Java, which meant WPF or ASP.NET for Microsoft developers. Java has been a bread-and-butter language for a long time, so that’s a safe bet. And Microsoft was known for 10-plus years of support for technologies, and even when they changed, the company always made sure everything was backward-compatible. So that was also seen as a safe bet.
Today, according to Jason Beres of Infragistics, “Now we go to this new modern web, there’s a dozen frameworks I could choose from – in fact, there could be a dozen frameworks coming out every day.” With more language options, platforms and libraries to choose from, developers often find themselves asking, ‘Which is the right one for my project? How can I keep track of what all of these have to offer?’ People want the right answer, but as in most things in development tools and languages, there is no one right answer.
Beres said that in a recent talk by Gartner analyst Mark Driver that he attended, “He basically said the issue with the enterprise today is because there are so many choices, and the web is moving so fast, that anything you decide to use today you’re going to throw out in five years, you’re going to throw out in three years.”
If you know that going into it, Beres said, it frees up all this stress and anxiety over choosing a platform – you can only future-proof based on what you know today, based on available frameworks and their respective features. “The hard part,” he said, “is overcoming the fact that, ‘If you wrote a .NET app in 2005 and it’s still running a mission-critical enterprise function today, you probably won’t plan on changing it.’ Maybe there’s been a ton of updates, and maybe it’s been modernized. But the world is so much different now, it’s moving so much faster with the web, that while there are some good choices, those choices will be radically different and radically changed, and there will be five other good choices in three to five years, and that’s really where the stress comes from. The customer wants you to say, oh no, you’re making a safe bet, but you’re making a safe bet based on all the information that’s available today.”
The JavaScript (EcmaScript) language is a core web development technology. But under that umbrella are libraries AngularJS (developed by Google), NodeJS and other variants such as TypeScript, NativeScript, and React (developed by Facebook).
Beres said the Angular and React seem to be at the top of the web dev food chain (or tool chain) right now. He described Angular as being a full stack, providing “all the capabilities that you really need as an enterprise to build a line-of-business app.”
React, on the other hand, is a library that deals with UI rendering, and development teams must decide what other pieces – such as dependency injection, state management, forms, widgets or routing – they need to create an enterprise-ready application.
“What we’re seeing today in the enterprise,” Beres said,” is a debate of React vs Angular for a standardization approach. And from what we’re seeing, for broader line-of-business type apps, we’re seeing a lot of Angular. If I’m an enterprise and I’m looking at standardizing on a framework, Angular is an easy one to standardize on because it gives me all the things that I can push out across my enterprise to my development teams, whereas React can potentially create siloed choices for the overall React stack of libraries to support app development.” Beres emphasized that he did not want to minimize the impact React has had in the enterprise, saying it is wildly popular. “However, if you are looking at a typical enterprise that has anywhere from hundreds to thousands of developers, Angular is an easy choice as it eliminates a lot of that debate on a best-practices approach since the framework has best-practice guidelines built in,” he explained.
Still other popular web development tools and techniques include Node, the JavaScript runtime with the most popular package management tool currently is use; NativeScript, for building native applications; Progressive Web Applications, which are web-based applications made to behave like native apps; WebComponents, which allow developers to build reusable, encapsulated HTML tags in web pages, WebAssembly, which has the promise of near-native performance with C/C++ binaries running natively in the browser, and now Flutter, Google’s Dart language-based framework that uses Skia as its rendering engine to create native applications.
With so many options, it’s no wonder many web developers are feeling JavaScript fatigue. “I agree with that,” Beres said. “But at the end of the day it’s about what is going to help me build high quality software faster, coupled with an amazing UX that will ultimately drive productivity for the downstream customer.”
And that’s the right choice to make.
Content provided by SD Times and Infragistics