Underlying factors

Whatever language you might think the universe runs in, the plain and simple truth is that, underneath, it is all implemented in C.

(I’m thinking that the workshop-to-be needs a shrine dedicated to Wayland. In the shrine go icons of Gagarin and Armstrong, and possibly a copy of Kernighan & Ritchie.)

22 thoughts on “Underlying factors

    1. C has about a million ways to shoot yourself in the foot, and makes no apologies for doing so. Actually, a lot of security problems that exist today are mostly C shooting coders in the foot.

      But when it comes to low-level fast code, C is the weapon of choice. It’s just barely above assembly – the original authors (K&R) goal was to make a language that was more or less portable assembly, for writing low-level parts of operating systems (the kernel, mostly). Writing them in C meant you could migrate your kernel from one architecture or machine to another by (in theory!) just using a different compiler.

      Personally, I love C. You just don’t get as much of a feeling of the hardware you’re on in very high level languages like Java. There’s so much abstracted away from you that you can write Java without ever understanding how a CPU works, or how an OS works. Learning C is on the path to understanding those things.

      Is interesting to note that when I was doing 2nd stage CompSci (many years ago now!), for the first assignment in C 75% of the submissions crashed at some point during testing by markers. 🙂

          1. C++ makes perfect sense if you view it as the creation of a weakly-godlike entity, struggling to make the perfection of C more accessible to mere humanity.

            I know I’m positing Stroustrup as the demiurge here. This is considered heretical by several prominent religions, but I seem to be in good company.

          2. Struggling in that it just confuses everyone, even the people who created it.

            (I’m contemplating seriously learning Lisp – well, Clojure at least, which is a new distributed Lisp that lots of people are excited about).

          3. I had to use Lisp at the best software company I’ve ever worked for (though only for writing unit tests). I just didn’t get it, but that’s probably coz I’m not a good programmer. Maybe with a decade of working at it, I’d have broken through to an entirely different level of programming skill, but in all honesty, I have other tasks that suit my skills better.

          4. I want to see “the light” that everyone keeps talking about. But then certain types of brain damage make you see lights too.

            (mostly I get it, but it’d take a while to start naturally writing code in a “functional” way)

          5. I want to see the lights too, the whirling coloured lights burning their way through my eyelids as the Mitochondrion Mark 5 kicks out over five thousand lumens. Getting this done only requires a competant level of programming.

            (Putting my face up to Old School Techno was interesting, you could see the light and feel the heat pulsing in time to the tunes. Thus the Mitochondrion Mark 3 isn’t bright enough but a long way)

          6. Yup, though I have plans for Mark 3… which need me to split the sound into five frequency bands and that’s a piece of hardware I’ve yet to work out the best way to manifest.

    1. It’ll run on any Turing machine. It might be a tad slower on some, but only to an external reference frame, so there’s no perceived change in simulation rate to those within the simulation.

    1. C looks very much like assembly if you squint.

      Having cut my eye teeth on assembler for at least 4 different architectures (including 8086), I would vigorously deny that statement! Oh, and by the way, I’m quite shortsighted, so squinting comes easily…

      And I’ve used other “high low level” languages that map clearly onto the underlying hardware and none of them look like assembly…

    1. Which Wayland Smith? Coz that’s an old name and there’s been a few of them. I’m mainly thinking of him what’s venerated by Wayland’s Smithy.

Leave a Reply

Your e-mail address will not be published. Required fields are marked *