Musings on the future of web tech

I am a web developer. I make my living coding JavaScript stuff and interacting with the DOM to show said stuff in pretty colors with wacky animations. I design visual interfaces for people to interact with and perform some kind of task. Most of the time said task is just showing information in a useful way (this blog mostly shows what I write in a friendly format).

As a result of my career path, I’ve gained some insight into what the web is about and where web technologies are headed. I don’t pretend to be any kind of expert in the matter but I am invested into what this thing is all about and I’d like to talk about it.

Are we cool?

We cool.

Alright, so let me start by saying that the DOM and by extension, CSS, is the worst piece of technology that I’ve ever had the displeasure of working with.

It’s a mess and will continue to be a mess because we don’t like breaking stuff. I mean, I like the web as a user and I’d like it to not break into a pile of garbage all of a sudden. Whole economies would collapse, companies would go bankrupt, etc, etc.

So, we are stuck with the DOM for now and will continue to be stuck with it at least until we develop an alternative. What would that look like? It will probably be very similar but more consistent and designed specifically for the needs of a true interactive application instead of just a markup-based technology directed at showing documents.

In the mean time, JavaScript is going to evolve rapidly in the coming years. ES6 was a welcome change of pace that made javascript development tolerable even though it didn’t fix many of its glaring flaws. Again, can’t fix those without breaking pretty much every web page in existence.

But even though we are rapidly gaining features and new syntactic sugar to play with in JavaScript, that advancement is not going to be enough on its own. JavaScript is going to need to evolve in features more than syntax in order to allow other languages to compile into Javascript. In fact, we are currently creating new supersets and subsets of javascript for different needs at a spectacular rate. Asm, CoffeeScript, PureScript, Flowtype, JSX and Typescript, to name a few.

At the end of the day, JavaScript by itself will not be able to evolve fast enough. The browser is going to need to accept bytecode instead of only a scripting language. JavaScript will continue to evolve but this step is necessary for other languages to truly join the party and accelerate the rate of innovation.

Tons of new languages will appear and old ones will be retrofitted to work with this new bytecode platform.

I suspect that after half a decade of experimentation and rapid evolution we’ll reach a consensus as to the new default language for web development. A language that is probably more functional, with strong typing inference, with a more consice and consistent syntax and with a better number implementation.

At the same time, web browsers will become fully fledged sandboxes through WebAssembly. Meaning, web pages will truly become web applications. They will let the user “install” said applications to the machine (like progressive web apps) and they’ll be as performant as bytecode will allow. They will also be accessible offline and will be geared towards truly replacing the current ecosystem of computer applications and phone apps.

Just like with mp3s and mp4s, new hardware chips will be developed to exclusively handle web apps for dedicated small devices.

The web is dead, long live the web.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s