4 ms·
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 ac
by g42gregory 4y ago
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.
- anonymous_sorry 4y ago(some other languages?) Assembly, of course. `unsafe` rust.
- g42gregory 4y agoRust - absolutely, for sure! In terms of Assembly, it's incredibly difficult to write an efficient Assembly code these days, especially in a multithreaded, multicore environment. In such environment, as humans we just can't compete with compilers any more. Reading and analyzing assembly code from C/C++, - sure that's absolutely necessary. Writing an assembly code from scratch, better than compiler? I am sure people do that but that's ... quite hard.
- anonymous_sorry 4y agoYes, but there are parts of the CPU instruction set which a compiler won't ever emit. If you are using those features, as certain low-level systems must, then you use assembly (typically shortish snippets called from a compiled program).