3 ms·
I think it would be a unfortunate for people to start redefining what "Systems Programming" means because it is vague enough now as it is - and we don't have th
by lesserknowndan 7y ago
I think it would be a unfortunate for people to start redefining what "Systems Programming" means because it is vague enough now as it is - and we don't have the luxury of being able to go back and update the term in the historic literature.
My understanding is that, in effect, "Systems Programming" is analogous to "Operating Systems Programming", or rather you might say (given the increasing size of operating systems these days) that "Systems Programming" is a subset of "Operating Systems Programming" that deals with the direct manipulation of memory in order to provide a useful abstraction for "user" software - remembering that most hardware interaction is via memory. Obviously, in order to do "Systems Programming" you need a "Systems Programming Language" that allows such direct access to memory.
These days, "Systems Programmers" would be those working on the Linux kernel, or microkernels, or graphics drivers (basically those who have complete access to memory) though those developing services one layer up might also consider themselves to be such (especially micro-kernal-based operating systems).
It is probably worth emphasising that "System" is a generic term that is used in a lot of different contexts. I think "Systems Programming" is used in the context of a "Computer System", while modern day cloud programming would be better described as "Distributed Systems Programming" as it is in the context of a "Distributed System" (though I've probably just annoyed a whole bunch of distributed systems researchers).
I think that what the author of the article is talking about is "System Architecture" (or perhaps "Distributed Systems Architecture").
Should we talk about this as programming at all?
- astrobe_ 7y ago> I think it would be a unfortunate for people to start redefining what "Systems Programming" means because it is vague enough now as it is Indeed. When people call something "systems programming" when it is just e.g. server programming, it feels like when you are being told that "hacker" means the same thing as "cracker" because that's what most people think it means. In my slightly angry opinion, "Systems programming" is one of those terms that are convenient because they are vague and look cool. The plural on "systems" is suspicious in itself. It's not just one system they are working on, but many. Impressive, isn't it? The funny thing is, if you look up the definition of "system": a regularly interacting or interdependent group of items forming a unified whole ... not so many people actually do that. I think programmers usually work on one thing, one component of a whole system (guess why you are part of a team?). I'm not sure about how uncommon the opposite is because I actually do that - I have worked at the driver level, OS configuration level and at the application level in order to make a product work - and I am not that much of an exceptional programmer.