| It's the learnability of the language. Remember BASIC? You could show someone a FOR ... NEXT loop and they would completely understand. After a couple more 10 line programs and you can safely hand over the keyboard and handle the "how do I?" questions You had to show very little before they understood. Now try Lisp ... M: This is a list S: What can I do with it? M: By itself nothing but trust me it is important. This is how we take the head of a list S: Cool, why would I want to do that? M: We'll get to that later. This is how you take the tail of a list S: ... M: This is how to append to a list S: Is this going anywhere? The number of things you are shown but do not understand keeps piling up before they are supposedly going to magically work together to do something underwhelming (when BASIC did very little it took very little to do it). Add to that the function names were either cryptic, "cddar" anyone - "EQ" and "EQUAL", or insanely long You have too much to learn before you can make sense of anything. Least that was how Lisp was taught to me in the 80s :) I self taught Forth and Prolog because with both once you learn something you can do something |
Readable code needs to be not subtle, low on magic, and self-explanatory. The last one is hard to quantify and make objective, but is imperative in making an approachable language.