12 ms·
The Birth and Death of JavaScript (2014) [video]
- thunderbong 5y agoSubmitted multiple times earlier. The thread with the most comments (227 comments) - https://news.ycombinator.com/item?id=7605687 https://news.ycombinator.com/item?id=7605687
- base698 5y agoWat?
- tbrownaw 5y agoI think it's not too unreasonable to say that this includes a successful prediction of webassembly.
- maven29 5y agoWasn't the contemporaneous asm.js already in commercial use in 2014?
- AprilArcus 5y agoasm.js already existed when this was written with AOT compilation support in Firefox
- m1kal 5y agoI tend to disagree. Asm.js is dying. Webassembly is not "everything on top of JavaScript". While higher layers can work the same as they could with asm.js (still in the web browser), it's not what GB predicted.
- qbasic_forever 5y agoI get more and more excited the closer we get to an eventual reality that a kid learning about programming, operating systems, Linux, etc. is just a click on their phone away from starting it all. No gatekeepers--appstores, sideloading, hacks, jailbreaks, locked down BIOS, etc.--to hold them back. Your browser, a shell, and the entire world in front of you.
- croes 5y agoAre we getting closer or is it the opposite?
- qbasic_forever 5y agoVery close, almost all of POSIX is implemented in browsers now. Look at for example JSLinux https://bellard.org/jslinux/ https://bellard.org/jslinux/ for the classic example, or more recently stuff like pyodide that compile real desktop Python to run fully in the browser with WASM https://github.com/pyodide/pyodide https://github.com/pyodide/pyodide AFAIK there are a few loose ends still TBD with WASM & WASI to support sockets and networking, but once that's in place we'll likely have a full WASM POSIX environment in your browser. Get some of the core tools like gcc, etc. prebuilt and you're good to go to just start building the world in your browser. No app store reviewer to hold you back, no megacorp to decide homebrew apps aren't allowed anymore... the world is your oyster to create and share anything.
- dmitriid 5y ago> almost all of POSIX is implemented in browsers now. POSIX is not implemented anywhere. There are degrees to which it's implemented in various systems. It also doesn't mean that having POSIX implemented makes things accessible to anyone, or that this 40-year-old standard is even relevant anymore. > Look at for example JSLinux https://bellard.org/jslinux/ https://bellard.org/jslinux/ for the classic example It doesn't mean that POSIX is implemented in the browser: - it's basically an emulator running on top of some browser tech that runs linux. - Linux is mostly, but not entirely POSIX-compliant > we'll likely have a full WASM POSIX environment in your browser. Get some of the core tools like gcc, etc. prebuilt and you're good to go to just start building the world in your browser This will literally never happen outside of some geek circles. If only for the simple reason: you'll have to download the entirety of Linux and its tools into the browser for every user.
- qbasic_forever 5y agoI don't know where your rage is coming from, other than to be a pedant. Downloading the entirety of Linux, coreutils, etc. _is_ the point. Right now a kid with an iPhone is limited to programming it with whatever toy apps Apple has decided to allow on their app store. Or on Android you're lucky to be allowed to use Termux to run a little proot environment to mostly use core linux tools. There's _no_ way for that kid to learn and use 'real' programming languages and tools--want to learn rust? Sorry, you're SOL. Want to program some Go? Not going to happen. Etc. But give that kid a browser window that's a full POSIX shell with gcc and all the coreutils built. Perhaps some CDN hosting precompiled packages just like apt/rpm/etc. repos... and now we're talking. They can do _anything_ and no app store limit or whatever will stop them. This is precisely for geek circles. The kind of geek that opens up that weird qbasic.exe they found rooting around their parents DOS machine and then blew their mind at the possibilities. We don't have anything like that for kids today and it's a real shame, but the birth and death of JS demo here made into reality can change that. I look forward to the day some kid clicks a link, sees a blinking bash prompt and a pointer to read some man pages or help files and has their mind blown too.
- bryanrasmussen 5y agosad news for some people but now that it has been truly made independent of the browser JavaScript will never die, in the same way that every other programming language that has ever been used to build applications is still puttering around. There are too many people with worthwhile JavaScript skills to service, too many companies who have things built in it and employees with those skills who will keep building things in it. Maybe in 2050 there will be Cobol style posts on HN about JavaScript. on edit: changed removed from to something more understandable
- tedk-42 5y agoJavascript will never die, unless there's something to come along and either replace browsers or replace the scripting language used by browsers. WASM is not a replacement to JavaScript and never will be. It's not even a damn language.
- brutal_chaos_ 5y agoI beg to differ. WASM, if it doesn't go off the rails with future revisions, will supplant JavaScript because of WASM being a compilation target. This, in effect, opens up any language to run on the web. JavaScript may not fully disappear, but usage will most likely greatly diminish.
- Fergusonb 5y agoJavascript is still popular today even if you ignore the browser. Node is all over the place.
- tedk-42 5y agoA small JavaScript text file which can currently run natively on any browser will always be far superior to a binary WASM blob that's compiled. WASM fills in a use case where you need to run highly performant code on a browser. It just so happens that you can write it in whatever language you choose.
- qbasic_forever 5y agoThere's no difference--that small JS text file gets compiled on the fly into platform-specific assembly language with today's JIT compilers in browsers. WASM is just skipping the text source step and giving browsers something they can compile directly. I do agree it is a shame to lose direct insight to the text source code, but let's be honest the production JS shipped to browsers today is far, far from being human readable. It's minified and shrunk to the most small and incomprehensible degree to save bandwidth. View source and try to read and understand the JS on any big site like facebook.com, etc. and you won't get very far.
- trixie_ 5y agoI was thinking of a new 'open source website' concept, where you can call your website 'open source' if all the javascript behind it is unobfuscated/unminified, comments still there. I would even like to take it a step further, an 'open source' OS where every binary has symbols available. The system can be stopped anywhere and the full stack trace is understandable.
- junon 5y agoSymbols being stripped isn't usually for "open source" reasons. Neither is minification. It's done to reduce sizes. A binary with symbols has tons of extra crust that is largely unnecessary. Even if you have them, what good does a stack trace do if you don't also have the source to fix it?
- DaiPlusPlus 5y ago> Even if you have them, what good does a stack trace do if you don't also have the source to fix it? It makes patching the binary yourself a heck of a lot easier. As is often the case with legacy enterprise software from a vendor now long-gone…
- junon 5y agoDo you want full open source? Or allow enterprise software? pick one.
- DaiPlusPlus 5y agoHow are those mutually exclusive? Enterprise software ends up as something invariably so specific to the company using it that it doesn’t matter if it’s open-source or not - absolutely no-one could extract any value from it than the original company and whatever kafkaesque internal processes lead to its development. Anything more general-purpose is already commodity - ERP being the prime example.
- trixie_ 5y agoThe point is complete transparency into everything happening on your computer through installed application, operating system, or loaded website. Absolutely nothing would be running as an obfuscated binary. The source to build it is not just 'open'. All running binaries would be able to be mapped to their corresponding source.