Ultimately, the author comes to a dubious conclusion by ignoring the context. By studying what people were writing about in the 70s, he also ignores the context - it was a given that any program of significant size or of a fundamental nature would compile (efficiently) to machine code. The hardware was too weak to support anything else. A language that didn’t satisfy certain performance criteria wouldn’t even be a co…
What Is Systems Programming, Really? (2018)
71–80 of 81 posts
Re: What Is Systems Programming, Really? (2018)
#72Earlier quoted context omitted.
In practice, the demarcation line for "systems programming" is when the software directly controls and manages the hardware resources it uses. Software like this takes on some of the characteristics of an operating system because it is required to provide similar functionality, even if not an operating system per se . In application code, some other piece of software, usually the operating system, takes care of this…
Under your definition, would embedded programming fall under systems programming or do you see them as distinct areas?
Re: What Is Systems Programming, Really? (2018)
#73To the extent that there is a real distinction between "Systems Programming" and "Whatever is not Systems Programming" and to the extent that this distinction matters, I tend to align with the take espoused in the Systems Programming[1] Wikipedia page: The primary distinguishing characteristic of systems programming when compared to application programming is that application programming aims to produce software whic…
We have the word "middleware" to describe that.
If you look how the word is used, "systems programming" does clearly not mean that (personally, I don't remember ever seeing it used that way). It's more used as an architecture paradigm, where you don't expect a lot of things to be abstracted, for whatever reason. The word choice is obviously because the underlining system that provides those abstractions is architected this way.
The distinction is actually relevant in a lot of contexts. As we get better languages and compilers that provide lower cost or more expressive abstractions, it is getting less and less relevant, but it still has a lot of relevance. And yes, it's a fuzzy concept like any other software architecture one.
Re: What Is Systems Programming, Really? (2018)
#74To the extent that there is a real distinction between "Systems Programming" and "Whatever is not Systems Programming" and to the extent that this distinction matters, I tend to align with the take espoused in the Systems Programming[1] Wikipedia page: The primary distinguishing characteristic of systems programming when compared to application programming is that application programming aims to produce software whic…
Re: What Is Systems Programming, Really? (2018)
#75Earlier quoted context omitted.
I kinda see what you mean, but systems is an exceptionally vague term. Popular use and even the formal field of Systems Science is hardly more related to computing than any other area of society. Everything programmed are systems but not all systems are programmable
>but systems is an exceptionally vague term. I don't understand the use of but here. This doesn't contrast with what I said. >Everything programmed are systems Then 'systems programming' is a redundant turn of phrase. You don't say you're 'food cooking', while there are foods you don't cook.
I meant that I don't agree with your sense of the word 'system', as clearly and obviously referring to software development. Of ourse, if paired up with the words 'development' or 'programming', the association is there.
Still, the following titles reads to me as very different occupations:
- Systems Programmer (low-level, bare metal)
- Systems Engineer, (e.g. aeronautics, robotics, banking, requirements)
- Systems Developer (business domains, processes & people, services)
biases all mine
Re: What Is Systems Programming, Really? (2018)
#76Earlier quoted context omitted.
if we simplify it to being an OS (systems) vs a gui (applications) programs, we can see their purpose, philosophy, and reality. The OS' purpose is to run other programs, and thus that interface, Elf, is full of technical implementation details fitting the philosophy of a OS that allows multiple processes to run, and reality - Linux (OS) does not compete with Airbnb (application). Contrast this to a GUI program a user…
This appears both incomprehensible and wrong, but let me check if I understood. Systems: - Lacks a GUI. - There are technical details. - Doesn't compete with applications. - Memory pressure is an issue. Applications: - Has a GUI. - Need to be responsive. - Power usage is important. - Memory pressure results in slowness. I don't think we got any closer to a useful answer.
Re: What Is Systems Programming, Really? (2018)
#77Earlier quoted context omitted.
This appears both incomprehensible and wrong, but let me check if I understood. Systems: - Lacks a GUI. - There are technical details. - Doesn't compete with applications. - Memory pressure is an issue. Applications: - Has a GUI. - Need to be responsive. - Power usage is important. - Memory pressure results in slowness. I don't think we got any closer to a useful answer.
It can't have been that incomprehensible if you got that much out of it, but I mean if you're going to call me wrong, what's your take?
Re: What Is Systems Programming, Really? (2018)
#78Will makes a dubious claim to support a dubious distinction. Plenty of large, complex infrastructure is written in Python. > Dynamic programming languages are arguably still far from systems languages, > since dynamic types and idioms like “ask forgiveness, not permission” are not > conducive for good code quality. I find it amusing that, when asked to give a defining characteristic of systems programming, key figure…
Systems programming is about adjudicating contention for system-constraints and system constrained resources. It's about creating relatively clean interfaces to relatively thorny problems. It's only lost apparent pertinance because of the explosion in numbers of people "coding" web front ends or other things at the top of the stack, and because the code that solves some of these problems is well understood and complete. But underneath all what we do in the various userspaces is the same and even greater complexity of problems which require maintenance and development/porting to new architectures as they get developed
Re: What Is Systems Programming, Really? (2018)
#79Earlier quoted context omitted.
Systems programming is when you break-out from your shiny MVC API and libraries, and start reading section 2 of the Linux/BSD manual. When you start caring about process and thread affinity, memory allocation patterns, CPU cache performance, etc.
And the GPU. This is why a "systems" programming language makes no sense. You need many languages to address all the different kinds of hardware in your system.
Re: What Is Systems Programming, Really? (2018)
#80For me "systems programming" is just low level programming. You do it when you need to access the hardware, when you need performance. It seems a lost art. When I learned Pascal, C and C++ during high school most of my peers were learning and using these. Until early 2000s most of the software facing end users was quite low level because there was no way around it, people needed software that was fast enough. Even if…