Hacker News new | ask | show | jobs
by guscost 2522 days ago
In other words, you can build any program with a Turing-complete language.
2 comments

But you can't build a pop-up if you don't have access to create new windows, yet you can still be turing complete. For example, WASM is Turing complete, but it can't create popup windows because it has no access to the DOM.

I think JavaScript should have to request access to use browser APIs, and you should be able to disable access to any of all of them. For example, I should be about to disable:

- network access (disables adding script tags, XMLHttpRequest, fetch) - 2d canvas access - 3d canvas access - WASM

And so on, just like mobile apps, but perhaps more granular. The app should also be able to put a note as to why it needs each specific feature.

That would be a usability nightmare.
Being Turing-complete seems a bit overkill for a hyperlinked document platform.
Yes! All the replies here are missing the point completely. It’s not that JavaScript is somehow uniquely bad among programming languages. It’s that the entire idea of putting a general purpose programming language into the system was a bad idea.

99% of my web browsing shouldn’t need it. Every site I visit uses it, but almost all of them could be built just fine without it.

The web has long-ago graduated beyond just serving up documents, and having a capable language and platform was key in enabling it.

There are downsides to everything, but we cant dismiss that positives that came from it.

The problem is that document delivery is still the main function, but the platform wants to be a fully capable app platform.

Yes, it’s great that the web is capable of stuff like Google Docs. But all those capabilities are actually liabilities when it’s a news site.

It is a fully capable platform. How it's used isn't a fault of the platform though. It seems user-agents and adblockers are applying the proper protections, just like how antivirus works on your desktop.
But nobody whines about antivirus and begs you (and the government) to disable it, so they can sell you.
wait for WebAssembly to be ubiquitous in the browser. Another turing complete language, but faster and smaller.
In practice it will be slower and bigger. Everybody will be just compiling entire C++ frameworks to wasm. A web app needs to do something with images? Here is the entire ffmpeg compiled to wasm. Need a single widget from Qt? Here is the entire Qt compiled to wasm. I'm pretty sure nobody is going to carefully refactor existing C++ libs to select only the subset of features needed for web.