
I can’t count how many times my #CS professors told me that the #semantics of a #programming language is of prime import, but the #syntax thereof is but incidental, perhaps even accidental in some cases. And I can’t recall how many times I’ve repeated this to my own students and mentees, through the decades.
But as #programmers, we tend to attach undue emotional significance to the syntax, the “skin contact”, as it were, of the language.
My preferred syntax is the spartan, offside-rule syntax of the ISWIM family (ML, HOPE, Miranda, Haskell, Agda). I also like the blocky look of the ALGOL family (ALGOL, C, Pascal, Java, Zig). And, ignoring technical reasons for a moment and focusing exclusively on sentimental reasons, I adore the parenthetical syntax of the LISP family (LISP, Scheme, Common LISP, Clojure, Racket). And I do not know a licensed engineer who does not swear by the RPN syntax (UNIX dc, HP Reverse Polish keystrokes, HP Reverse Polish Lisp, FORTH). Of course, all assemblies look essentially the same, and every assembly programmer countenances this syntax. But I shall be polite and say nothing of the FORTRAN and BASIC syntaxes.