I’ve been thinking a lot recently about how programming languages interface with humans. Programming languages only really exist because of our shortcomings as beings - we cannot think of highly complex apps in terms of register allocation - we need to forget about that so we concentrate on our problem.
It follows that we need many different languages. We need to support
- Different problem domains, and
- Different types of programmers
I watched the intro to the Go languages because I thought it would probably be useful for my career, and was horrified! If you happen to name a function a certain way, you implement an interface. Then I thought that actually, a different type of person to me would love this feature. It is just that I like symmetry, correctness and completeness and I value those things over development speed.
This isn’t an argument that Rust is better than Go, just that it appeals to me aesthetically. Maybe this bias is stopping me using the best tools for any job I am doing, maybe not. I don’t know, but I thought I’d share my ramblings.