Everyone seemingly has their own idea of what the future looks like, where they see trends and technologies heading. So, I thought I would throw my hat into the ring and share some of my own predictions for 2020 and beyond in the front-end space.
My intention isn't to make anyone angry, so if anything in this prediction upsets you, just remember these predictions are personal opinions and not guaranteed to come true nor are they based on any real factual data.
While existing frameworks and libraries will shift focus away from features and focus on competing with upstarts like Svelte by narrowing their attention to performance and size. You will see frameworks and libraries either evolve or die.
This will all tie in with all major browsers supporting Web Components, as compile-to-code options like Svelte and standards-based frameworks such as Aurelia allow developers to build web applications that compile to Web Components.
Do not misconstrue a reduction in popularity with dying, this is not a death prediction. In 2020 React will continue to be the #1 contender in the front-end space and will continue to do so for the foreseeable future, it is simply too big to just die. However, 2020 will see React lose a little bit of its market share as developers flock to other offerings.
Developers often pick React because it is a safe bet right now. It has a massive ecosystem, it is easy to find developers experienced with it. But the ecosystem is so big, it can be hard to make basic decisions and more often than not, you end up glueing together your own faux-framework with numerous packages.
Whether or not the trend of developers moving away from React and other choices towards compilers and "closer to the metal" offerings continue into 2021 and beyond, nobody knows.
Releasing a new major version of your framework or library can be fraught with danger. Look at Angular with its turbulent release of Angular 2 which fractured the community and drove developers away to other options like React.
As Vue 3 introduces the new composition API and moves away from the Vue 2 class-based API amongst other features, developers concerned with Vue seemingly stepping in the direction of React will begin to look elsewhere. Some in my circle who moved from React to Vue have been making the move back now the honeymoon period has ended for them.
It is worth acknowledging that many of the differences between v2 and v3 of Vue seem to be behind-the-scenes and the way you build applications is largely the same, there are differences and there is also confusion.
In 2019, the concept of micro front-ends really started heating up as the community rallied behind the concept. Much like the backend saw a similar renaissance a few years ago the concept of breaking up monolithic front-end applications into smaller apps will be all the rage in 2020.
Eventually, developers will grow tired of micro front-ends and we will see a return to monolithic applications in 2021/2022.
There is just no stopping TypeScript and as we saw in 2019 which was a phenomenal year for TypeScript adoption, 2020 will be more of the same. Many large-scale open-source projects such as Aurelia and Vue are rewriting their latest major versions in TypeScript, companies are jumping on board.
All the while, some of TypeScript's loudest critics will continue to peddle their anti-TypeScript agenda, but nobody will be listening. TypeScript is a force to be reckoned with.
Right now, a few high-profile front-end thought leaders love to talk smack about Web Components. While Web Components knowingly have a few technical limitations, 2020 is the year we will see work to unify the specifications and improve Web Components get underway.
As we enter 2021, Web Components will be supported in major browsers and work will have started (possibly completed) on addressing some of the biggest limitations of Web Components, as we see frameworks and libraries in the ecosystem bridge the gap.
Sadly, Aurelia was introduced at a time when some web standards were still in flux when ES2015 was not overly supported and build tools were turbulent (predating the rise of Webpack).
In early 2020, Aurelia will see its second release Aurelia 2 which is a rewrite of Aurelia 1 with the same familiar syntax, expanded feature-set and more alignment with web standards. Now that many of the standards Aurelia abides by are solidified and improved, Aurelia 2 will be poised to take advantage of these better (including first-class Web Component support).
For a very long time, the onus has been on developers to ensure they're creating performant and usable experiences for their users. Sadly, even with all of the tools at our disposal, things have not really improved.
Chrome is leading the charge here, in 2019 they implemented support for a loading attribute allowing for more performant loading strategies for images and iframes.
In 2020, we will see Chrome and other browsers begin to progressively enhance web applications by offering improvements such as the loading attribute implemented by the Chrome team.
For years talk of web applications replacing native applications has been going around. However, PWA's have always been seen as these separate siloed things with additional steps to use. Not any more. In 2020, we are going to see PWA's finally given the respect they deserve and developers opting for PWA's over native apps.
Microsoft is already leading the charge on this front, by working on implementing support for PWA's to run on startup in Windows 10. Best of all, this is a Chromium feature and will support other operating systems.
I am not saying that people don't already use Elm (because a lot of people do), you just don't hear about it all that much and I think in 2020, that is going to change.
The attention that Svelte receives in 2020 will indirectly put Elm into the spotlight. With its renowned error messaging and lack of runtime exceptions, Elm will cause some developers to fall in love as they discover this underrated gem.
A lot of developers I have spoken to like WebAssembly and agree that it is important for the future of the web, however, nobody knows where to start or what to do with it just yet.
If you asked me in 2018 what I thought would be the hottest technology on the front-end in 2020, I would have said WebAssembly. While a lot of work has been done and support is decent, with a few things built in it already, sadly, WebAssembly isn't quite ready for its prime time moment just yet, but we are getting close.
Until WebAssembly has a safe and performant way to perform DOM-based operations, front-end developers using WebAssembly will be in a small minority who are. Once WebAssembly can cross that bridge and in a way that doesn't introduce a performance bottleneck, it will be a front-end arms race as libraries like React implement things like Virtual DOM in WebAssembly.