Reginald Braithwaite says that a programming language cannot be better without being unintuitive. I agree more with his follow up, that
Unfamiliarity is the driving force behind being better in the sense of a programming language. And “intuitive” isn’t a real property of programming languages, it’s the result of good design.
Would I want the programming language I am learning to be familiar to what I already know? No, because I heart this quote from Alan Perlis:
A language that doesn’t affect the way you think about programming, is not worth knowing.
I also believe that things have to be different to be better. In fact this is something I have been using to decide whether to jump into learning a programming language or not.
Having said that I do want the programming language to be intuitive. In my opinion, intuition is not familiarity, it is about immediate cognition, a sense more than a comfort level. Practically, it lets me grasp a minimal core of the programming language and understand how to build rest of the language features from its philosophy. And I think this is extremely powerful because it gives you insight into the language design.
