2 ms·
Completely agree. I spent a lot of time thinking about what programming language features are important for understandable code when I was designing Darklang. O
by pbiggar 4y ago
Completely agree. I spent a lot of time thinking about what programming language features are important for understandable code when I was designing Darklang. One of the major negative influences was from Rails, where I had often found it hard just to understand where a particular piece of code came from. Clojure is similar - with "why is there a nil here" being the challenging question. With Python, I made my own mess making things far too polymorphic.
But I had previously had experience with OO languages - Java and C++, and they often had similar challenges, though not quite as pronounced, along with problems of their own.
Eventually, I came to realize statically typed functional languages were the panacea. Sum types offered better composition than OO, and they had a good trade off between power/succintness (coming from higher order functions) and program understanding. In particular, the problems from other languages: what code is this, what type is this, where did this nil come from, were solved.