[written in haste -- if I had more time, I could have written a shorter post]

I
Language syntax is not that big a concern. It's simple enough to learn a new syntax. The distinction is in semantics. Some languages have concepts that others don't. For example, C# had delegates since 1.0 or 2.0. Java didn't have an equivalent mechanism until 8 or 9, several years later. And the only way you could have something even similar in use would be to define an anonymous inner class, which is a lot of needless boilerplate. Most every "new" language feature nowadays is already just downstream of McCarthy's original LISP design. Functional programming, lambdas, garbage collection. These are common among a lot of languages. Smalltalk has a completely different way of talking about Object Oriented programming than is common today, message-passing vs method calling. C++ was originally called "C with Classes", and was a C pre-processor initially. It has a fairly consistent syntax design with C. In contrast, ObjectiveC, is like someone took C and bolted Smalltalk onto the side. Completely mismatch syntax. Javascript has an innovative take on OOP, in its prototyping mechanics. Each new object actually refers back to a previous object, as a prototype rather than a true "class". You can mimic the class-style OOP of C++/Java/C# by defining an object to treat as the "class" and "instantiating" objects from it.

II
Dijkstra was right about LISP: it allows one to think previously-unthinkable thoughts. Macros, man, like, woah.

III
I don't know where I heard these:
- C is a high-level platform independent assembly language
- .NET's CIL is a platform-independent object-oriented assembly language