@hope legit this is part of what got me into programming
my dad went to UNC and one of his colleagues invented something called a "valve" which is basically a mutex that switches the flow of control in threads that subsequently attempt to lock the mutex using some very specific implementation but I could only ever get secondhand information about it
but today my dad got back in touch with him and he emailed me basically saying "what the heck is this all about" so we'll see how much i get out of this
@hope and i heard about this first when i was, like, 13? and i was like "wait you can just Make Up Data Structures holy shit" and that's how I decided to learn C by reading K&R in a single sitting. it did not work even a little bit and i didn't actually learn C until like 3 years later but still
C has some advantages:
1. Calls to user code are visibly distinct with clearly-marked inputs and outputs.
2. Each feature of the base language is very simple.
3. The base libs are also predictable and well-documented.
The footguns are still there but modern tooling and MMUs help a *lot*.
C really expanded BASIC-trained mind when I learned it because I realized I could add to the language.
Too late; mind was blown by C. (Then Perl and Smalltalk, but that's another story.)
(Although if someone had taken teenaged-me aside and explained that that Logo language we were all making fun of was actually just Lisp in disguise and that Lisp was a super power hacker language, I'd probably have learned more sooner.)
A co-worker of mine did some computer pedagogy research in grad school and told me that his group had been pretty successful in teaching programming using C as a first language. I was surprised too.
Although I suppose a C dialect with memory safety and memory leak detection might be a better option.
This Mastodon instance is for people interested in technology. Discussions aren't limited to technology, because tech folks shouldn't be limited to technology either!