Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

HTML5 needs to die, let's start over

Name: Anonymous 2016-03-27 20:20

Modern web boils down to downloading a blob of code written in extremely contrived language not too far from cobol - and executing it in an adequately complex software diminutively called the "web browser". A behemoth operating system comprising of layers upon layers upon layers of cruft. There was this glimmer of hope with asm.js, pnacl and most recently wasm, but all is lost because those are yet again additional layer on top of browser, just more cruft, and none of it actually executes native code, just some IR.

Can we, the most accomplished programmers, stand idly? We reinvent the wheel every day, so let's talk big - reinvent the web. Consider putting "internet browser" on a radical diet.

From the top perspective, it'd be a stripped down VM like qemu-user. Browsing consists of loading and executing an image within it - a model slightly resembling mobile apps.

This is the initial pitch:

* Web pages, or "apps" are just native code running in sandbox. The publisher has to supply binaries for all architectures, not this IR compiler crap (useless, java-esque abstraction). All modern OSes support fairly lightweight sandboxing [1].

* The sandbox environment is otherwise not that different from pnacl - there is a broker process for upcalls to the host OS. opengl/directx, audio, keyboard, mouse, limited filesystem, network is exposed. It is posix compliant to a degree - threads, signals, processes, IPC within sandbox.
This is to make deployment of posix software and scripting languages trivial.

* Cross-linking 3rd party resources within an app can be done both in-VM (basically a shared library), or isolated [3].

* What makes this a browser is simple overlay p2p client to distribute the binary blobs (ipfs-like). Even the UI chrome, is just an app "shell", running in the VM.

Such a browser would be extremely thin, perhaps under 10k loc, yet it could do everything modern browser does. Yes, even browsing web - that would entail web browser software, say chromium ported to run within the VM. It could do far more, though - run win32 or android software, provided an emulator could run within the VM. The idea is that all the cruft would shift towards app publisher If someone wants to publish a slow blob of behemoth code, let them do it - but don't have that as an implicit part of the system.

Open question is what to do with DNS, popularly known as Zooko's triangle [2].
GNUNet and Namecoin resolve this with hashcash, but that introduces problems of its own (average joe not having the hashpower to register his domain in gnunet, rampant bitcoin-like speculation in the case of namecoin).
Personally I'd go with straight DNS SRV records (name to DHT hash), or some sort of custom cabal, say, like how Tor consensus cabal works, acting like DNS or usenet TINC so that it's not dependent on the fickle ICANN.

I'd like to hear some ideas you have, especially if you have some experience in p2p design.

[1] seccomp-bpf on linux+android, AppSandbox on OSX, ProcessSystemCallDisablePolicy on Win8 onwards. Gutted QEMU (modulo drivers) needed for fallback on win7/xp.
[2] https://en.wikipedia.org/wiki/Zooko%27s_triangle
[3] http://www.angryredplanet.com/~hackbod/openbinder/docs/html/

Name: Anonymous 2016-03-27 20:35

What's wrong with IR? Honest question, if I wanted to program for native I'd just write something in C.

Name: Anonymous 2016-03-27 20:39

>>2
Complex implementation, because suddenly you need to include whole optimizing codegen. If you're somewhat familiar with pnacl, it's not included in mobile chrome because how heavyweight whole llvm is. The whole point is to be able to write in C, (if you choose to), but use web-like deployment.

What's wrong with publisher compiling for 5 commonly used architectures, and client downloading only the copy he needs?

Name: Anonymous 2016-03-27 20:52

Name: Anonymous 2016-03-27 21:45

>>4
Yes, this thread is meant as less memetic offshoot, "what about not using ALGOL 68, Rust or Javascript"

Name: Anonymous 2016-03-27 21:52

I want to move to my own planet, make my own computer, and make all the software for it myself. I'm the only one that can do it right.

Name: Anonymous 2016-03-27 22:13

>>1
HTML5+associated technologies are intended as a presentation layer of your application. Are there any other technologies that allow people to develop the presentation to distributed applications as easily as HTML technologies do? XAML and WPF technologies are one example of this.

Name: Anonymous 2016-03-27 22:59

>>7
HTML5+associated technologies are intended as a presentation layer of your application.

Not since 2009 when we entered into the thin client era.

Are there any other technologies that allow people to develop the presentation to distributed applications as easily as HTML technologies do?

Mobile?

Name: Anonymous 2016-03-28 5:04

>>3
The whole point is to be able to write in C, (if you choose to), but use web-like deployment.

What in all the fuck is wrong with you that you can't see the goddamn problem right in front of your fucking face? How the shit are you supposed to "use web-like deployment" for your "C, (if you choose to)", smartass?

Name: Anonymous 2016-03-28 11:54

>>9
By putting a C interpreter in web browsers, duh.

Name: Anonymous 2016-03-28 12:30

>>10
Check 'em

Name: Anonymous 2016-03-28 14:24

>>7
TECHNOLOGY5+associated technologies are intended as a technology technology of your technology. Are there any other technologies that allow technologies to develop the technology to distributed technologies as easily as TECHNOLOGY technologies do? TCNL and TEC technologies are one example of this.

Name: Anonymous 2016-03-28 15:34

>>9
By using the web browser model of using URL as an input and getting a document and a (shitty) program an an output, maybe. He doesn't say anything about how layout and presentation would be done in his model though. I'm sure as hell not using C for that, but using HTML and CSS would be even worse.

Name: Anonymous 2016-03-28 15:52

>>7
Where the fuck are you pulling all those buzzwords from? Just use s-exp based syntax like the one in the thread linked by >>4-san.

Name: Anonymous 2016-03-28 17:54

At least HTML5 is better than its predecessors. Once it gets to HTML10 it might have a chance of starting to approach "good".

Name: Anonymous 2016-03-28 23:05

the internets shit and it can't be made good

real operating systems are designed to prevent networking

Name: Anonymous 2016-03-29 0:00

>>14
Buzzwords????

Name: Anonymous 2016-03-29 16:47

>>1
What you're proposing has already been done. Remember Java browser plugins? Yeah. Or Silverlight (C#). The end result is massive security risks that are nearly impossible to fix in a general case.

Native code will never, and shouldn't, run in a web browser.

Name: Anonymous 2016-03-29 17:05

>>18
Neither Java nor Silverlight are native code, dipshit.

Name: Anonymous 2016-03-29 17:12

>>19
ActiveX
NaCl

Name: Anonymous 2016-03-29 17:19

>>19
CLR and Java bytecode are one degree away from native code. It's basically portable assembler.

Name: Anonymous 2016-03-29 17:25

>>21
ANY byte coded language is "basically portable assembler". The point is still meaningless. Either we're talking about native code or not, and CLR/Java/JavaScript/whatever are still not native code. And >>1 is still a clueless nigger weeaboo.

Name: Anonymous 2016-03-29 22:21

`Native' is a social construct.

Name: Anonymous 2016-03-30 14:16

>>19
>>20
>>21

Indeed ActiveX would come closest in terms of power - however activex does not run in a sandbox (and neither does stuff like java, for all intents and purposes). Thats why it was abandoned, as it was insecure by design.

The tldr is to keep the browser code reasonably compact to minimum viable implementation. Download shit, execute client side. How hard that can be, do we really need 2M+ loc operating system for that? Thats what modern browsers do. Why not make it simple, yet much more powerful than modern web?

>>22
I kinda hoped to lure in cudder with the promise of pure, undadultered x86 assembly. His assesment, >clueless nigger weeaboo< is most excquisite!

Name: Anonymous 2016-03-30 15:26

>>24
optimize you are quotes

Name: Anonymous 2016-03-30 16:06

>>24
Don't call me Cudder. x86 asm is shit, and the biggest problem with native code is portability more than security, IMO.

Name: Anonymous 2016-03-30 16:07

>>25
Optimise you are grammar

Name: Anonymous 2016-03-30 16:09

>>24
and neither does stuff like java, for all intents and purposes
They do, just use a good implementation.

Name: Anonymous 2016-03-30 20:12

>>24
A bytecode with a flat memory model would be more practical than what you're asking. It won't be like JVM or .net, more like LLVM.

Name: Anonymous 2016-03-30 20:45

>>24
If you make the model "simple", then you push all the complexity on the programmers to do anything beyond Hello, World!.

Computers are supposed to be the ones doing the work, not us.

Name: Anonymous 2016-03-30 20:47

>>28
The actual introspection APIs demanded by the spec are insecure. Java itself is broken from at least a security perspective.

Name: Anonymous 2016-03-30 20:53

* Web pages, or "apps" are just native code running in sandbox. The publisher has to supply binaries for all architectures
One point in and it's already such unbelievable trash that I feel sick. However, the underlined part makes me hope that IHBT.

Calling this enormous pile of shit simple because it offloads all complexity into the OS and a nebulous sandboxing mechanism (RIP if that thing ever has a bug) is just the icing.

Name: Anonymous 2016-03-30 21:00

Given just a native code container, every single fucking page/plugin/whatever will carry with it its entire own instance of an OS, or at least some form of developer platform that doesn't just start from fucking machine code. This is really laughable bullshit.

Name: Anonymous 2016-03-30 21:01

>>31
What is your reasoning?

Name: Anonymous 2016-03-31 2:31

>>1
I have a better idea. Kill html and http and just serve postscript/pdf/troff/whatever over ftp.

Name: Anonymous 2016-03-31 11:43

>>35
How is that better?

Name: Anonymous 2016-04-20 8:24

>>32
RIP if that thing ever has a bug

But isn't that like every browser bug ever?

>>30
This is why library linking/IPC is mentioned. Obviously reusable components would be written once and referenced as a separate component. In same way how you can request cross domain jquery and not write it from scratch.

One point in and it's already such unbelievable trash that I feel sick. However, the underlined part makes me hope that IHBT.

Care to elaborate? Is there really need for domain-specific IR (jvm, llvm-pnacl..)? The complexity of the sandbox is intentionaly reduced ad absurdum so that it is humanly possible to audit the hypervisor code in whole-picture manner.

Perhaps in future, there will be thousands CPU ISAs in use? But in practice, the number is like 5. In the event there is a new ISA, yet author does not bother to publish binary, dynamic translation would be used (it is necessary for sandbox fallback anyway) - which is, mind you, a form of IR.

Because it offloads all complexity into the OS and a nebulous sandboxing

In the common case, yes, the reason being performance and simplicity. But not necessarily, because not all host OSes support real sandboxing. Presumably there would be QEMU fallback, fast and secure only as qemu could be.

Is answer to a good sandbox really writing even more complex sandbox?

Name: Anonymous 2016-04-20 8:38

>>37
You sound like you're actually taking this idea seriously. You better go see a doctor. named Kevorkian

Name: Anonymous 2016-04-20 8:41

>>38
Don't worry, my dayjob of "writing" Android/iOS shovelware comes pretty close to assisted suicide

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List