Comment Re:Thoughts (Score 1) 142
- Syntax at the "what character do we use to mean X, what characters do we use to delimit blocks" level is such a trivial thing that choosing your language based on it is pretty ridiculous. Or, to quote a PL researcher of my acquaintance, "Syntax arguments are lame."
- The notion that there is such a thing as a "functional programming syntax" doesn't make sense to me. The syntax Church and the original researchers gave the lambda calculus didn't have parentheses except for the same purposes C uses them. Same goes for ML and Haskell, two of the three most well-known functional programming languages around. The third, Scheme, is the most debatable of the three as to whether it's functional or not, and the parentheses are there for reasons that have nothing to do with being a functional language -- they were orgininally there because MacCarthy was going to add them later and they were kept because people by and large liked the advantages of macros and were willing to represent parse trees explicitly so they could have them without contortions.
- Operator overloading is a far cry from what's possible when it comes to building new language semantics. Syntactic abstraction is where it's at, as the C++ people have learned with template metaprogramming. Unfortunately metaprogramming in C++ is the result of an accident, and for that reason it's really really unpleasant in C++; if they'd been paying attention they either would have made templates like ML's functors (and made the types work out with separate compilation) or made them like Scheme or Common Lisp's macros (and made it a million times easier to make metaprograms that do useful things).