This is the Future of Webdev. Crazy, Right?
--
Sorry, it’s not TypeScript or WebAssembly. It’s not even React or GraphQL.
What else it’s not? It’s obviously not JavaScript. It’s not Rust, not Go, not even Elm. It’s not Flutter or React (and I love React). I could go on and on, but rather than talk what it is not, let’s talk about what it is.
Oh, and if you’re a fan of fast and beautiful cars, you’ll appreciate this post even more!
Before discussing the future, let’s first talk about the past. And some of the biggest problems we’ve encountered in the world of web development (and software development in general).
It’s impossible to move forward without first understanding the past mistakes, and the lessons they taught us.
Outdated technology
Let’s start with the elephant in the room, the biggest problem we have. Most of today’s software is built with outdated technology. Would you still use a 25-year old computer today? Highly unlikely. Yet most of the programming languages (and web technologies) in use today were created a few decades ago.
Why is this a problem? The language designers of the past didn’t have the knowledge that we have today. The old programming languages were created with old computers in mind, in particular single-core CPUs. We’re reaching the end of Moore’s law, which means that the CPUs won’t be getting any faster from now on. The old programming languages weren’t designed from the ground up to take advantage of multi-core CPUs. Working with concurrency in Java/C++/C# (and many others) can become a nightmare — deadlocks and race conditions are almost guaranteed.
The old programming languages weren’t designed for immutability, which has demonstrated to be crucial for reliable multi-core software. Immutability results in fewer bugs, reduced complexity, and an overall better development experience.
You might argue that old languages like C++/Java/C# have improved. Yet in reality, they have not. They’ve only added new features. And the big problem is that the languages have to be…