My technological prognosis for 2020
Over the past few years I’ve seen plenty of trends come and go. I always try to keep a good perspective and to stay clear of the hype, there’s no point in investing time into a technology that nobody’s going to be using 2 years down the road after all. To do a little reflecting, here is my web technology forecast for 2020.
Ever since AngularJS (aka Angular 1) has been released by Google in 2010 I encountered a similar pattern, no matter if it’s AngularJS, Angular, Tensorflow or Flutter we’re talking about:
- People jump on the Google bandwagon (It’s Google tech after all - must be great, right?)
- After muddling through for a few months people realize how terrible the docs and support are
- 2-3 years after the release the project becomes really cluttered with too many ideas incorporated into the source code and no clear direction by the development team
- The project gets replaced by some shiny new thing (either by Google or someone else)
I think Flutter will go the way of so many other ideas pumped and dumped by Google and end up on the Google Graveyard.
What Flutter tries to accomplish, being a build-once release everywhere platform, is biting off more than they can chew. Compiling Dart (programming language) to HTML & CSS through an android inspired software SDK is just not going to be performant enough to meet current mainstream requirements. People tend to look for a more optimized and smaller footprint (Preact, Svelte, etc.) these days. Which brings me to my next point.
Next to Vue.js (with Nuxt), I see Svelte as the greatest leap forward in frontend tech in the past few years. With heavier Enterprise friendly frameworks like Ember.js and Angular on one end of the spectrum and very lightweight implementations like React on the other, Svelte (like Vue.js) tries to combine the best of both with unmatched performance and developer experience.
As mentioned by Richard Harris in his talk (highly recommend), Svelte is not a Framework but a compiler (technically a transpiler), that spits out a highly performant web app. The metrics outclass even Preact (smaller React implementation) by a large margin and offer almost native “in browser JS” performance.
This closes the gap between Native OS Development and Browser based implementations like Cordova or Electron.
With better alternatives gaining momentum, namely Vue and Svelte, I don’t see a reason why people should continue using Angular or React for upcoming projects. The developer experience and productivity is just so much better with the newer frameworks.
Demand for Apps and UIs for all sorts of touch-screen based devices will increase. Things like smart watches, smart TVs, all sorts of sophisticated home appliances or UIs in cars will become only more ubiquitous in the near future. How can we build all of those UIs? With web technology of course. We can reintroduce the well known Java slogan “Write Once, Run Everywhere”. Building a web app once, wrapping it with a browser view (again, Cordova, Electron etc.) and deploying it anywhere is just the most sensible thing to do. Less time spent developing for different platforms, less time to market overall.
WebAssemply aka WASM enables the introduction of other widely used programming languages like C++, Python or Rust (incl. their respective package ecosystems) into the browser. Although the project is relatively young (1.0 was just shipped to most major browsers), there is great potential with lots of companies and people in the open source community working on implementations. I’m sure we’ll see much more of this in the upcoming year. For more information on the project, check out [https://webassembly.org/] (https://webassembly.org/).