I’m tempted to add Go to that list, but it feels premature.
I’m tempted to add Go to that list, but it feels premature.
Javascript generally runs on a website in a browser: The browser must be continually updated on the client side every few weeks at the very least.
Your software must work on all future browsers in 50 years time.
Security patches/privacy/laws/etc deprecate/change API calls regularly.
The website must continually update certificates, maintain payments to providers / keep valid credentials / not get hacked for 50 years.
Most javascript applications have a billion dependencies, and people rewrite using a new framework over updating if it's been a few years, never mind decades.
Keeping dependencies up to date for 50 years is a lot of work.
I don't know of any instances of anything javascript that has run continually for 20 years to date?
The languages listed above all have:
- a language specification; - more than one competing implementation.
Erlang doesn't have a specification, so you're actually writing code that runs on the maintained implementation of the VM. This effectivelly ties yours software to the lifecycle of the VM implementation, unlike a situation where diverse implementations and platforms that can execute some code.
JavaScript does have a spec, and it does have competing implementations. So if you're to restrict yourself to no dependencies, a standalone webapp could be added.
But not for JavaScript outside the browser: there have been efforts to make a coherent interface to the OS, but none stuck. So now you need to pick a platform to restrict yourself to.
---
I've explicitly highlighted the lack of dependencies with JavaScript just because how pathological this ecosystem is in this aspect. It doesn't have to be zero, and it does apply to other languages and ecosystems, but "a simple react app" absolutely fails this rule.