I’ve usually heard that as the reason to give Lisp to a new programmer. You don’t want them thinking about fine details of syntax; you want them thinking about manipulations of formal systems. Add further syntax only when syntax helps, instead of hinders.
What’s the argument for preferring a more syntax-ful language?
People can always find things in surface syntax to object to. Python’s whitespace is pretty unpopular with people who think all “normal” languages have to have curly braces — as well as with some folks who grew up with Fortran and think that significant whitespace equals dinosaurity.
The interesting thing about Lisp is not its surface syntax, but the relationship between code and data. The textual syntax of Lisp is a way of expressing data structures; Lisp code is defined in terms of trees, not text. Most languages don’t make the syntax tree of the code available to the programmer; it’s hidden away as internal data structures within the compiler.
Not Lisp! Not Lisp! It’s a great language, but it has no syntax.
I second Python.
I’ve usually heard that as the reason to give Lisp to a new programmer. You don’t want them thinking about fine details of syntax; you want them thinking about manipulations of formal systems. Add further syntax only when syntax helps, instead of hinders.
What’s the argument for preferring a more syntax-ful language?
I would object to Lisp because it has scary parentheses everywhere. It might be intimidating to a novice.
In fact, I also think Python is good, precisely because there’s not too much syntax, especially at the beginning.
People can always find things in surface syntax to object to. Python’s whitespace is pretty unpopular with people who think all “normal” languages have to have curly braces — as well as with some folks who grew up with Fortran and think that significant whitespace equals dinosaurity.
The interesting thing about Lisp is not its surface syntax, but the relationship between code and data. The textual syntax of Lisp is a way of expressing data structures; Lisp code is defined in terms of trees, not text. Most languages don’t make the syntax tree of the code available to the programmer; it’s hidden away as internal data structures within the compiler.
True, and that makes it a good language to be familiar with, I’m just not convinced it’s a good language to start with.