This will be another upgrade for my dev machine running NixOS since 17.something times. Thanks to all maintaines and release managers over the years for such solid work!
Humans have two copies of each chromosome. Plants in nature can have many more, and some can be induced to duplicate their chromosomes which sometimes gives them larger seeds and resilience to environmental conditions. Similar to hybrid crops but somehow containing the full genomes of both parents. Bread wheat is hexapoloid (containing sub-genomes from three varieties of wheat) and quinoa is tetraploid (containing two different species). There have been projects for ~100 years to make polyploid rice with heavier grain-weight, but they haven't been able to reproduce.
Couldn't agree more. To me 3D environment in games is frustrating to control / move around while 2D is straightforward. And I truly don't care about camera movement. Games are meant to be fun, not a chore with adjusting camera all the time.
Big fan of htmx here, so thanks for opening my eyes to a new way of using it with service workers.
But man, 10MB Go WASM download? That's a no go. It's not only about downloading it but executing on a clients machine over and over again. But I guess you can handle those requests perfectly fine just in service worker using pure JavaScript.
Go and even TinyGo aren't a great fit for Wa because they have to bring along their own runtime including a GC. Go can't use WasmGC because it lacks support for interior pointers and unboxed heap primitives: https://github.com/WebAssembly/gc/issues/59
So you'll never get Go Wasm binary sizes down to something reasonable, alas.
I did a bunch of game jams in various wasm langauges last year and what I got out of the experience was that you can do anything if you set your mind to it, but unless you have a good reason to use WASM (e.g. the performance?) you're generally going to be adding headache (build tooling, wrangling data between languages and runtimes, etc.) rather than removing it.[0]
(Some languages in particular are remarkably inflexible regarding how they want you to use them in this context.)
So seeing no real benefit. I ended up switching back to TS. I became depressed shortly afterwards, but that's probably unrelated ;)
Still, wasm game dev was a delightful experience in many respects and I would recommend it to anyone who's interested. ("Elimination of headache" is not necessarily an unambiguous good. Some headaches are genuinely worth it! Just depends on your taste and your goals.)
[0] My "favorite" bug was spending the last day of a game jam stuck on a bizarre compiler bug that would only manifest in the wasm version of the game... but I got it figured out in the end!
Using Rust instead of a Go would provide a smaller binary since it doesn't need a runtime. Compared to JavaScript apps, it's not terrible but also not great. One thing WASM has over JS is that it can decode and compile code in parallel across multiple threads as it streams in.
For comparison, opened a random NY Times article. It downloaded 19MB before the page loaded, and then tried to show me an ad (it failed to load, for some reason), and then refused to actually show me the article.
I know it's "whataboutism" but I thought it was pretty funny.
I've been doing no-build apps for a couple years now and it's been a great ride. The thing is you need to stick to the basics of the web, which tailwind isn't.
That's just my $0.02, some upsides, some downsides, it may not work for everyone.