Community and Communication going forward

When Martin started creating Scala, Generics had not been delivered to Java or C#. I’m not sure if C# 1.0 even had foreach methods. Some people may snear at foreach, but it was the first thing that got me starting to think functionally, even if I had never heard of Functional Programming. At least as far I’m aware there was nothing with early Scala, that could be remotely interpreted as a promise to provide a platform for pure, inheritance-free, lazy programming on the Jvm.

Over time Martin and his collaborators, have added more and more to Scala to support Functional Programming and ever purer Functional Programming.

We’ve seen higher-kinded types, views, improved for comprehensions, generalised implicit look-up, succinct tuple syntax, lazy values, extended case class functionality, dependant method types, macros, Value types, singleton types and improved views added to the language.

We’re looking forward to intersection / union types, type lambdas, Dependant Function Types, Algebraic Data Types, Type class derivation, inferable by-Name parameters, Opaque Type aliases, Parameter Untupling, Kind Polymorphism and multiversal type equality.

We’ve seen the dropping of Any2StringAdd. All of this supports and will support the creation of of strongly typed, pure functional code and laziness. But from a certain section of the functional Scala community, do we see any gratitude towards Martin and the other lead Scala developers for all of this? No we see continual carping, complaining, bile and spitefulness.

If anyone has a right to complain about Scala its not the Haskellators but those that want to stay close to Java, use imperative code or write in a more loosly typed dynamic style. They’re the ones that have lost procedure syntax, and Any2StringAdd. They’re the ones whose Java code may be incompatible with Scala libraries using multiversal equality or other new features.

11 Likes