Predictions for 2019 from the Mind of a JavaScript Developer

2018 was a amazing year for the web and technology in general, let’s reflect on some of the highlights… Nah, let’s not dwell on the past and see what’s in store for 2019.

1. Web Components — For Real this Year

Web components have been “cutting edge” and poised to take over the web since 2012. So (A) why is this taking so long? And (B) why is 2019 any different?

To understand why this is taking so long, I recommend reading the Broken Promise of Web Components and Rob Dodson’s Response. The story in a nutshell is that web components took a long time standardize, meanwhile React and other frameworks built rich ecosystems to fill the void.

Why is 2019 is a different story?

Exhibit 1: Browser Support

Web components (shadow DOM, custom elements, etc) are now supported natively in Chrome, Firefox, and Opera, mostly supported by Safari, and MS Edge is throwing in the towel and switching to Chromium. There is of course a polyfill that can be loaded asynchronously on unsupported browsers.

Exhibit 2: Tooling and Supporting Libraries

Custom elements are still pretty impractical to build from scratch — no data binding, state management systems, style guides, an so on. Fortunately, almost all popular frameworks can be used to build Web Components. In addition, new tools like Stencil and LitElement are treating native web standards like first class citizens.

BTW, I’m not just talking about this, I’ve been building my next web app — Fireship.io — almost entirely with Angular Elements. Having the full power of Angular without it taking over the DOM feels very liberating.

2. React, Angular, and Vue Continue to Reign

All three frameworks grew significantly in 2018. I recently analyzed NPM downloads, web traffic and jobs for the three frameworks. React is on top, Angular second, and Vue is a distant third (but growing the fastest). I doubt much will change here and have already started working on my next React vs Angular vs Vue video slated for release in Nov 2019.

Coming to a Framework Near You in 2019

  • React is getting Hooks, allowing you to build stateful components without a class definition.
  • Angular is getting Ivy, making it smaller, faster, and more flexible.
  • Vue3 is being rebuilt with TypeScript.

3. Speaking of TypeScript

Easy prediction — TypeScript will continue grow in 2019.

4. GraphQL — Cool, but will not Replace REST

GraphQL was easily one of the most hyped-up tools of 2018 and it delivers a refreshing alternative to RESTful API constraints. While it can add a good deal of complexity to your backend code, it generally simplifies development on the frontend with automatic API Intellisense and expressive queries.

It pays the biggest dividends to products with (1) large relational APIs (i.e. Yelp!) that (2) may need to combine several data sources on a single request and (3) have multiple client apps that drive the development decisions. It was designed to solve Facebook’s query needs across complex graph-structured relationships after all.

Hopefully you see the sarcasm in this two-year old Tweet. This might not be the most popular opinion, but REST actually provides an elegant set of constraints that work very well for most APIs. In any case, GraphQL is an extremely innovative tool with a growing ecosystem resources and is set for more growth in 2019.

GraphQL.js download growth in 2018

5. Firebase will Release Something Amazing (probably more than once)

This one is hard for me because I know about some cool stuff in the pipeline via the GDE program, but have keep my mouth shut for now. All I can say is that Firebase will continue its pattern of releasing unique features that reduce your need for back-end complexity.

Features publicly hinted about Firestore include:

  • Auto Backups
  • Grouped Sub-collection Queries
  • Geo-location Queries

And Cloud Functions:

  • Additional Runtimes (Swift? Kotlin? Go?)

6. Web Assembly & Rust

The web is ready for Web Assembly. Apps like Figma and AutoCAD are already providing amazing native-like experience in the browser. We should start seeing a steady stream of new WASM apps in 2019. It represents a huge opportunity for native developers, who can make their software available to a larger audience and with far less friction.

Don’t expect it to replace JS anytime soon (or ever), but do expect talented WASM developers to be in high demand over the next few years.

This all sounds cool, but how do you — the average JavaScript developer — get started with WASM? Your options are C, C++, and Rust. I’m getting started with Rust here and I hope to share my learning experiences with you on YouTube in a few months.

7. Flutter + Fuchsia = Future?

Similar thoughts crossed my mind when I first heard about Flutter — makes no f’ing sense. Why does Google care so much about a cross-platform mobile app framework, one written in Dart no less? Is Flutter just a bird without wings, or could there be more to this story…

There is an open secret about Flutter — it is poised to become the platform used to build universal native apps that run on Android, iOS, Google Home Hub, Wearable/IoT devices, Chrome OS, and of course Fuchsia. Never heard of it? Fuchsia is Google’s next-generation OS that is rumored to replace Android and run most products under the Alphabet umbrella by the early 2020’s.

This quote from the Fuchsia docs is pretty telling:

Flutter is a functional-reactive user interface framework optimized for Fuchsia and is used by many system components. Flutter also runs on a variety of other platforms, including Android and iOS.

Flutter is not about Android or iOS — it’s about Fuchsia.

If you learn Flutter today, you will automatically become a Fuchsia developer tomorrow. Not to mention, it actually delivers a beautiful developer experience from start to finish. Dart is easy to pickup if you know TS, Java, or C#. The framework is extremely well documented, testable, faster than RN or web hybrids, and integrates well with native code.

8. Serverless + The AWS Custom Runtime API

Today we live in the age of containers. Tomorrow we will live in the age of serverless.

Think about the electricity that comes out of your wall. It only needs to be present in the quantity and voltage that your gadgets require — no need to provision resources or configure settings at the power plant. Serverless is like electricity for code — just plug it in.

But their are some major drawbacks to serverless currently. (1) You have no control over the runtime and (2) vendor lock-in.

The AWS Custom Runtime API represents the solution to these issues. It provides a practical, non-containerized solution to run serverless architectures in any programming language or environment.

This obviously solves problem #1, but could also prevent vendor lock-in if other clouds support similar APIs (they would be crazy not to). In brief, we are headed towards a world where scalability and server management are non-existent issues for most systems.

9. Decentralized Apps (Dapps)

I called the peak of Bitcoin last year at ~19K, no srsly I did, and expect it’s price to continue trending closer to zero from here. However, crypto still represents untapped potential for the entrepreneurs who can manage to build decentralized products that remove the risks of partnering with tech mega corps, i.e FAANG.

One of the major risks of developing a product for Apple, Google, Facebook, or any 3rd party is that they can terminate your business in an instant, usually without notice or recourse. You’ve surely heard of YouTube channels being demonitized, App Store apps being banned, and so on. Decentralized business models do not carry this risk.

Somebody is going to build a meteoric dapp in the next year or two that will open the flood gates for the next generation of wealth creation and innovation on the web. Somebody just needs to show the world that decentralized apps are possible in a big way and we have the next gold rush on our hands. This might happen in 2019, but then again, it may take a few more years.

10. Machine Learning

ML is getting faster, smaller, and more accessible to the average developer. But the AI Godhead will not emerge in 2019 — you still have time to appease the machines by embracing deep learning and integrating it into your apps.

Summary

Let’s recap my predictions and throw in some other random macrotrends while we’re at it.

Trending Up📈

  • Web Components.
  • Web Assembly and Rust.
  • React, Angular, & Vue.
  • TypeScript.
  • Cypress End-to-End Testing.
  • Blockchain for real-world products, i.e. Dapps.
  • Serverless.
  • Flutter.
  • Video Content. YouTube, Instagram, and TicTok.

Trending Down📉

  • Apple and the the iPhone.
  • Bitcoin. Until people have a practical reason to use crypto it’s not going to 300K.
  • Tech Stocks. Too many recent IPOs made big gains in 2017/18, but operate deep in the red. Stocks are usually the first domino to fall in a bad economy, so keep an eye on this trend.
  • Facebook . Scandal, after scandal, after scandal. Just to name a few.
  • Snapchat and Twitter are also not looking so hot.