[dev] rebooting the web (it was: surf rewrite for WebKit2GTK)

From: Daniel Camolês <bigatojj_AT_gmail.com>
Date: Wed, 29 Oct 2014 00:41:06 -0200

2014-10-28 22:04 GMT-02:00 M Farkas-Dyck <strake888_AT_gmail.com>:
> VM is an option, tho a less versatile one. We could use capabilities
> where available and VM elsewhere.

Well, that's already more than twice the complexity before it even
started to be written.

I researched a bit on VM's and distributed systems, and there are some
very interesting things happening. Harvard developed RockSalt[1], that
is a formal code verifier written in 80 lines to guarantee that code
is safe to be executed. The verifier itself have been put to formal
verification and up to the time of the publishing of the link below,
no breaches had been found.

One huge disadvantage of running native code would be portability. You
would need to cross compile and test on several plataforms to be able
to ship software. It's highly flexible though. Google NaCl[2] follows
this path, but its security problems were one of the motivations
behind RockSalt. One big advantage is the near-native speeds: they
claim about only 5% of overhead when compared to native.

NaCl is currently only implemented in Chrome; Mozilla doesn't want
anything to do with it. They have asm.js, that is another way to run
C/C++ compiled in the browser. But asm.js is 2x slower than native
code.

If we are talking about rebooting the web, then why point out these
things that run from the browser? Because once such an alternative
proves to be better than traditional web developing, it would be a
matter of implementing the corresponding technology outside the
browser and ditch all that garbage. With good planning a migration
would be possible.

Portability is a big issue, since today web browsers allow for media
and apps distribution to a lot of different plataforms. Any solution
that is worse than that have a lot less chances to win.

Then there is the InfernoOS[3], which runs on the Dis virtual machine.
There is a 50% slowdown when compared to native code, what is a lot
better than asm.js. It is a work originated on Bell Labs, with a lot
of high-quality man-hours behind it, and it has been ported to a lot
of systems and architectures. In the days of Internet Explorer 4.0, it
was even able to run as a browser plugin. And by the way, it uses 9P
as its protocol to access local and remote resources.

I've also found a couple of posts[4][5] talking about this with some more links.

Maybe porting Inferno to run from inside modern browsers is the way to
start the revolution?

References:
[1]http://news.harvard.edu/gazette/story/2012/07/nacl-to-give-way-to-rocksalt/
[2]https://en.wikipedia.org/wiki/Google_Native_Client
[3]http://en.wikipedia.org/wiki/Inferno_(operating_system)
[4]http://alexdanilo.com/?p=20
[5]http://alexdanilo.com/?p=24

>> Well, I can't say that to the grandma who wants to see her grandsons
>> pictures on the Internet.
>
> No, but you can install a trusted graphics viewer program.

That's the current software distribution model, with all its problems.
That's not what we want.
Received on Wed Oct 29 2014 - 03:41:06 CET

This archive was generated by hypermail 2.3.0 : Wed Oct 29 2014 - 03:48:07 CET