"webkit" entries

JavaScript shares its ubiquity

WebAssembly changes the rules of the JavaScript game.

engineroom

I’ve never seen a technology lay down its primary advantage and prepare to hand over its ubiquity. I’m proud of JavaScript for doing this, and I’m sure that in the long run this will be good for the Web, but in the meantime I’m wondering where WebAssembly will take us.

Brendan Eich’s announcement of the effort makes clear that this builds on the earlier asm.js (and Google’s similar PNaCl), a highly efficient JavaScript subset that compilers of other languages could target. Eich enjoyed using Unreal Engine for demos of the speed asm.js could provide, but compiling to JavaScript, even weird JavaScript, still needed to go through a JavaScript parser. (Other approaches compiled to more comprehensible but less optimized JavaScript.)

WebAssembly – wasm – skips that final step, producing a binary format, technically a compressed AST encoding. Unless you’re going to be building compilers, you can compare wasm to a bytecode system. There is a text format for debugging, but the binary emphasis yields substantial extra speed as it skips parsing and minimizes decompression.
Read more…

Four short links: 29 July 2010

Four short links: 29 July 2010

Non-Profits, UK Legislation, Mobile Web Variation, and Scaling

  1. How to Raise Funds for Non-Profits (Joi Ichi) — One organization sent a message to all of their donors during the Haiti crisis asking them to give to an NGO that they had vetted. They didn’t ask for any money for themselves. This had a hugely positive effect and the donors trust in the group increased. Wallets aren’t zero sum.
  2. legislation.gov.uk — very elegant legislation system for the UK. Check out the annual analysis, for example. (via rchards on Twitter)
  3. The Great WebKit Comparison TableSo far I’ve tested 14 different mobile WebKits, and they are all slightly different. You can find the details below. (via Andrew Savikas)
  4. Node and Scaling in the Small vs Scaling in the Large (al3x) — In a system of no significant scale, basically anything works. The power of today’s hardware is such that, for example, you can build a web application that supports thousands of users using one of the slowest available programming languages, brutally inefficient datastore access and storage patterns, zero caching, no sensible distribution of work, no attention to locality, etc. etc. Basically, you can apply every available anti-pattern and still come out the other end with a workable system, simply because the hardware can move faster than your bad decision-making.