>>4I hate when people write in a flame-baiting way. I've also done all three, and if he truly believes that's true across the board he's a fucking moron.
"Extreme" systems level programming, like writing drivers, kernel modules, OS, etc, just requires a lot of knowledge in a restricted environment (can't even use most of libc / write to files in in a kernel module, for example), but it's not necessarily hard. Just hard to
get into, and also the "APIs" change rapidly at that level and are not documented at all, so you end up having to read the kernel source code / reverse engineer shit.
Less "close to the hardware" systems level programming like writing networking daemons, is still systems programming to me, just in the userland. That can be a lot harder depending on what you're trying to achieve. To make a reliable, fast daemon, shitty high level untyped languages can suck my dick. They give you more problems at a runtime level than they ever solve.
The only time where high-level "application" programming is "harder" is when the algorithms themselves you need to write or deal with are hard, such as writing cryptographic protocols, machine learning software, distributed systems, etc.