Live data from Hacker News

What Is Systems Programming, Really? (2018)

willcrichton.net

1–10 of 81 posts

Re: What Is Systems Programming, Really? (2018)

#2
Will 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 figures behind C++, Rust, D, and Go gave radically different and unrelated answers: "client applications," "resource-constrained applications," "cloud infrastructure," and "unsafe pointer casts."

If anything, a more practical definition is "only C and C++ are systems programming languages, by fiat, because it's an artificial category whose historical roots have long since lost pertinence."

Re: What Is Systems Programming, Really? (2018)

#4
The expression is redundant isn't it? Only systems can be programmed. You can't program a cinder block or a cardboard box. I think this is just an early way to say 'software development' and people got caught up on their own mental images of what 'systems' are to them.

Re: What Is Systems Programming, Really? (2018)

#5
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 contender.

Re: What Is Systems Programming, Really? (2018)

#6
post #4

The expression is redundant isn't it? Only systems can be programmed. You can't program a cinder block or a cardboard box. I think this is just an early way to say 'software development' and people got caught up on their own mental images of what 'systems' are to them.

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

Re: What Is Systems Programming, Really? (2018)

#7
Perhaps from my limited AI-centric point of view, I have a simple definition of Systems Programming: when I hit enter and run Python/C/C++/Java program, what actually happens?

In AI, we think of mathematical algorithms, but computers do not understand math. Math is a purely human invention, computers have no idea of math. Nor computers understand Python or C. The only things CPUs are designed to understand are 0s and 1s, quite literally. It's a very long road, and lots of layers of abstractions, from 0s and 1s to Python (or C for that matter). This long road is Systems Programming to me and I find it quite fascinating.

To do Systems Programming, I would think you want direct access to hardware, to the metal itself. C and C++ (some other languages? C#?) provide such an access. Python (or Java) does not provide such unfettered access to the hardware. Having said that, I find author's assertion, that "Dynamic programming languages ... are not conducive for good code quality", both inaccurate and irrelevant to the System Programming assessment.

Re: What Is Systems Programming, Really? (2018)

#8
post #6
post #4

The expression is redundant isn't it? Only systems can be programmed. You can't program a cinder block or a cardboard box. I think this is just an early way to say 'software development' and people got caught up on their own mental images of what 'systems' are to them.

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.

Re: What Is Systems Programming, Really? (2018)

#9

Perhaps from my limited AI-centric point of view, I have a simple definition of Systems Programming: when I hit enter and run Python/C/C++/Java program, what actually happens? In AI, we think of mathematical algorithms, but computers do not understand math. Math is a purely human invention, computers have no idea of math. Nor computers understand Python or C. The only things CPUs are designed to understand are 0s and…

(some other languages?) Assembly, of course. `unsafe` rust.

Re: What Is Systems Programming, Really? (2018)

#10
In IBM mainframes, "systems programmer" (sysprog) traditionally means "system administrator". Part of the reason for that, is a systems programmer was expected to be accomplished at assembler, which was used to write user exits (to customise the behaviour of the operating system to meet the needs of each site) and even patches to the OS code (SYSMODs). Operators were responsible for day-to-day running of the system (startup, shutdown, mounting and unmounting tapes and removable disk packs, changing forms in printers, starting jobs, resolving minor technical problems). Sysprogs were responsible for installation, configuration, customisation, upgrades, troubleshooting more complex problems, etc. Over time, the need to customise the code of the OS declined, and IBM made the OS much harder to modify by taking away customer access to source code (IBM's 1983 "Object Code Only" announcement) – so contemporary IBM mainframe system administration involves much less programming than it used to, but the name has stuck. Also, you no longer have to write user exits in assembler – C is supported (e.g. using IBM Metal C), as is PL/X (if you work for IBM, or one of the small handful of ISVs who ordered IBM's PL/X compiler during the brief period they were offering it to them)
Post reply on HN