Hey Miles, hope you're good. I think IQ is important for coding in general, but esp. with type systems. I stand by that.
My point is not to show off, since I expect almost everyone that'll land on this article to have similar IQ. As a side, I believe that EQ is more important for life outcomes, and that IQ isn't much to show off about.
I want readers to see that I have the mental equipment to do this, I just don't want to.
But I get your point and your analogy is a solid.
On your second point, it's not the memory safety that has caused me to baulk; the type system is the pain, not the borrow checker, or thinking/coding for lifetimes.
Next year I'll take a look at Zig and how they approach solving memory safety and whether they lean heavily on a type system or not. If they allow certain "powerful" features with their types, then they may have opened Zig up to abuse, in my opinion.
Go added generics, and that has really opened up Go to a much wider audience. But they have not introduced type unions, which is the thing that allows TypeScript devs to go nuts. From my experience, some people have gone off TS because of the spaghetti people have written using its type system. My point with Go is that I like the philosophy of radical simplicity. You don't need all these features to deliver outcomes for customers, which is why we write code.
A language should make it hard to do bad things; this reddit question is a red flag: