Run Java natively in the browser with WebAssembly

October 2015

You can run Java natively in the browser with WebAssembly. At least if the news of a new binary format supported by major browsers called WebAssembly pan out well.

The transpilation from derived languages such as TypeScript that adds features missing in native JavaScript will have a viable alternative in the future.

The quest for strong typing

Lot of people that are coming to the JavaScript world from typed languages such as Java or C#/.NET tend to miss one thing. That is compile time checking and strong typing. Strong typing catches your mistakes and makes your code work well with others.

It makes easier to develop software as a team. Your stuff works with the code your coworker wrote or the team next door wrote. It's the compilers job to catch mistakes of misspelled method names and to warn when string is suddenly used as an integer.

Strong typing clearly divides opinions. Some people like it and some people don't. But up to this point for the folks that do like it, there has not been many options. TypeScript is the closest thing you can get but it still quite doesn't get you there all the way.

JavaScript no longer required to leverage browser native

The trend has been for years to move from the desktop to the web. Mobile devices have their native languages, namely Objective-C for iOS and Java for Android. But if you wanted to develop modern rich web applications for the desktop browser you couldn't avoid learning JavaScript.

JavaScript can be quite a shock for people coming from traditional object-oriented programming languages such as Java or C#. It works, it has its idiosyncrasies and up to this point it has been the only choice if you wanted to develop browser native applications.

WebAssembly changes this completely. It allows you as a Java or .NET developer to stick to your guns and avoid learning the quirks of JavaScript. You can work with what you already know, and more importantly what your team already knows. You have one less language to learn and you get to keep strong typing!

Flash all over again

The critics state that WebAssembly looks like Flash all over again. The major browser are however behind this together.

The idea is to provide a compilation target that can be used to produce code that is interchangeable with JavaScript. It lives closer to the browser native and does not require any plugin to run like Flash does. Flash also was heavily focused on drawing and rendering graphics.

The wait starts

This is great news and WebAssembly as a technology will be something that will be followed closely. It can be potentially a game changer for web development. It allows the masses from traditional OOP languages to more easily transition into web development without leaving much of the loved tools behind.

Node doesn't wait for your database call to finish?

Node doesn't wait for your database call to finish?

Learn how asynchronous calls work and make your app run as you intended. Get short email course on asynchronicity and two chapters from Finish Your Node App.