Almost feels like a throwback to the days of entirely flash-based websites......
Almost feels like a throwback to the days of entirely flash-based websites......
The web is awesome because it's document based, and largely because of links embedded in a open document format. Get rid of the document and you get rid of readable links, web crawlers, find-in-page, screen readers, and on and on...
For example, it's a goal to have WebAssembly modules interopt with the ES6 module system, and as soon as GC is supported, you'll be able to access the DOM and the JavaScript context in WebAssembly [0]. Both of these are huge steps towards ensuring that wasm plays well with everything that's great about the web today.
[0]: https://github.com/WebAssembly/design/blob/master/Web.md
(Disclaimer: I'm a Google Chrome PM contributing to the WebAssembly project)
Do you have any anticipated timeline for this? For React, at least, we're eagerly looking forward to the opportunity to write at a lower level while maintaining the same JS-facing API.
[0]: https://github.com/WebAssembly/design/blob/master/GC.md
[0]: https://github.com/WebAssembly/design/blob/master/FAQ.md#is-...
Outside that one advantage, web applications (not talking about simple documents here) are worse in almost every way than native applications. (It’s not without reason that Photoshop, ProTools, Maya, Excel, Final Cut, SolidWorks, ArcGIS, Sibelius, Mathematica, Visual Studio, and thousands of other serious tools don’t have credible web alternatives.)
They’re slower. They aren’t persistent. They change all the time with no ability for the user to prevent it, sometimes spontaneously breaking when the developer stops supporting the user’s browser or goes out of business. They make it hard for users to load/save local data, and instead they store personal data on a faraway server. Accidentally pressing the back button can destroy hours of user work. They usually have terrible accessibility. They don’t interoperate with other applications on the system. They flagrantly violate UI design conventions on every platform. They can’t access most local hardware devices. They have an extremely limited user input device model. Their UI layout tools are limited, inflexible, and incredibly hard to work with. They throw out decades of implementation effort on various standard solutions to problems and force complete reimplementation from scratch. They are difficult or impossible to build proper cryptographic primitives on top of.
In short, web applications are inherently second-class citizens on every platform.
BUT! Web applications are also amazing. Dropping the barrier to entry – URLs and HTTP and fairly reliable code sandboxing – makes all the difference, and makes the web an extremely attractive platform despite its many flaws.
Yes. By design. If a webpage can impersonate a local app, you have a serious security problem.
> They make it hard for users to load/save local data
There are good reasons for a lot of that, from denial-of-service protections, limiting stealth cookies, etc.
> They don’t interoperate with other applications on the system.
That's a feature.
> They flagrantly violate UI design conventions on every platform.
The user agent can render the page however it wants. This is a feature.
> They can’t access most local hardware devices.
Are you trying to introduce even more security problems?
> They are difficult or impossible to build proper cryptographic primitives on top of.
That's not the place you should be implementing crypo.
> Accidentally pressing the back button can destroy hours of user work.
Ok, that one would be nicer to fix, but that's a problem for the browser, and shouldn't impact the page at all.
--
If you want to develop software that uses more than the web can provide, you should choose a platform that actually provides those features. There is a trade-off, of course, but making that kind of decision is a an important part of software engineering.
While many people have been ignoring some or all of the security aspects of programming, it is important to remember that anything connected (even indirectly) to a network is under attack, so security must be considered first.
Flash is still an excellent IDE for artists. And I enjoy some "creativity" on the web. The "everything's flat and like the next site because Bootstrap" web is getting old.
[0]: https://github.com/Flipboard/react-canvas [1]: https://github.com/WebAssembly/design/blob/master/HighLevelG...
Although... I also think that at some point the line between the web, browser and operating system might have to blur or disappear entirely.