Follow

This is an article I *really* want to disagree with—I *want* to fully understand my computer—but I'm not sure that I can. codefol.io/posts/no-such-thing

> You cannot learn computers “down to the bottom" because there is no bottom. And you can’t learn them "just far enough that you fully understand them” because there is not some fully understandable, predictable layer between deploying your Node.js app to Heroku and “the bottom,” which does not exist.

@codesections Well, most of that is… if not wrong, draws a wrong conclusion. Yes, C is not much like a modern CPU, but it presents a reasonable model for thinking about low-level code, C is still among the fastest compiled languages, and most importantly you'll always need it in a HLL to talk to libraries. I write new Scheme FFI code in C every week or so.

And C doesn't pre-date threads, timesharing dates back to 1959.

@mdhughes @codesections I don’t even understand the premise, it’s right or wrong depending on how you define being a “better programmer”.

The idea that you can’t know the computer all the way down is false, especially if you acknowledge the existence of computers other than the x86 PC.

@codesections When I first discovered computers, a big part of the draw was determinism. If I learn the rules, I can make the machine do what I want. If the machine misbehaves, it’s because I gave the wrong instructions.

By the time I realized that was no longer true, I was in too deep to escape.

@codesections I agree with almost all he says. I learned asm and C to program AVRs, and it worked great for that. It carried over nicely to Cortex M. So it has its value in this area, but for "big computer" programming I wouldn't choose C simply because it's too much of a hassle. I write PHP scripts because it's easy and fast, and rust if I want power.

@codesections When I first discovered computers, a big part of the draw was determinism. If I learn the rules, I can make the machine do what I want. If the machine misbehaves, it’s because I gave the wrong instructions.

By the time I realized that was no longer true, I was in too deep to escape.

@mkb @codesections
I really hate this damn machine,
I wish that they would sell it.
It never does quite what I want,
But only what I tell it.

-- found on the internet

@codesections I feel like I should at least *try* to fully understand my computer, since I fuck around with computers for a living and use one to write shitty #scifi, but I know better than to do.

Computers are inherently #Lovecraftian devices, and to seek too deep an understanding of their workings is to court madness.

@starbreaker @codesections
@mngrif

I find this article a waste of letters.

Learn and use the language appropriate to the job you want done.

That would have said it. It makes me wonder why folks always need to say there are good or bad languages. I have used more than ten different assemblers, from 8bit devices to IBM /370, used C, Basic, Cobol, PL/1, dbase, html, scripting, and much more. If learning specific languages is damaging, then I should have almost complete brain damage by now :)

@codesections I agree with a few points (you don't _need_ to know all levels to do stuff), but I disagree with the core premise that you can't. It depends on the level of granularity you want.
To a certain degree, I did learn computers top to bottom. I'm an electrical engineer with a weird curriculum. Physics, electronics, processors, assembly, C, OOP, GUI design and other high-level-ish applications. I would say that I have a full, if shallow, understanding of computers.

@eldaking @codesections
BTW, if you don't want to learn quamtum theory to understand transistors, build a "little" computer with vacuum tubes. You only need basic physics to understand those :)
Ok, just kidding...

@codesections I think I probably agree C shouldn't be an early language these days; and it's true that fully understanding a modern desktop is pretty much impossible - heck I loved machines upto the early 90s where you could understand *everything* - but even on a modern machine you can get pretty far; but it's true you rarely need to. I mean getting to the point of being able to read a key press these days is hard!

@codesections >The main reason to learn languages that (claim to) care excessively about your computer’s physical architecture is to learn computer archaeology.

That just made me more interested in learning low level computing.
Sign in to participate in the conversation
Fosstodon

Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.