Per your question, as a Lisper, what I miss when programming in Java (sorry, I don't use C#):
- Good syntax: s-expressions.
- Dynamic typing: no complex type declarations.
- Closures.
C# addresses (2) and (3) with var
and =>
, respectively, as I understand it. So my main hang-up is curlies and semi-colons, along with verbose, confusing generic type declarations.
Per your title, as a functional programmer (Haskell), I miss what all those other guys said: immutability, full type inference, tuples, pattern matching, easier generics because no subclassing, strongly typed libraries.
Also, as a Haskell programmer, I still don't like curlies and semi-colons. :)