| ▲ | LinguaBrowse 4 days ago |
| Took me over a year to finish writing this monster of an article. 4,000+ words, 200+ links, and lots of research covering countless JavaScript runtimes and engines. Please have a read! I guarantee you'll learn something new. |
|
| ▲ | quotemstr 4 days ago | parent | next [-] |
| Thanks for putting in all this work. People should get more credit for writing good survey articles like yours. One of the regrettable quirks of our industry is the way we replicate theoretically language-neutral components separately in multiple language ecosystems and verticals. I wish we didn't a separate npm and cargo. I wish the polyglot runtimes you mention (especially Graal) would see more adoption. I wish we didn't have both Duktape and MicroPython. There's nothing language-specific about efficient garbage collection or compact bytecode or package dependency resolution. |
| |
| ▲ | LinguaBrowse 4 days ago | parent | next [-] | | Thank you very much! I totally agree on reinventing the wheel. I think our biggest tool towards that will be Node-API, which is the one low-level building block that JavaScript runtimes seem to agree on (and heck, I'm sure non-JavaScript engines could implement a decent chunk of Node-API). The Hermes team are currently interested in it (https://github.com/facebook/hermes/pull/1377#issuecomment-29...) for implementing heavy chunks of the ECMAScript spec like Intl and Temporal as plug-in features. It's interesting that you bring up tooling like npm and Cargo, I've never thought of sharing those. Although I'm no great shakes at Rust, I really, really liked how Cargo did things (e.g. optional dependencies and rigid library structure) and it'd be incredible to have that for the JavaScript ecosystem. Also do keep hearing nothing but great things about Graal, I think it's being slept on. | | |
| ▲ | serhalp 4 days ago | parent [-] | | > I really, really liked how Cargo did things (e.g. optional dependencies and rigid library structure) and it'd be incredible to have that for the JavaScript ecosystem. FYI: https://thenewstack.io/vites-creator-on-a-unified-javascript... | | |
| ▲ | LinguaBrowse 3 days ago | parent [-] | | I'm keeping my eye on Void0, yeah! If anyone can live up to such promises, it'll be them. They'll have a tough job getting sticky ecosystems like React Native to adopt, but hope to see them make a compelling case for their stack. |
|
| |
| ▲ | revskill 4 days ago | parent | prev [-] | | Just because he spent 1 year ??? |
|
|
| ▲ | kamikazeturtles 4 days ago | parent | prev | next [-] |
| I always wondered if there is still an ROI for writing a well researched in depth article. If the insight in the article is actually unique, it'll just get regurgitated by other writers and AIs a hundred times, maybe even with better visuals and diagrams and that'll be the article that gets all the clicks. |
| |
| ▲ | simonw 4 days ago | parent | next [-] | | The ROI can still be massive even if only a few people actually read it. It just takes one person who read the article (or found it later via search) to get a huge ROI if it resonates just right. A job opportunity, an invite to some event, a potential collaboration - the right reader can unlock all kinds of opportunities. | | |
| ▲ | johnisgood 4 days ago | parent [-] | | This is very true, in life in general. You do a good deed on the street right before your interview, and lo and behold, the person you did the good deed to turns out to be your interviewer! These things (be it an article or a good deed) can definitely pay off. |
| |
| ▲ | tommica 4 days ago | parent | prev | next [-] | | Maybe the ROI is something more personal than getting clicks? | | |
| ▲ | jbreckmckye 4 days ago | parent [-] | | It can be. But there is a certain existential dread, in the hours after sharing something, when you fear it might all have been toil in obscurity | | |
| ▲ | LinguaBrowse 4 days ago | parent | next [-] | | I had some faith this time as I saw a good handful of readers opening the email just moments after I'd posted the newsletter out! And while I figured Hacker News would be a coin flip, for other sites that show link previews, I was optimistic that the cartoons would encourage a click, too. In a time where many writers are using soulless AI-generated poster images, just putting in a token effort to do something original goes a long way. | |
| ▲ | chistev 4 days ago | parent | prev [-] | | I feel this way. |
|
| |
| ▲ | LinguaBrowse 4 days ago | parent | prev [-] | | Author here – the return on investment will be modest, no doubt. I started the newsletter in order to share any thoughts on various topics without having to please a social media algorithm to get seen. Winning a few new readers for my efforts is all I'm really looking! As for the article getting regurgitated, I am not too worried. It is simply an awfully long, awfully dense article for any LLM to synthesise more than a handful of bullet points out of, so I think any derivative product is going to make for a far less engrossing read. Indeed, if you try asking ChatGPT about runtimes right now, you'll get a pathetically shallow and mainstream analysis. There may well be clickbait articles spawned from this, but I'm optimistic that people will find the source and be able to tell in an instance that it's the Real McCoy. | | |
| ▲ | jjkaczor 3 days ago | parent [-] | | Naw - the internet enables "long-tail" content - but I say this as a person who occasionally writes VERY long "blog-posts" that are technically KB/how-to, magazine article length... Yes, AI will scrape it and regurgitate it - but over-time it will reach people who need to know - plus it is also helpful for oneself... |
|
|
|
| ▲ | leptons 4 days ago | parent | prev | next [-] |
| Did you consider things like JScript.NET? jsc.exe still comes with every Windows installation, and JScript still runs on IIS server (I have built a few things with it). And what about things like Adobe Photoshop, After Effects, Premiere, and Illustrator which can run Javascript using either Extendscript in older versions or V8 in modern versions. https://developer.adobe.com/xd/uxp/uxp/versions/ https://developer.adobe.com/photoshop/uxp/2022/ps_reference/ |
| |
| ▲ | LinguaBrowse 4 days ago | parent [-] | | > Did you consider things like JScript.NET? jsc.exe still comes with every Windows installation, and JScript still runs on IIS server (I have built a few things with it). I've not heard of any of these, wow – very cool that it's still bundled with Windows. I suspect that most things related to JScript wouldn't fit the scope of "the last decade", though? I tended to focus on creation date when deciding what should be in scope. > And what about things like Adobe Photoshop, After Effects, Premiere, and Illustrator which can run Javascript using either Extendscript in older versions or V8 in modern versions. Hmm, these may well qualify, you're right. Maybe I can add them to the addendum. I'd want to do a bit of research to understand their timeline and genealogy before including them, though. Wrists beginning to hurt for today now, though! I do recall now that Adobe PDFs can run JavaScript. That would've been worth a mention for sure. |
|
|
| ▲ | Imustaskforhelp 3 days ago | parent | prev | next [-] |
| This is the first time I have ever signed up for a newsletter and I did it without reading the HN comments or the fact that you wrote it or it took so long to write. I really appreciate such deep dives, though I admittedly knew some of them because I was also obsessed much like you with the edge/ js engine space but still I learned a lot I really liked reading through the blog. Please, take your time, rest and create such beautiful masterpieces in the future too, I would be waiting for them patiently! Have a nice day. |
| |
| ▲ | LinguaBrowse 3 days ago | parent [-] | | Thank you for the kind words! Glad to get this one out of the way so that I can do some less ambitious articles for a change. But hope to make them good in their own way, too! |
|
|
| ▲ | n0n0n4t0r 4 days ago | parent | prev | next [-] |
| I indeed did learn (a lot).
Thank you sir for this monster:) |
|
| ▲ | pjmlp 3 days ago | parent | prev | next [-] |
| It was a very interesting read, thanks for the effort and sharing it with us. |
|
| ▲ | nabwodahs 4 days ago | parent | prev | next [-] |
| I'm relatively new to the JS/TS space and I'm building a mobile app that needs to run on both platforms. Also building a back end for it using Deno. I thought this article was highly informative and useful. Great job, and thanks! |
| |
| ▲ | LinguaBrowse 4 days ago | parent [-] | | Thank you! I'd tend to default to Expo if building a mobile app in JavaScript these days, but Capacitor, Tauri, and NativeScript are all good options too. | | |
|
|
| ▲ | Neurrone 3 days ago | parent | prev | next [-] |
| Incredible article. I never knew there were so many JavaScript runtimes out there, and that it was possible to run JavaScript on microcontrollers. |
|
| ▲ | frankietaylr 4 days ago | parent | prev | next [-] |
| Fascinating read. Great work on the research. Where do you think it will go from here? |
| |
| ▲ | LinguaBrowse 4 days ago | parent [-] | | As for JavaScript runtimes, having seen Lynx (and some of the internal work NativeScript is doing), I'd like to see more engine-agnostic runtimes rather than coupling each runtime to one engine. As for writing, I'd like to stick to more manageable topics in future so that I can write as a hobby rather than as daunting work. My previous "Frontend predictions for 2024" (https://buttondown.com/whatever_jamie/archive/frontend-predi...) was similarly thorough and took an exhausting rush to write up. But simpler articles like "Staying productive with chronic pain" (https://buttondown.com/whatever_jamie/archive/staying-produc...) were all possible to finish in a weekend. There's probably a good story in Node-API, but I think I'd rather take on a research-light topic for a break first! |
|
|
| ▲ | syrusakbary 4 days ago | parent | prev | next [-] |
| The article is awesome. Thanks for the mention to Wasmer and WinterJS. Cool things coming in the pipeline! |
|
| ▲ | Tokumei-no-hito 4 days ago | parent | prev | next [-] |
| it's interesting that a lot of innovation happened on mobile runtimes to deal with apples JIT restriction. what was that about and why didn't android have the constraint? of course i can look it up, but you probably have a better insight than the slop i'll find off google. thanks for the article. these days it's rare to see something so well researched and written while still being able to tell it was authored by a human. cheers |
| |
| ▲ | toast0 4 days ago | parent | next [-] | | Apple has a JIT restriction because JIT introduces native code that was not present during app review, and app review is where they prohibit calling non-public APIs, at least historically. Android doesn't have a JIT restriction. API restrictions are expected to be enforced at runtime, not through review time checks. | | |
| ▲ | quotemstr 4 days ago | parent [-] | | > Apple has a JIT restriction because JIT introduces native code that was not present during app review, and app review is where they prohibit calling non-public APIs, at least historically. Another regrettable thing about our industry is the proliferation of locked-gate-in-an-open-field-tier security theater. Apple's PROT_EXEC restriction has zero security benefit: anything JIT-compiled code can do, interpreted code can do too. (In the same vein, macOS Santa (used by many a tech company to police programs runnable on Apple developer endpoints) doesn't restrict script launches at all. The interpreters that Apple ships with macOS have built-in FFIs like Python ctypes that enables programs launched using these interpreters to do anything a Mach-O binary can do.) While I respect the sweat and cleverness that went into making JS runtimes work efficiently while wearing Apple's no-PROT_EXEC hairshirt, none of this work ought to have been necessary. Imagine how much further ahead the industry would be if these big brains had focused on solving some other problem. | | |
| ▲ | LinguaBrowse 4 days ago | parent [-] | | I totally agree that the lack of JIT has been a huge waste of human resources. NativeScript and React Native have had to move so many mountains to make viable software despite it. |
|
| |
| ▲ | LinguaBrowse 4 days ago | parent | prev [-] | | The other reploies seem to have answered it! I've never understood why iOS allows JIT inside WKWebView yet not inside bare JavaScriptCore. Maybe because WKWebView runs in its own separate process while a JavaScriptCore instance would run in-process? As for Android, guess Google are just a little more gung-ho? > thanks for the article. these days it's rare to see something so well researched and written while still being able to tell it was authored by a human. cheers Really appreciated, thanks! I do despaire that the ease of generating content with AI disincentivises (and discourages) authors from expending real effort, but there's a satisfying inflection point at which you can be sure you've written something that an LLM couldn't possibly have come up with. |
|
|
| ▲ | fud101 3 days ago | parent | prev [-] |
| didn't read it, was too long and the parts i skimmed were dull. |
| |
| ▲ | progbits 3 days ago | parent [-] | | It's fine to not like things, but what exactly is the point of your comment, other than being mean? | | |
| ▲ | fud101 3 days ago | parent [-] | | I dont know, but i'd love to know more about Javascript in general so I found it especially bad. Just my 2c. |
|
|