3 ms·
this is a narrow and arbitrary definition of "systems programming". you seem to be describing something closer to hard realtime computing, which is not the sam
by abiox 9y ago
this is a narrow and arbitrary definition of "systems programming". you seem to be describing something closer to hard realtime computing, which is not the same thing.
- dboreham 9y agoSeriously? He's using the term in exactly the way everyone uses it, even Wikipedia : https://en.wikipedia.org/wiki/System_programming https://en.wikipedia.org/wiki/System_programming
- abiox 9y agoif you read your link, even the wikipedia article authors do not restrict the notion to hard realtime computing. it's not really how "everyone" uses it. it's a narrowing that a subset of vocal people have been trying to push, i can only presume for ideological purposes.
- vvanders 9y agoThat'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.