3 ms·
That's one aspect, the other is targets with small(<10mb) footprints where GC falls over spectacularly when you don't have 2x your working set of free memory.
by vvanders 9y ago
That's one aspect, the other is targets with small(<10mb) footprints where GC falls over spectacularly when you don't have 2x your working set of free memory.
These aren't uncommon targets, the PSP traditionally had 8mb of system memory. Lots of embedded routers and "IoT" things, etc.
Part of this is confused by everyone having a different definition of "System Programming". In my view if there's a target where hardware constrains prevent suitable performance from a language then that language isn't fit to be considered a "System Programming" language.
- pjmlp 9y agoA systems programming language is any language usable to write a full OS with it. http://www.projectoberon.com http://www.projectoberon.com The only thing that Go lacks in regards to Oberon are a few intrisics in the unsafe package, easily doable in Assembly, just like ANSI C requires on its libc for bare metal programming.
- lodi 9y agoBy that definition Haskell is a systems programming language: https://en.wikipedia.org/wiki/House_(operating_system) https://en.wikipedia.org/wiki/House_(operating_system)
- pjmlp 9y agoOf course. C gets put into a pedestal, yet it is impossible to write an OS in pure ANSI C, without making use of language extensions or Assembly.