4 ms·
But those language communities also have to do some self-reflection. People are often hostile to things they don't know. Not taking this into account when tryi
by simon_o 9y ago
But those language communities also have to do some self-reflection.
People are often hostile to things they don't know. Not taking this into account when trying to introduce new things is a recipe for disaster.
This means ...
– picking up developers from where they are, not telling potential adopters "if you write Java-like Scala we don't want you here".
– meaningful documentation, not answering efforts to improve documentation with "it's not necessary, because everyone already knows Scala".
– describing and explaining design choices like companion objects, type classes, context bounds, and so on; not expecting that beginners will understand their superiority through osmosis.
– making technologies accessible to people on their platforms, not treating backends such as Scala.js, Scala on Android or Scala-Native as add-ons for existing Scala users (or worse).
– taking tooling seriously, and not releasing major versions of the language without tooling support. Or breaking compatibility in minor versions like in Scala 2.12.
– clean-ups that removes unnecessary baggage from the language and its libraries. Not lecturing people about the number of keywords or counting the lines in the language's grammar in comparison to other languages.
Haskell does some things better in this regard, but both are far from a convincing value proposition over "worse is better" approaches like Kotlin (which will probably swipe the floor with Scala in the future, because they address the bad parts of Scala).
- catnaroek 9y agoNeither Kotlin nor any other industry language addresses my original point, namely: > What we need is “a formal semantics for a language, with practical proof principles for designing correct programs”. However, I'm not disappointed in industry languages, because I don't actually expect anything from them.