What’s new in the world of WebAssemblies. Rust is better than Python?

WebAssembly technology was not supposed to be a mainstream thing. Idea of making high performance low level environment inside browser virual machine was somewhat quirky but promised a lot in the end. We could recompile any code from any language into more suitable low level instructions instead of using one more layer of Javascript. Good in theory. Practice is a bit rough. I personally don’t know any of popular framework that would use WebAssembly underneath as a runtime. There are many experimental projects and interesting ideas around it. Will WebAssembly live up to its promise and potential?
Here’s the talk from Steve Klubnik on this:

Things are developing pretty fast these days. Rust became a mainstream language. Originally developed as a replacement for C++, more on system side, than to be an application oriented language, Rust evolved into a mature ecosystem. Package managers and frameworks have been built and devs started looking at it as a replacement for more generic script languages. You can argue that statically typed language is not a replacement for, say, Python, and you will be right. But Rust still can be a good alternative to Python. Here’s a talk from Owen Synge why you should consider Rust. I found his arguments pretty compelling. One of them is a garbage collector implementation differences. Rust is using reference counting mechanism which does not require a global lock for the collector. In multi-process and threaded environment it’s a big advantage. Rust is indeed more performant.

https://www.youtube.com/watch?v=IYLf8lUqR40

Free Icons for Web Designers

Speaking of the web design. If you’re looking for a free vector art (mostly icons), you can look at this list of sources, which was put together by this guy:
https://habrahabr.ru/post/276249/
Text is in Russian, but self descriptive and does require translation really.
Thanks to Sergey Vakulenko for the find!

asm.js

Idea of using Javascript as an intermediate for different programming languages is not new. I can say exact same thing about attempts to make browser runtimes closer to hardware. There was a big push toward JVM and Java in general at one point. Then Google did a splash with NaCl (which stand for Native Client). Developers needed a high performance secure environment to build efficient browser apps and have a path of porting existing apps from C/C++ realm to Javascript. asm.js supposedly is going to solve this issue by introducing a Javascript library and cross-complier from other high level languages into asm.js.
And this attempt is more serious than previous ones. For starters, it’s supported by Javascript godfather Brandon Eich.
Here’s his interview on this matter:
https://medium.com/javascript-scene/why-we-need-webassembly-an-interview-with-brendan-eich-7fb2a60b0723

From one side, this does not sound like a best solution for porting high performance apps like games (more exact, game engines), but since W3C will never come to agreement on lower level solutions, asm.js AKA Web Assembly may be the best compromise of the moment. It’s going to be based on many hacks and quirks. For instance, they virtually are going to disable GC. It did not take 20 years for web developers to understand that GC is a… garbage that they have to deal when it comes to speed optimization. There will be hacks around offline downloadable binaries or something like that. Otherwise, loading big games will be going to be a major pain. Anyway, it looks like major game engine developers are on board. Unity and Unreal already got prototypes and whole thing looks more promising than NaCl initiative.

Here’s another good article about Web Assembly:
http://ejohn.org/blog/asmjs-javascript-compile-target/

Proudly powered by WordPress
Theme: Esquire by Matthew Buchanan.