Slashdot Mirror


Chrome To Deprecate PNaCl, Embrace New WebAssembly Standard (tomshardware.com)

An anonymous reader quotes Tom's Hardware Google announced that its Portable Native Client (PNaCl) solution for making native code run inside the browser will be replaced by the new cross-browser web standard called WebAssembly... Even though Google open sourced PNaCl, as part of the Chromium project, Mozilla ended up creating its own alternative called "asm.js," an optimized subset of JavaScript that could also compile to the assembly language. Mozilla thought that asm.js was far simpler to implement and required no API compatibility, as PNaCl did. As these projects seemed to go nowhere, with everyone promoting their own standard, the major browser vendors seem to have eventually decided on creating WebAssembly. WebAssembly can give web apps near-native performance, offers support for more CPU features, and is simpler to implement in browsers and use by developers.

108 comments

  1. All for mobile by Anonymous Coward · · Score: 1

    None of this matters a bit to desktop users.

    1. Re:All for mobile by DontBeAMoran · · Score: 1

      Right, become desktop users don't use browsers.

      --
      #DeleteFacebook
    2. Re: All for mobile by fotang · · Score: 1

      Web applications are not just for mobile. We've abandoned several applications because the browser no longer supports Java applets. Perhaps Webassembly will fill the gap.

    3. Re:All for mobile by DontBeAMoran · · Score: 2, Funny

      "become"? Don't you mean "because"? Stupid moran.

      --
      #DeleteFacebook
    4. Re:All for mobile by DontBeAMoran · · Score: 1

      Shut up, you're the moran.

      --
      #DeleteFacebook
    5. Re:All for mobile by Anonymous Coward · · Score: 0

      are you commenting on your own post?

    6. Re: All for mobile by Anonymous Coward · · Score: 0

      Or you could just code for a mobile app platform and stick to it.

      Web apps, and paticularly the devices trying to be a 'web device' (Palm pre, moz phone, etc, etc) always fall flat on their face. Nobody wants web apps. Everyone is moving away from desktops and web browsers. Don't stick your app in a web browser on a phone, or you risk ending up with a bag of shit.

    7. Re: All for mobile by tepples · · Score: 1

      Or you could just code for a mobile app platform and stick to it.

      I'll consider it once iOS becomes self-hosting.

      Nobody wants web apps.

      Speak for yourself, egg.

      Everyone is moving away from desktops

      The only way I know of to build and package apps for iOS is through the macOS-exclusive app Xcode. So how do you "just code for a mobile app platform" without a desktop Mac or a MacBook, which runs the same applications as a desktop Mac?

    8. Re:All for mobile by K.+S.+Kyosuke · · Score: 1

      Maybe it's the elusive synonymous coward?

      --
      Ezekiel 23:20
    9. Re:All for mobile by DontBeAMoran · · Score: 1

      You've commented on your own posts in the past, so you can shut up too.

      --
      #DeleteFacebook
    10. Re:All for mobile by Anonymous Coward · · Score: 0

      Haha! I'm absolutely legendary for it.

    11. Re: All for mobile by Anonymous Coward · · Score: 0

      Perhaps you are right.However, my use case is as follows:
      We verify users using various modalities (fingerprints, etc). One cannot possibly write and distribute a native app for each and every supported OS. Therefore, we simply used a web application and published the URL. When java applets were still supported, they provided access to the client hardware. (Granted, one still had to install additional OS software in some cases, but that was a one-time effort) With java applets gone, the only usable devices accessible from the web browser, are the photo camera and the microphone.

      With Webassembly, one might eventually be able to write device code that'll provide some access to the hardware. Something such as direct access via WebUSB.

    12. Re: All for mobile by tepples · · Score: 1

      One cannot possibly write and distribute a native app for each and every supported OS.

      Correct. That's why you write your native application for one operating system and hire five contractors to port your native application to each of the other five operating systems.

    13. Re:All for mobile by Anonymous Coward · · Score: 0

      Am not.

  2. Re:More vulnerabilities by OrangeTide · · Score: 3, Informative

    WebAssembly is a byte code for a virtual machine. It's not native.
    PNaCl is a byte code for a virtual machine, with an interfaces based on an earlier native virtual container (NaCl).

    these are secure if virtualization is complete. but all known implementations are still susceptible to row hammer as it's too difficult a problem to solve for VM implementers.

    --
    “Common sense is not so common.” — Voltaire
  3. Interesting related reading by Anonymous Coward · · Score: 4, Informative

    WebAssembly: Mozilla Won (Not a put-down to the excellent Chrome developers, but acknowledging the massive and important contribution Mozilla made here.)

  4. not a chance by Anonymous Coward · · Score: 0

    fuck Mozilla and Google for obfuscating the web, why the fuck would you want to run assembly in the web browser ? unreadable shite that malware will exploit instantly, performance is just a bullshit excuse, obfuscation and a new era of exploits, we just got rid of binary bullshit ala Flash et al, now you want to replace that with another binary format ? fuck off

    1. Re:not a chance by K.+S.+Kyosuke · · Score: 1

      ...maybe you could educate yourself first on what is the purpose of this? It's not actual assembly, by the way; the name is a bit of a misnomer, admittedly.

      --
      Ezekiel 23:20
  5. Browsers have gone too far. by Anonymous Coward · · Score: 2

    It's time to go back to Web 1.0, back when web sites could be used on Megabytes of RAM and just 56K modems. Modern sites have become so morbidly obese with HTML5 and autoplaying media that even my computer with 16 Gigabytes of RAM slow down. This Web assembly will be used to create even more bloated web sites with adblock defeating adverts and tracking. Firefox has jumped the shark too, with Version 57 being the death of "classic" Firefox.

    1. Re:Browsers have gone too far. by tepples · · Score: 0

      Would you prefer to have to install a separate native executable for each Internet-based application you use, provided it's even available for your operating system? How would something like YouTube work? Would you add the cat videos you want to watch to your cart, fill in your address, and then YouTube would burn them onto a DVD-R for you?

    2. Re:Browsers have gone too far. by Anonymous Coward · · Score: 0

      I'd prefer a floptical disk, but yeah, you nailed the gist of it.

  6. Nope. by Gravis+Zero · · Score: 1

    I'm looking forward to the next hit browser that won't support javascript for just any ol' page and when it does, it uses an interpreter engine for increased security. It may require a new standard which means the W3C may have to fall (since they are backed by people pushing increasingly intrusive tech).

    --
    Anons need not reply. Questions end with a question mark.
  7. JavaScript enhances some web applications by tepples · · Score: 4, Informative

    We should be going the opposite direction and eliminating JavaScript altogether.

    Though I agree with you and others that JavaScript has been abused, I disagree that the web ought to throw the proverbial baby out with the bathwater. In some cases, JavaScript dramatically improves the user experience in web applications. It makes others possible in the first place.

    Say you want to let a user fill out a web form, but you don't want the poor experience associated with having to fill out the entire form and then perform a form submission and full page reload to catch the most common entry errors. The common way to improve the user's experience is by sending a short script that prevalidates the entries before the server validates them authoritatively, letting the user fix things before they're submitted.

    Say you want to offer a chat service, where users send short strings of up to 100 characters or so to a channel and other users in the same channel receive them. You might consider putting up an IRC server, but your prospective users lack privileges to permanently install an IRC client on the devices that they use. You might try to do this as a web application without JavaScript, but you'll have to rely on users remembering to repeatedly click a "Check for New Messages" button to reload the iframe containing recent messages sent to a channel, which is a poor experience for users. In this case, the least bad option is a web application with a script that waits for new messages to arrive through a WebSocket and appends them to the list of recent messages.

    Say you want to develop a real-time video game and allow members of the public to play it, but Valve, Apple, and the major console makers have turned your game down for one reason or another. So instead, you decide to offer the video game as a web application. The only interactivity possible without script is a form submission followed by a full reload of a page or iframe, but that's not possible for a real-time game. Thus script is again least bad.

    If you're not convinced, I have more examples.

    1. Re:JavaScript enhances some web applications by Anonymous Coward · · Score: 0

      No, what should be happening is javascript STOPS being developed, because the OOP nutballs keep wanting to turn Javascript into interpreted Java.

      A new language will never supplant the old one, and should javascript ever stop being supported, every website out there stops working. It's here to stay unless something better than "the web" comes out.

    2. Re:JavaScript enhances some web applications by vtcodger · · Score: 1

      If you're not convinced, I have more examples.

      No, I'm not convinced and no further examples are needed. If you can not secure the code -- and there is no chance whatsoever that you can -- the technology is not suited to an internet used for financial, business, shopping, voting, or command and control applications.

      If you can figure out a way to limiting scripting to harmless endeavors like entertainment, chatting and gaming, then fine. But depending on the judgment and good sense of web designers not to use the technology in inappropriate places simply isn't going to work. Judgment and good sense are qualities those folks totally lack.

      --
      You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
    3. Re:JavaScript enhances some web applications by tepples · · Score: 1

      The common way to improve the user's experience is by sending a short script that prevalidates the entries before the server validates them authoritatively, letting the user fix things before they're submitted.

      If you can not secure the code -- and there is no chance whatsoever that you can -- the technology is not suited to an internet used for financial, business, shopping, voting, or command and control applications.

      Nothing is perfectly secure. But catching errors early and providing immediate feedback may help make "financial, business, shopping, voting, or command and control applications" easier to use without running the risk of inadvertent incorrect input, as may rich application-specific input controls.

    4. Re:JavaScript enhances some web applications by b4_the_looking_glass · · Score: 1

      So the real problem is that the device is so locked down that the user can't install IRC. Shouldn't have bought it if you wanted any rights like that. If everyone knew better, eventually they would sell one you could install IRC on. If you are unprivileged because your employer won't allow you to install software, maybe you shouldn't be.

      There is already a program or two for chatting. Why do I need it in my web browser?

      The real problem is that most of us that know Javascript sucks, are not developing alternatives. And when we do, no one uses them because they don't know why Javascript sucks.

      People used to avoid computers because you had to learn in order to do something useful with it.

      Instead of moving people past the barrier of ignorance, we made them ignorant of what their device is doing. Then we locked them into a development cycle scam; so that they would buy new devices to replace ones that could/would likely still function great.

      The examples you give are examples created on top of other examples of doing things in a way that we don't need to. But if you want your service or game to get any attention, you have to get it where the people can reach it. So you have to provide it to them in a way that will likely require Javascript.

      Bad user experience, means bad consumer experience. Some of us don't want to pay for a locked in commercial playing device that refuses to function because someone decided it was time for you to buy a new one. I agree that this isn't a high quantity of the mass feeling this way. But maybe it should be.

      A good but dated computer bogged down with Javascript is a horrible reason to need a new device. Especially if you are just a consumer using it for socializing and shopping. It takes very little to get a device doing that. In the days of Win98 and XP it was millions of system tray apps and unseen services convincing you that you needed a new computer. Now its Javascript.

      Those of us that dislike Javascript and Webassembly are not learning fast enough that we need to establish and "USE" alternatives. But it will be like Linux was in the beginning. Only those similarly brave will understand why you just don't buy convenience.

      I don't see it happening anytime soon. But even those of us that are fed up are unlikely to subject ourselves to the barren waste land of efficient computing. Most of the younger hobbyists are starting of their adventures inspired by the very technology developments that are locking this into the commercial realm. Since the Internet and computing is more valuable to us than just a tool of commerce, we should be giving more attention to forking the industry. But because there isn't a lot of money in it, it isn't likely to happen. And if it starts, it suddenly becomes a a target of the industry it forked from. Money usually wins.

      Even if you limit Javascript down in scale, what it did will just be consumed by something like it. And the drive for innovation will always create insecurity in implantation. This is where the unix philosophy shines some. Do one thing and do it well. If you need some new function, only one piece of software needs to be there for that. Or we can tie a bunch together and load them all at once in one application. Then when ever we mess up a small part, the whole becomes weakened.

    5. Re:JavaScript enhances some web applications by DrXym · · Score: 1
      Javascript main issue is it started off as you suggested, validating fields, executing little snippets of code etc., and then transmogrified into the hideous run-everything-on-the-web language we all know and love today.

      An increasing amount of JS is now machine generated - transcompiled from something else. That might be something light like Typescript but it could also be Dart, GWT, C/C++ via Empscripten etc. Even with asm.js the performance still sucks and since it's machine generated code there is a desire to generate something more low level that gets better performance from a browser. PNaCl and asm.js were both efforts to achieve that, but neither hit the spot for various reasons.

      So wasm is definitely welcome news. Finally we have a low level bytecode supported by all major browsers which is potentially capable of being compiled to machine code (sandboxed of course) and running at near native speeds.

      Javascript won't be going anywhere, but perhaps with a high level and low level way of writing browser applications, it will return to what it was designed for instead of what it's become.

      What is more interesting to me is how this will affect mobile app development. Potentially someone can write an app that executes near-natively that works on virtually any mobile device with repackaging.

    6. Re:JavaScript enhances some web applications by Waccoon · · Score: 1

      JavaScript dramatically improves the user experience in web applications.

      If pages were to just validate data or swap out same-sized elements, then it might be okay. What they usually do is dynamically load content and perform transitions, which WRECKS the experience.

      My biggest beef with dynamic content is that it almost always changes the size of the page, screwing up your scroll bars, reading position, and generally just resulting in things jumping all over the place. I usually scroll pages by clicking and dragging the scroll bar, and with so much dynamic content all over the place, this makes just about every page unusable. Even when scrolling with the space bar or arrow keys, I struggle to read anything with articles skittering all over the place.

      It's the equivalent of someone pulling the carpet from under your feet, and when you fall on your ass and smash your skull against the floor, web developers stare down at you and shout, "Look how much we've improved your experience!"

      Don't even get me started about sluggishness, or standard browser navigation being broken (such as shift-clicking to open in a new window). Dynamic content screws up a lot of things, and doing it properly takes a lot of extra work. This all assumes that the pages are using the DOM correctly, too, as I still encounter pages that show up as blank, because now with so much executable code driving the loading of content, web pages can "crash" on certain browsers. Developers often use frameworks to create their pages, too, and most of the frameworks I've used are horrible, using every stupid trick in the book, and detect browsers by brand name, rather than capability. I have a hell of a time getting anything to work properly in Pale Moon, despite the fact it's basically Firefox with a different logo and telemetry removed (I've inspected the source code myself -- the changes are surprisingly minimal).

      Say what you want, but surfing the modern web is shit. There's a reason why I quit being a web developer, and all the stupid Javascript tricks I was expected to learn and implement was a major part of it.

    7. Re:JavaScript enhances some web applications by tepples · · Score: 1

      So the real problem is that the device is so locked down that the user can't install IRC. Shouldn't have bought it if you wanted any rights like that. If everyone knew better, eventually they would sell one you could install IRC on.

      The problem is that someone who offers a service and wants more than a negligible share of paying users has to interoperate with devices purchased by people who did not know better at the time they purchased their respective devices. Their prospective users are unwilling to buy a new device and a new Internet access subscription for said new device just to run one application. That or they bought a device to do something else, and because it also includes a web browser, anything that runs on the web platform is a "sure why not".

      There is already a program or two for chatting. Why do I need it in my web browser?

      Tell me how to set up a conversation between a user of iMessage and a user of any operating system other than macOS and iOS, and I'll explain.

  8. So, download bytecode to the browser... by Anonymous Coward · · Score: 0

    and run it? What an amazingly original idea! What could possibly go wrong? /sarcasam /ref java applet

    1. Re:So, download bytecode to the browser... by Anonymous Coward · · Score: 0

      A Java applet, despite the security problems (because of the original naivety, including the web browser's) is/(was...) the best way for a Rich Internet Application (R.I.A.), with a usable language (i.e., Java) instead of "javascript" (that by shamelessly stealing a great language's name -"Java"- for use as part of its own name you already know its like monkeydonia trying to pretend it is Macedonia... yes, i am Greek!) - can you inform me about a better technology for R.I.A. (preferably with the added benefits of universal availability as of Java's)?

      P.S. sorry for my English

  9. Java, the language that never was by Anonymous Coward · · Score: 0

    I have always been so surprised how Java never really took off like it should have. It's main flaw to me was binding the language to the virtual machine. The language is terrible. And before everyone jumps to Java's defense... ask yourself, If Java was so great, why would we have needed Javascript? Python? Flash? Java done properly would have removed the need for any of these languages... at least as separate entities unto themselves.

    1. Re:Java, the language that never was by Tablizer · · Score: 1

      Java applets tried to be an OS rather than a mere UI handler. That made it bloated and a malware magnet.

    2. Re:Java, the language that never was by cheesybagel · · Score: 1

      Neither the VM or the language are that good actually. The language is probably the least bad of the two.

    3. Re:Java, the language that never was by Anonymous Coward · · Score: 0

      Java combined the performance of interpreted languages, with the convenience of a low level language.

  10. Re:More vulnerabilities by K.+S.+Kyosuke · · Score: 1

    WebAssembly is a byte code for a virtual machine. It's not native.

    Eh... Oberon slim binaries format is a byte code for a virtual machine. But the code does run as native, because slim binaries are just a platform-independent and compact Oberon program representation. I presume WebAssembly does exactly the same thing.

    --
    Ezekiel 23:20
  11. Web have gone too far. by DontBeAMoran · · Score: 2

    It's time to go back to BBS, back when a BBS could be used on kilobytes of RAM and just 300bps modems. Web sites have become so morbidly obese with HTML and images that even my computer with 4 MB of RAM slows down. This Web 1.0 will be used to create even more bloated web sites with ads. Netscape has jumped the shark too, with version 3 being the death of "classic" Mosaic.

    --
    #DeleteFacebook
    1. Re:Web have gone too far. by vtcodger · · Score: 2

      Those who were around in the days of FidoNet and Compuserve will tell you that they handled communication and even some shopping on minimal hardware and very slow data lines substantially more quickly and efficiently than the current shambles.

      I'm increasingly finding myself in the "This Isn't working -- Let's back off and try again" camp.

      --
      You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
    2. Re:Web have gone too far. by Anonymous Coward · · Score: 0

      Complete horseshit if you actually sit down and think about it. You're telling me I could communicate faster on Fidonet than on the current internet? REALLY? I suppose having a video chat with 8 people was a snap of the fingers? Or carrying an instant messaging conversation from my laptop to my phone (oh wait, my phone? I mean, I'm on my phone with the modem? What do you mean again?), sharing documents, images, etc in about 2s? Shopping faster? Riiiiight. I would bet 1 million time machine dollars that by the time you had finished your modem hand shake I could order something with my voice without even turning on a screen. Wanna bet?

    3. Re:Web have gone too far. by DontBeAMoran · · Score: 1

      I think the general idea here is that we have a hundred thousand times better hardware and transmission speeds and yet the whole process is barely ten times faster - except for file transfers of course.

      --
      #DeleteFacebook
  12. Why secure? by Anonymous Coward · · Score: 0

    Virtualization vendors can't manage to keep people from finding new escape vulnerabilities. All major VMs including java and .NET have long histories of escape vulns. OS level jails such as android platform have met similar fates.

    What makes web assembly different? Why won't there be a steady drip of escapes? FFS there are tech demos of web assembly running unreal engine controlling GPUs. How is any of this even remotely secure?

    Have a feeling first thing we'll see is people implementing custom malware browsers in web assembly that look like the real thing in a bid to own users even more than they are already owned today.

    1. Re:Why secure? by ledow · · Score: 4, Insightful

      The way to do that is to literally pull out capabilities.

      If you don't want it to be able to open files, you need to make it impossible to express "open a local filesystem file".

      The browser DOMs are quite locked down in this regard, but they are still programs in themselves vulnerable to buffer overflows, etc. but - pretty much - you can't just access my camera, microphone, USB devices, arbitrary memory, etc. from a webpage.

      If you're parsing the WebGL into a strict subset of OpenGL and providing virtualising memory etc. addresses that cannot be misconstrued or reveal other RAM, that's as good as you can get. And that's what browsers do.

      The problem you describe is really just "I'm running a third-party program to run my other programs", not something different or defensible against.

      Try writing a program in WebAssembly, though. Emscripten will compile C to WebAssembly if you want. On any up-to-date browser it's virtually impossible to make it do anything untoward except (maybe) use up CPU time. But you also can't access filesystems (Emscripten fakes a filesystem into a loopback area of memory, pre-allocated in one contiguous block at startup), access the network (Emscripten requires you to WebSocket anything you want to do on the net, and C sockets come out as WebSocket traffic requiring a WebSocet server somewhere - e.g. websockify - for it to interact with and convert the WebSockets back to normal network traffic. Not something you're going to be able to get a user to set up.), access devices or graphics RAM (but you can use WebGL), etc.

      The browser is the interface, coupled with not being able to express malicious actions. Try to bypass it. Of course, it's not going to 100% impenetrable but NOTHING has yet proven to be except literally not doing anything useful. Hell, with RowHammer, code can actually interfere with "physically nearby" memory, and you can even detect the RF coming from a chip and intercept encryption by listening to the emissions. You have NO defence against those kinds of attacks.

      But a browser running WebAssembly is no worse than a browser rendering plain HTML. An innocent action in a limited space. Until enough attention is garnered to warrant thousands of hours of attention from dedicated hackers trying to bypass it.

      The fact is, however, that you still want to go on Netflix and watch your programs, log into your bank account, buy stuff on Amazon. And there's NO WAY to do that without taking exactly the same risks as running WebAssembly, which is contained only by your browser security model (Unlike Java and .NET which had their OWN security model separately and the browser just had to execute their code on the local machine and hope they'd done their job - they rarely had, which is why plugins are dead nowadays).

      You think that you can bring all this stuff back to plain HTML, and - what? - Perl on the CGI backend of a server and be immune? We thought that 20 years ago, it didn't work out.

      At some point you have to take user input, or input from a remote website, and interpret it in a way that cannot possibly be compromised while letting the user accomplish what they want to (e.g. play a movie, log in securely, etc.). If you find a way to do that, sell it to the world. Because they'd pay through the nose for it.

  13. Wasm lacks Oracle control by tepples · · Score: 4, Insightful

    The advantage of WebAssembly over Java is that the former isn't owned by One Rich American Called Larry Ellison.

    If there's more than one implementation of a particular platform released as free software, these implementations can compete on security. Chromium is free software, supports JavaScript, and will support WebAssembly. Likewise with Firefox.

    But we didn't get that opportunity with Java or Flash. Last I checked, the license of the Java Language Specification prohibited publishing an incomplete implementation. This requirement to keep works-in-progress confidential within an organization in turn had the effect of keeping independent free implementations of Java from existing legally, ultimately leading to Oracle v. Google. Likewise, Adobe's SWF spec was intended for developers of tools that output SWF, and its license specifically banned using the spec to make a third-party SWF player until February 2009.

    1. Re:Wasm lacks Oracle control by gtall · · Score: 2

      " former isn't owned by One Rich American Called Larry Ellison". You didn't state that properly: " former isn't owned by One Rich Asshole Called Larry Ellison"

    2. Re:Wasm lacks Oracle control by mnemotronic · · Score: 1

      .. One Rich Asshole Called Larry Ellison

      Who has his own personal Hawaiian effing Island. This is 'Merica. Success in business is the only thing that matters and the ends justify the means.

      I have got to get outta here. I'm getting too damn cynical.

      --
      The Russians have won. They have made the world a cesspool of distrust, greed, fear and hate.
    3. Re:Wasm lacks Oracle control by Anonymous Coward · · Score: 0

      What's the difference?

  14. We have to go deeper: CPU bugs by tepples · · Score: 2

    Virtualization vendors can't manage to keep people from finding new escape vulnerabilities.

    Nor can CPU vendors. Despite the engineers' best efforts, some CPUs ship with defects that allow userspace software to lock the physical CPU. Some examples:

    F00F bug Some Intel Pentium processors misinterpret the LOCK CMPXCHG8B EAX instruction. Cyrix coma bug Some Cyrix processors misinterpret the XCHGL instruction in a tight loop, blocking interrupts.
  15. PNaCl and NaCl are *not* virtual machines! by tlambert · · Score: 5, Informative

    PNaCl and NaCl are *not* virtual machines!

    Yes, they are sandboxed, but they are sandboxed by constraining the assembly language generated.

    PNaCl differs only in that it sends the intermediate compiled code down to the browser to be processed in the final LLVM stage backend into assembly language within the browser.

    The major reason for deprecating it is that a compiler back end is a lot to carry around for little benefit.

    The reason the benefit is small, however, has less to do with PNaCl itself, and a lot more to do with how Google handles projects within Google, and my inability to actually pry my 20% time -- that I was promised when I was hired -- out of Google to do work on the problem.

    I talk about it in another post.

    1. Re:PNaCl and NaCl are *not* virtual machines! by K.+S.+Kyosuke · · Score: 1

      Technically they're virtual machines by virtue of accepting programs for a virtual computer (a computer that doesn't physically exist). Some people interpret the term in quite a limited way, but not everyone does.

      --
      Ezekiel 23:20
    2. Re:PNaCl and NaCl are *not* virtual machines! by Anonymous Coward · · Score: 0

      The problem is that NaCl exists.

      This was a solution in search of a problem. The problem in theory being "downloading precompiled binaries" like linux rpm's.

      This was never going to work in practice because nobody is going to compile a binary for every machine type. This is a problem inherited from Android, which likewise nobody gives a care about developing for Android's "portable" dalvik, everyone sees it as a stupid dozen development hoops to jump through and a performance penalty.

      pNaCl is to chrome as dalvik is to Android. It was stupid to ever think it would be picked up by anyone other than Google itself.

      as for asm.js, I think it's stupid in it's own way as well. Why the hell would anyone compile a C application into javascript? That's a goddamn nuclear bomb of potential browser exploits.

    3. Re:PNaCl and NaCl are *not* virtual machines! by Anonymous Coward · · Score: 0

      >as for asm.js, I think it's stupid in it's own way as well. Why the hell would anyone compile a C application into javascript? That's a goddamn nuclear bomb of potential browser exploits.

      Nonsense. You're still ultimately just running JS, in the same VM/sandbox. It just doesn't have to run the code through as much VM to get the results, so it can be faster. In essence, any exploits you find were already there.

      Now WASM support, that has to add new code that wasn't there in the VM already, so it does have a different security footprint.

    4. Re:PNaCl and NaCl are *not* virtual machines! by OrangeTide · · Score: 1

      Indeed, it's a virtual machine in the most generic sense. I consider a process in Unix to be a virtual machine too, but my education in CS goes back many years and it's no longer fashionable to use VM in this sense.

      --
      “Common sense is not so common.” — Voltaire
    5. Re:PNaCl and NaCl are *not* virtual machines! by tlambert · · Score: 1

      The problem is that NaCl exists.

      This was a solution in search of a problem. The problem in theory being "downloading precompiled binaries" like linux rpm's.

      The actual problem that NaCl was originally sold to address was the ability to put video decoding and other expensive operations into native code. In other words, it was the equivalent of a JNI escape to native code.

      There are performance reasons for this, but the primary one is video distribution with DRM and/or forced interposition of commercials, as a revenue model.

      One of the examples they used to demo it was adding "native" mathematics package to the JavaScript in the browser to vaslty accelerate math operations by adding JavaScript verbs to access the added native code.

      P.S.:

      I agree that WebAssembly is a nuclear bomb, just waiting to go off. There's no way the JIT'ed code and the JavaScript code for the same site aren't running in the same DOM sandbox process.

      What this basically means is there's an ability to use code to exploit other (presumably "safed during interning") code.

      It's not like we are running on Harvard Architecture computers here.

  16. Sandbox defects by tepples · · Score: 1

    Which means that a defect in the verifier that enforces "constraining the assembly language generated" in NaCl or "the final LLVM stage backend" of PNaCl would lead to a sandbox escape.

    1. Re:Sandbox defects by K.+S.+Kyosuke · · Score: 1

      So would an operating system defect for regular processes.

      --
      Ezekiel 23:20
    2. Re:Sandbox defects by Anonymous Coward · · Score: 0

      No. I don't know where you get the idea but it doesn't matter one hoot which user mode assembly instructions are executed in a process, you can't escape the sandbox. It's hardware MMU. And there's no verifier there either.

      Maybe you meant to reply to another post?

    3. Re:Sandbox defects by tepples · · Score: 1

      The MMU doesn't prevent a process from making a syscall that reads all the user's files and opens a socket to disclose them to a computer in a different country with no extradition treaty between the two. Whether to honor such a syscall is entirely up to whatever kernel- or user-level sandbox program is running, and such programs can have defects.

    4. Re:Sandbox defects by K.+S.+Kyosuke · · Score: 1

      No, I replied to the very post that needed replying to, because there actually is such a thing as privilege escalation exploits in operating systems.

      --
      Ezekiel 23:20
  17. Re:More vulnerabilities by Z00L00K · · Score: 1

    When I saw the title I first thought that the article was about PhosphorusSodiumChlorate.

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  18. NSA will backdoor ANY browser tech by Anonymous Coward · · Score: 0

    how many times do we have to see 'native' browser tech nerfed then depreciated because "it isn't safe", only to have the next round of ideas fall a few years later for the self-same reason? The truth is that today browsers are vastly worse at running PC-like code (like hi-performance 3D) than they were 10 years ago, yet they are not one lick more secure as is (giving us yet another reason to run as many ad-block systems as possible).

    iD had their multi-player Quake game running on the browser a few years back, then had to cancel it when Google, Mozilla etc killed such functionality.

    for sure, non-'native' pure browser tech renders pages better than ever- but then the browser runs on resources vastly more powerful than a few years ago- so that's no achievement for the browser coders. But games, emulators, 3D etc on a browser are now a bad joke whereas a little time back all worked really quite well.

    The PC platform won out because it was a 'can do' situation. but the walled-off garden approach of everything else in computing shows an 'alternate' history of lousy performance and artificial restrictions for no gain whatsoever. The 'best' browser apps run literally thousands of times slower than what the native hardware is capable of.

    1. Re:NSA will backdoor ANY browser tech by tepples · · Score: 3, Informative

      The 'best' browser apps run literally thousands of times slower than what the native hardware is capable of.

      If your computer happens to be something other than a Mac, a Mac app runs at zero speed.

      If I lack the funding to develop my application for more than one platform, which of the following would reach the most users?

      • A. Windows (Win32)
      • B. Windows (UWP)
      • C. macOS
      • D. iOS
      • E. X11/Linux
      • F. Android
      • G. Web
    2. Re:NSA will backdoor ANY browser tech by Anonymous Coward · · Score: 0

      Who really cares?

      If you are a professional developer, and cannot bring yourself to spend the extra 1k it would take to cover a basic Mac & Linux machine if you already have a Windows PC, perhaps you don't have the confidence in your own "app" because it sucks.

    3. Re:NSA will backdoor ANY browser tech by fibonacci8 · · Score: 1

      Insinuating that "Web" is a single platform to target when developing applications, that's amusing.

      --
      Inheritance is the sincerest form of nepotism.
    4. Re:NSA will backdoor ANY browser tech by Anonymous Coward · · Score: 0

      The point is not having the money to buy a machine to develop on an alternate operative system, the point is having the time and resources to program the same application five times for the top five most popular OSs.

    5. Re:NSA will backdoor ANY browser tech by tepples · · Score: 1

      What are the most significant differences in your opinion among Web as interpreted by Gecko, Web as interpreted by Blink, and Web as interpreted by Apple WebKit?

    6. Re:NSA will backdoor ANY browser tech by Anonymous Coward · · Score: 0

      > If your computer happens to be something other than a Mac, a Mac app runs at zero speed.

      QT, GTK, WXWidgets, & etc solve this problem. For most software they make cross-platform work nearly zero cost.

      The Web has shown us that people DGAF about "native look and feel". I bet that the current "You can't get people to install 'native' apps!" histrionics will prove to be just as false as the "Noone will use it if it doesn't have native look and feel!" histrionics of a decade ago.

    7. Re:NSA will backdoor ANY browser tech by tepples · · Score: 1

      If your computer happens to be something other than a Mac, a Mac app runs at zero speed.

      QT, GTK, WXWidgets, & etc solve this problem.

      Provided the application's publisher has the staff to build and QA the application in Qt for Windows, Qt for macOS, Qt for GNU/Linux, Qt for iOS, and Qt for Android. Many especially smaller publishers do not. And even if the developer distributes an application as free software and says "here's an app that works on GNU/Linux; feel free to port this", end users who aren't programmers are by and large unwilling to learn to program so that they can spend hours excising the developer's inadvertent platform-dependent assumptions.

  19. The demise of PNaCl is really unfortunate. by tlambert · · Score: 4, Interesting

    The demise of PNaCl is really unfortunate.

    "WebAssembly" is a virtual machine; it might as well be named "JVM".

    PNaCl pushed down partially compiled code so that a compiler backend could localize it to Native code on the local machine. It used LLVM IMF (effectively) to implement ANDF -- Architecture Neutral Distribution Format, which was a promise Apple was never able to achieve -- which is why Apple has "Fat Binaries": single binaries with multiple images.

    NaCl, by contrast, targeted a specific binary instruction set in the target, and people would use different wrappers for the actual code itself, via JavaScript, to select the architecture (ARM, x86, etc.) of the actual binaries being downloaded in NaCl form.

    The question is whether you do the finalization work on the sender, or the receiver. Both systems, however, had as their primary intent the ability to extend JaveScript with native code plugins.

    In the absolute limit, you'd write all your code in native code, and then ship it down with a small JavaScript shim, in order to call into that code's "main" with a thread context, and set it running as native code.

    There are a number of Games which did this, and there's a (moderately common) use of NaCl to push down x86 games running in a PC emulator as a packaged lump in NaCl.

    PNaCl -- which was platform independent -- and NaCl, which I would say has arguably failed as well -- failed because it was massively difficult to develop applications in it.

    This is predominantly because there is insufficient glue code and no IDL in order to define JavaScript interfaces which also described C/C++ code containers for the compilers used to generate the native code on the front end.

    This made it impractical to have what is -- in essence -- a browser-level jandboxed "JNI" equivalent for JavaScript.

    So people simply didn't use it.

    In other words, it was not a complete product, and like Mozilla in the early days, it was nearly impossible to build anything useful out of it that actually did anything that had any impact on anything.

    NaCl -- apparently not (yet) deprecated -- still has this problem.

    Think of it as having DCE or Sun RPC available as an interface between JavaScript and native code, and having no "rpcgen" and no "xdr" library available to use.

    This is pretty typical of some Google products: they go 80% of the way there, and then, because they are organizationally not motivated to do things which are difficult -- because you can pretty much walk to any other job inside Google, should your manager ask you to do something you considered "unfun" -- no one finishes the remaining 20%.

    I tried to resolve this in my 20% time at Google, but was rather constantly thwarted in the effort (the 20% time at Google is largely mythical) by providing an IDL in XML that would let you describe the interfaces, and then generate the JavaScript templates on one end, and the C code containers for the functions that needed to be written on the other, along with an "XDR" library for marshaling arbitrary data back and forth between the "C form" and the "externalized JavaScript" form.

    Sadly, this project never came to fruition -- I was even, stupidly was writing it in Python, to make it politically acceptable to the people who were complaining the loudest, when I could have cranked it out in C in a couple of days -- Python is really slow/bad at XML, among other problem.

    Personally, I think this deprecation and switch is a terrible idea.

    Putting a bytecode interpreter into your browser is exactly what malware sites want you to do, when they bitch about you needing to install the Java plugin into your browser.

    WebAssembly is exactly that, only renamed from "Java", and not uninstallable or turn-offable.

    Massively bad mistake.

    The only saving grace is that I have no doubt that it will be "about as popular as NaCl/PNaCl", and it'll stop at 80% of the way to "people are now likely to use this thing to do their projects".

    1. Re:The demise of PNaCl is really unfortunate. by Anonymous Coward · · Score: 1

      It's not a mistake if you want applications that do not only run on chrome.

    2. Re:The demise of PNaCl is really unfortunate. by roca · · Score: 2

      > Putting a bytecode interpreter into your browser is exactly what malware sites want you to do

      There is already an execution engine in your browser --- JS. WebAssembly applications can do exactly the same set of things that JS can do, so there's no new problem.

      Furthermore, PNaCl was pretty much the same from this point of view, or actually worse because it added quite a lot more attack surface than WebAssembly does (both in Pepper and all the LLVM code).

    3. Re:The demise of PNaCl is really unfortunate. by adam.voss · · Score: 2

      Putting a bytecode interpreter into your browser is exactly what malware sites want you to do, when they bitch about you needing to install the Java plugin into your browser.

      I feel like this is a stupid question, so this is probably over my head, but why is a bytecode interpreter worse on this front than an a compiler likewise accepting arbitrary code from the Internet?

    4. Re:The demise of PNaCl is really unfortunate. by tlambert · · Score: 0

      Putting a bytecode interpreter into your browser is exactly what malware sites want you to do, when they bitch about you needing to install the Java plugin into your browser.

      I feel like this is a stupid question, so this is probably over my head, but why is a bytecode interpreter worse on this front than an a compiler likewise accepting arbitrary code from the Internet?

      The issue is the ability to create outbound connections /not/ through WebSockets, and the ability to interpose and modify code on its way down.

      The advantage of WebSockets is that it has to connect to a server on the site where the script originated, in order to make an outbound socket connection. This makes it difficult to make a self-propagating attack vector, or a SPAM engine hidden in a game, and utilizing your outbound connection in order to relay SPAM in such a way as to distribute a SPAM engine, or a DDOS to a lot of machines.

      So, for example, you can utilize Java to engage in this type of attack with relative impunity.

      It's possible to make this "safer", but the primary argument of "better security" is entirely the argument in favor of Java: great security model in theory, but in practice, it tends to be a pretty horrible security model altogether.

      I expect that they are going to end up adding the sort of "call filtering" that happens in the sandboxing that Apple implements in order to sandbox applications within the OS itself.

      The problem with doing this in the WebAssembly case -- and the Java case -- is that the "capabilities requirements list" and the "application payload" come from the same source.

      This opens you up to malicious sources -- I expect the primary one will be pirate video content, of the same sort which now, as an attack, requests that the user "update their Flash player" or "You must install this codec to access this content ...download now?". People will permit it for the same reasons they permit those attacks on their systems: they want to access the content.

      Again, however, we are gifted also with the ability for an attack on a single site, or an attack on a single gatekeeper, as an intermediary, to alter the code intermediate to it being delivered to the machine.

      This is, by the way, the same way the recently revealed NSA SMB intermediation download attack operates.

      So it opens up a pretty common attack surface, compared to NaCl/PNaCl.

      I understand why they're doing it -- removing the PNaCl back end gives them room to jam in the WebAssembly JIT, rather than having to carry around twice as much code to get what (they incorrectly believe) is equivalent functionality. Essentially, they can do the same things without changing the code size. Only they can do more than the same things. And the bad guys can also do more than the same things.

      I think it's going to therefore end up being a big mistake.

    5. Re:The demise of PNaCl is really unfortunate. by tlambert · · Score: 1

      Furthermore, PNaCl was pretty much the same from this point of view, or actually worse because it added quite a lot more attack surface than WebAssembly does (both in Pepper and all the LLVM code).

      Incorrect. The PNaCl (and NaCl) attack surface was intermediated by what a web site was permitted to do through JavaScript.

      It would have been substantially more useful, and dangerous, had that not been the case.

      The question is whether the JIT'ed code in WebAssembly is going to be smarter about sandboxing than Crome itself currently is (I don't see how that can be the case; there are already OnClick based persistent DOM's that are created by malicious sites to pop up advertisements -- and they defeat the sandbox by setting up timers to allow a cross-DOM attack through a URL rewrite hijack.

      You can see these things everywhere, if you go to pirate video sites in order to determine what's going on.

      But it's basically at that point a "windowless DOM" that just sits around as a "Google Chrome Helper" process.

      Enough websites do this accidentally ("Leaking of DOMS") that you periodically have to either kill off all the helper processes, or you have to restart Chrome to get rid of the things. It's very annoying, in fact, on limited memory systems.

      My expectation here is low, because I've so far been singularly unimpressed with the Android capability permissions model, and it's inability to prevent Android malware. I can't see anything they point in place (at least without a DKIM-like system utilizing DNS) being any better than what they've achieved with Android.

    6. Re:The demise of PNaCl is really unfortunate. by tlambert · · Score: 0

      I think the only people who care about this are Mozilla, Inc..

      Are you claiming that this is going to also be implemented in Safari or Microsoft Edge (the only othe browsers that matter)?

    7. Re:The demise of PNaCl is really unfortunate. by Anonymous Coward · · Score: 1

      Putting a bytecode interpreter into your browser is exactly what malware sites want you to do, when they bitch about you needing to install the Java plugin into your browser.

      WebAssembly is exactly that, only renamed from "Java", and not uninstallable or turn-offable.

      Man, you really have no clue what you're talking about. WebAssembly is just a more efficient (as in: more compact) serialization of asm.js, which itself is a subset of EcmaScript.
      So everything "bad" you claim you can do with wasm, you can already do with plain EcmaScript, only instead of text, the script source is now binary, so it wastes less bandwidth during page load.

  20. WebAssembly lacks signing by laughingskeptic · · Score: 1

    Not only does WebAssembly not require packages to be signed, it does not even provide a slot in its standard for signatures. When are software engineers going to learn that you don't do these things after the fact? I am sick of browsers being cesspools for executing random, uncontrolled and unattributable code.

    1. Re:WebAssembly lacks signing by James+Carnley · · Score: 3, Informative

      WebAssembly doesn't allow your code to do anything more than what normal JavaScript can do. It's really just a faster way to run JavaScript. It's not any kind of major shift except for allowing faster apps to be developed. There's really no need for signing as you wouldn't sign JavaScript either.

    2. Re:WebAssembly lacks signing by roca · · Score: 1

      As ActiveX showed, code signing is useless in practice unless you require all code to be signed by some trusted third party. But the whole point of the Web is to avoid having a single gatekeeper.

      On the other hand, running untrusted code in a sandbox is a model that has worked for JS, and it will work for WebAssembly too.

    3. Re:WebAssembly lacks signing by elgaard · · Score: 1

      Yes, and Java showed the same thing.

      Just because you might know who signed the applet, that does not mean you should let them take over your user account.

    4. Re:WebAssembly lacks signing by laughingskeptic · · Score: 1

      I consider the lack of signing support in JavaScript to be a flaw. Signing allows one to: 1) know that code you are running has not been tampered with. 2) whitelist certificate chains. 3) associate code with an actual author. Are these not good things? A sandbox is not enough, especially when more and more people's entire digital experience occurs within the browser. You are routinely finger printed by JavaScript running on your browser. Tampered JavaScript can allow people to capture your important credentials. The sites you visit don't even know where half of the content that they are adding to the page you are viewing came from because they sold space on the page to an advertising broker who in turn sold the space to someone else based on your profile. A hacker can precisely and relatively cheaply target your demographic with malicious JavaScript by purchasing ad space. And as it is, there is no way to ultimately attribute that code to the hacker.

  21. Mozilla Won by Anonymous Coward · · Score: 0

    Open Web FTW!

  22. Re:More vulnerabilities by vtcodger · · Score: 1

    Why would anyone want JavaScript to run natively in assembly? Sounds like a ton of vulnerabilities waiting to happen. We should be going the opposite direction and eliminating JavaScript altogether.

    I infer that the desire for native bytecode is so that malware from websites can run more efficiently and not hog our CPUs.

    I don't know why you've been downmoded, You're absolutely correct. Expanding internet attack surfaces is possibly the worst idea since the US decided to fix the Middle East by invading Iraq. Getting rid of ALL scripting would be one modest step toward getting the digital world under control. Sometimes I think mankind has a deathwish.

    --
    You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
  23. Re:More vulnerabilities by fibonacci8 · · Score: 1

    Isn't it missing 3 oxygen atoms to be a chlorate?

    --
    Inheritance is the sincerest form of nepotism.
  24. Re:More vulnerabilities by WalksOnDirt · · Score: 1

    Should be phosphorus sodium chloride.

    --
    a,e,i,o,u and sometimes w and y (at be if of up cwm by)
  25. Not everything can/should be implemented on web by jbn-o · · Score: 2

    I'm not convinced that client-side calculation is a good thing in the cases you list because what you call "a form submission and a full page reload" doesn't strike me as tedious, too long, or generally bad. I think that the most commonly used web browsers have made a horribly bad tradeoff by allowing ad-hoc downloaded code to be executed client-side and have full access to the user's computer. I'm distinguishing between code one has a chance to run, study, modify, and share (free software browser code) and free software one downloads ad-hoc as part of a webpage (for which no browser, not even free browsers, has yet given the user a chance to truly leverage the freedoms of free software before executing, despite license notification and add-ons to handle running only free software like LibreJS). Javascript and other client-side programming languages are too powerful to do what browsers commonly do today in default installs. This creates a lot of vectors for security problems akin to using insecure plugins which take unvetted input from a web server and run it. I don't think a round-trip page reload is problematic in light of the security risks that come with running what is realistically unvettable code. The successes I see with NoScript and friends tell me that not running code client-side by default is the right way to go.

    I'd much rather take the path CSS appears (to me) to be taking: figure out what non-executing features people need and make CSS syntax do those jobs. If you need form validation, bring up your needs to people who discuss CSS and perhaps you can find a way to do regular expression-based validation with a regex parser that's not as powerful as PCRE but sufficiently powerful to tell if this phone number or credit card number is likely to be valid. But I'm not even convinced that server-side validation here is the problem you think it is.

    I also don't think that walled garden censorship is an excuse for justifying that everything should be implementable on the web. Those are separate issues and neither acknowledges legitimate privacy and security concerns with modern browsing in default settings (which I believe is what most users use). Programmers have always accepted that not every program can run in every environment or be implemented with every programming language. It's time privacy and security get higher priority and people learn to say no due to considered tradeoffs. Technical limitations of this sort can be right and proper to have.

    CSS doesn't bother me because (as far as I know) CSS has no way to do the things I don't like about running unvettable programs client-side such as reading/altering/deleting client-side files, doing stuff over the network, detecting client settings, and more. CSS is specification, not programming, but even if it were programming it wouldn't have to offer an API that lets programmers do the things programmers do with Javascript. Sure, some font and image handlers are broken and specially-crafted fonts or images can leverage that broken code taking advantage of an insecurity. But that's not CSS's fault. A font or image library fix and that security hole is patched, no changes to CSS are being made.

    1. Re:Not everything can/should be implemented on web by tepples · · Score: 1

      I'm not convinced that client-side calculation is a good thing in the cases you list because what you call "a form submission and a full page reload" doesn't strike me as tedious, too long, or generally bad.

      Then good luck clicking point-by-point to trace a path in a web-based drawing application that uses a server-side image map, with the entire image reloading after each click.

      If you need form validation, bring up your needs to people who discuss CSS and perhaps you can find a way to do regular expression-based validation with a regex parser that's not as powerful as PCRE but sufficiently powerful to tell if this phone number or credit card number is likely to be valid.

      Once you make an input schema language rich enough to handle all possible interdependencies among fields in a form, such as "state/province/region" being required only for certain values of "country", you will probably have almost reinvented JavaScript.

      Programmers have always accepted that not every program can run in every environment or be implemented with every programming language. It's time privacy and security get higher priority and people learn to say no due to considered tradeoffs. Technical limitations of this sort can be right and proper to have.

      I disagree with your claim that it is "right and proper to have", for example, users of a chat application for Windows be unable to communicate with users of a chat application for macOS.

  26. Society needs software freedom, !running anything. by jbn-o · · Score: 2

    That's a question we can't answer without knowing more about the application and ultimately modern developers do develop for multiple OSes. One approach is to release the program as free software (users purchase the program and get a copy of the program licensed such that they may run, inspect, share, and modify the software) and users may help port the program to other systems and architectures. But ultimately your business needs are not more important than society's needs for not running any arbitrary program their browser is instructed to download and run. That's the model we have now and it's highly unsafe.

  27. Re:More vulnerabilities by sexconker · · Score: 1

    Who cares? If it runs, it's ultimately native. However virtual/interpreted/non-native it claims to be, you have to trust the vm / interpreter / native code it ultimately runs as to enforce the rules of the language and keep you safe. And we all know that's not gonna happen.

  28. active x all over again???? Come on people... by Anonymous Coward · · Score: 0

    I'm sick and tired of this stupid shit going into my browser. I want better security and bug fixes. Not more code in my browser/operating system/etc.

    1. Re:active x all over again???? Come on people... by Anonymous Coward · · Score: 0

      I'm sick and tired of this stupid shit going into my browser.

      But it isn't your browser, is it. You didn't develop it. So the way forward is to develop your own browser and, if enough people think as you do, your browser will be the market leader in no time.

      That is what will happen, right? Right?

  29. Positive step by Anonymous Coward · · Score: 0

    Having a standardised replacement for the abysmal mess that is javascript is very welcome indeed. No longer will we have to use a mess of junk frameworks with lifespans measured in months, written in the worst language ever concieved.

  30. Re:Society needs software freedom, !running anythi by tepples · · Score: 1

    One approach is to release the program as free software (users purchase the program and get a copy of the program licensed such that they may run, inspect, share, and modify the software) and users may help port the program to other systems and architectures.

    For one thing, in the case of a computer program released as free software, how can the developer recoup the cost of feeding and housing himself over the course of development if the first person to purchase a copy goes on to exercise his rights under the license to share that copy with every single other prospective customer?

    For another, many programs are for an audience who are not developers and would have no idea how to begin to build from source code a program that is already ported to his platform, let alone port it to a brand new platform.

    But ultimately your business needs are not more important than society's needs for not running any arbitrary program their browser is instructed to download and run. That's the model we have now and it's highly unsafe.

    Nor are my business needs "more important than society's needs for not running any arbitrary" native "program their" operating system's package manager "is instructed to download and run." What makes web applications any less safe than native applications in this respect, other than that a user is presumed safe from native applications that happen to have been designed for a different operating system?

  31. IBM J9 or ... fake news by Anonymous Coward · · Score: 0

    There are plenty of legit reasons to hate on Ellison, but it's pure FUD to bitch that the Java license didn't allow you to call your product 'Java' unless it provided a defined base of stuff. Would you foam at the mouth about Larry Wall if he reacted negatively to a company releasing a language that was only half like perl but named 'perl 4'?

    In the very early days other vendors (OK, mostly IBM) created their versions of Java and they're still at it. IBM's latest effort with its J9 Java VM is yet another independent and free distribution of Java that manages to run rings around Oracle's.

    1. Re:IBM J9 or ... fake news by tepples · · Score: 1

      it's pure FUD to bitch that the Java license didn't allow you to call your product 'Java' unless it provided a defined base of stuff. Would you foam at the mouth about Larry Wall if he reacted negatively to a company releasing a language that was only half like perl but named 'perl 4'?

      It's not that the license didn't let you call it Java. It's that the license didn't let you distribute it at all under any name.

      In the very early days other vendors (OK, mostly IBM) created their versions of Java and they're still at it.

      A company as big as IBM can afford to do the entire reimplementation in-house. A group of hobbyist developers, like those who started the Wine project, isn't in quite the position to do so.

  32. Re:More vulnerabilities by tepples · · Score: 1

    Getting rid of ALL scripting would be one modest step toward getting the digital world under control.

    This means every form of interactivity on the Web that cannot be efficiently performed through form submission and full page reloads would have to move to a native app, and native apps are specific to one operating system. Good luck running a native Mac app on anything that's not a Mac.

  33. Silent reading is faster by tepples · · Score: 1

    You're telling me I could communicate faster on Fidonet than on the current internet? REALLY? I suppose having a video chat with 8 people was a snap of the fingers?

    People with this mentality find text chat superior to video chat. Anyone over twelve without a serious learning disability can read silently faster than he can listen, which particularly helps when eight users are sending messages to a channel at once.

    I would bet 1 million time machine dollars that by the time you had finished your modem hand shake I could order something with my voice without even turning on a screen.

    It's called a voice call to Domino's over Plain Old Telephone Service.

  34. Limit the attack surface by tepples · · Score: 1

    The fact is, however, that you still want to go on Netflix and watch your programs

    No, you would want to cancel Netflix, forgo its exclusive programs, and watch different programs that do not use digital restrictions management.

    log into your bank account, buy stuff on Amazon

    Which can in theory be done mostly server-side, with the client touching only HTTP, TLS, HTML, and CSS, not the larger attack surface of JavaScript or WebAssembly. Worse comes to worst, it could be done with an even smaller client attack surface over SSH, just as online banking and shopping used to be done over dial-up with a terminal emulator back when CompuServe was still hot $#!+.

    You think that you can bring all this stuff back to plain HTML, and - what? - Perl on the CGI backend of a server and be immune? We thought that 20 years ago, it didn't work out.

    It doesn't have to be Perl; it can be something more "modern" like Python or Java or C# or Go or whatever. But some see value in containing the attack surface on the server side rather than expanding it to the client.

    At some point you have to take user input, or input from a remote website, and interpret it in a way that cannot possibly be compromised while letting the user accomplish what they want to

    The server needs to authoritatively validate the user's input anyway. Why require the client to download code that only expands the attack surface while duplicating the validation effort?

    1. Re: Limit the attack surface by Anonymous Coward · · Score: 0

      Perl 6 is modern... since it will never be complete it will always be up to date :)

  35. The TLS endpoint signs what it sends by tepples · · Score: 1

    Not only does WebAssembly not require packages to be signed

    Every response sent over an HTTPS connection is signed by the TLS endpoint sending it. This includes js files and wasm files.

  36. Re:More vulnerabilities by Z00L00K · · Score: 1

    You are right, was a few decades ago I did chemistry.

    Assume you refer to vowels by "a,e,i,o,u and sometimes w and y (at be if of up cwm by)", here it's "a,o,u,å,e,i,y,ä and ö" but never w. w and v are the same here.

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  37. Psalt? by Anonymous Coward · · Score: 0

    asdf

  38. Re:More vulnerabilities by Anonymous Coward · · Score: 0

    It is even better than that, provided that the JIT compiler is correctly implemented. If you implement an interpreter in a language that is being JIT compiled, then that program that is being interpreted will also be JIT compiled (due to transposition).

    With the PyPy (Python) compiler they showed that can be true. The project is pretty insane though, hold on to your hats:
    - They wrote a language that is a subset of Python which could be completely compiled. It has full type inference, and static typing.
    - They added some JIT compile trickery, to recognise interpreter constructs.
    - Then they wrote a Python interpreter in this subset-Python.
    - Now any Python program that is being interpreted will be JIT compiled.

    From the documentation, it says that if you make another language interpreter in this subset-Python, it will also get JIT compiled.

  39. Re:More vulnerabilities by WalksOnDirt · · Score: 1

    Assume you refer to vowels by "a,e,i,o,u and sometimes w and y (at be if of up cwm by)", here it's "a,o,u,Ã¥,e,i,y,Ã and Ã" but never w. w and v are the same here.

    Of course, it only applies to English.

    I was taught the "sometimes w and y" part in grammar school. I was surprised to discover decades later that w was no longer being taught, at least according to a couple of students I asked. The list is just to demonstrate that all of them can be the only vowels in words, but w is used in many diphthongs as well. (cwm is a very rare word)

    --
    a,e,i,o,u and sometimes w and y (at be if of up cwm by)
  40. I'm no chemist but... by Xenophule · · Score: 1

    It's funny that I find out that the web runs on Phosphorus-enriched salt just as they get rid of it!

  41. Oh hooray, a new Flash implementation to break by sabbede · · Score: 1

    The PNaCL version didn't work right for a year, providing me with a number of support headaches. Not excited about doing that again.

  42. Chemistry by coinreturn · · Score: 1

    I didn't even know that Phosphorus would bind with table salt.