Re-reading Vinge's "The Peace War". In it, via a macguffin that isn't important here, the Peace Authority controls all high power tech and weapons and bans them from everyone else. The "Tinkers" have become more technically advanced under the radar but with very low power equipment. Have we built that world now? The big datacentres have all the powerful hardware and all we can afford are 1G VPSes and 8G laptops? We can't win this rigged game... how do we change the rules?
Maybe one way to change the rules is to stop writing code that needs big hardware. The old options were C or C++ for speed and efficiency (which are difficult and dangerous) or Python, Ruby, NodeJS, Perl, PHP for quick and easy coding (but which are fat and slow). But we have better options now, better compromises... #RustLang, #NimLang, #GoLang, #CrystalLang ... the legacy languages have become the tools of the oppressor
@joat I wouldn't say golang was particularly lightweight. Try fitting a binary executable on a microcontroller.. My rule of thumb is an executable binary, minus resources should happily fit on a floppy disk (even if it never goes there). That's a lot of opcodes. Clever use of formats for graphics resources can still fit most modern style applications into that footprint.
@zymurgic I'm not talking about microcontrollers though... we don't run PHP on microcontrollers either. I'm talking about small VPSes and small desktops. I have a 1G VPS that runs Syncthing, Writefreely, and Vaultwarden (2 Go binaries and one Rust, and that's not counting nginx in front) with half of the RAM unused. If those services were Python, Ruby, PHP or Perl it would struggle to run everything concurrently and it would be unusably slow.
@joat @zymurgic i will only add that 2 go binaries can be built together and will take way less then if built separately
@pancsta @zymurgic they share a copy of the stdlib, I presume?
@joat @zymurgic stdlib and the VM and possible common deps (eg Otel). Its the cost of statically linked binaries, and ofc theres tinygo and tamago for the brave. What sucks is that WASM embeds are essentially separate binaries...