3 ms·
See https://news.ycombinator.com/item?id=42838110 https://news.ycombinator.com/item?id=42838110 (downthread). Polyglot VMs are hard to pull off and always have
by BrendanEich 2y ago
See https://news.ycombinator.com/item?id=42838110 https://news.ycombinator.com/item?id=42838110 (downthread). Polyglot VMs are hard to pull off and always have a _primum inter pares_ (C# for .NET, Java for the JVM, JS for the JS+wasm "Web VM").
- 999900000999 2y agoThank you for JavaScript! 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.
- BrendanEich 2y agoThanks for the kind words. 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...
- BrendanEich 2y agoFriend shared https://maxima-on-wasm.pages.dev/ https://maxima-on-wasm.pages.dev/, very cool to see old Lisps live again thanks to Wasm. "Dedicated to the memory of William Schelter."
- 999900000999 2y agoHypothetically if Microsoft threw enough money at it, could they get C# to work natively in the browser ? 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 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!
- neonsunset 2y agoIt's unlikely to be a money problem (nor Microsoft cares that much about .NET to do so). WASM also makes it pretty much irrelevant. Current Mono-WASM solution works decently enough but is far from perfect. Hopefully NativeAOT-LLVM project gets released in the next couple of versions as it improves the performance and bundle size massively.
- BrendanEich 2y agoRight, wasm is the low energy path. IMO you should think about this problem-space of the Web as an evolutionary system, with costs weighting all the paths through a graph from current state to future state. 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.