I started to view it has a personal failure when I brought in that first dependency, which meant needing all of the packaging and organization just to use that first package.json, rather than just having plain js loaded from a script tag.
I started to view it has a personal failure when I brought in that first dependency, which meant needing all of the packaging and organization just to use that first package.json, rather than just having plain js loaded from a script tag.
Even though it's just for my personal consumption, and I doubt more than five or six people will ever see it, I ended up having to use NodeJS and HTML because it's simply the best solution.
Imagine an alternate timeline where Google decided to offer other languages as first class citizens in the browser. Could you imagine Golang or Dart. No compiling down to JS, just running natively.
I'm doing backend work mostly right now. If I start some other project, I'll probably try using htmx and tailwindcss as my two js script tags, and the rest will be controlled from the backend.
WASM is neat though. Tends to ship with mega blobs for now
https://web.archive.org/web/20150328124454/https://news.dart... (yes, they took it down so Wayback to the rescue)
The GC barrier overhead is too damn high!
Your simple to learn programming language is what took me from a broke college dropout to six figures in about 3 years.
It's the first programming language that actually stuck with me, even though one of the senior developers at my first salaried job actively hated it. He was an old Java guy though.
Do you feel that JavaScript is always a capable tool for the job?
At a lot of companies, at least when I started programming 10 or 12 years ago, we'd have a bunch of front-end people who are nifty with JavaScript and just tell them to write NodeJS server code.
JavaScript is still my go to language when I just need to get something done. With Python a close second. C# has it's place for larger projects ( as well as stable employment).
I'm actually a bit excited for WASM. For a good while you had companies shipping plugins to extend the browser, first Adobe with flash, and then unity with their Unity Web plugin. Which lasted about 2 years before they started building native web builds.
Now everything is compiling straight to JS or JS+WASM.
JS is not the hammer for all nails, but ubiquity means it will be used to pound in screws and bolts more than it ought to be.
I fire up Node but also Python from command line; Wolfram Alpha in browser.
Wasm was the victor in old plugin vs. integrated PNaCl style VM vs. polyglot VM battles. JS VMs (ubiquitous again, and see write barrier cost of poly-GC vs. mono-GC down the page in my linked comment) rather more easily became polyglot via WebAssembly as second syntax low enough to target from other languages' compilers.
Still more to do on the Wasm roadmap. Always more to do...
Or does WASM make this unnecessary?
I actually really like Flutter Web, Google has done an amazing job with it. I built a small game for a friend, but it's not as customizable as an actual website coded in JavaScript.
It appears they've taken a hybrid approach where you get both a JavaScript and a Wasm build.
https://docs.flutter.dev/platform-integration/web/wasm
I feel like Unity in particular has really pushed the limits of what you can do in a browser. For example, I have a simple 3D game that performs just as well as the android build.
As far as making a small game, it's very easy to get someone to open a link. The browser sandboxes every and protects you.
It's near impossible to convince someone to download a binary, with good reason.
One last question. Do you consider yourself to be a Computer Science pioneer ? Your literally responsible for the foundations of the modern web!
MS throwing money at C# native VM (the CLR? Silverlight's DLR? lol) as second VM in browsers, with separate GCs bridged, incurring the write barrier overhead that I cited already? In all browsers, not just the ones MS can bribe to do the considerable work? No.
C# compiled to WebAssembly? One GC, all good, perhaps some warm evolution is on order, but it is an incremental cost.
"Dedicated to the memory of William Schelter."