3 ms·
I agree with you that s-expr is a more powerful syntax (more extensible with less rules), but the social aspect of the syntax is just as important since program
by ddragon 7y ago
I agree with you that s-expr is a more powerful syntax (more extensible with less rules), but the social aspect of the syntax is just as important since programming languages target humans, which are just not rational beings. Over the decades many languages "won" against the Lisp family, including a much less mature Python, partially for aesthetic reasons. Even Math could have used a full prefix syntax and have less rules (no need to deal with operator precedence) but people still kept the infix syntax. And Julia, as a math and science focused language, having a syntax that better emulates the tool it covers is objectively a positive point.
And secondly, Lisp programmers are also human, and more power means more responsibility. When you have a language to create any language, people are tempted to do it, but a language is also a social construct, not just technical (a language only has value if many people talk it, which means documentation, community, support...), and making it so easy to make your own that you end up ignoring that aspect is the Lisp Curse. Modern languages actually see value in limiting the power, by either removing it completely (like Go), or hiding it/making deviations explicit (like Julia's surface syntax and macro identifier '@' which alerts the user that he is deviating from the "first class" language that everyone is supposed to know).