Scala

I did not pick up any compiled typed language for a while. I landed my first job doing JavaScript and it felt like a breath of fresh air after studying C++ at the university.

JavaScript community accepted static analysis through linters (JSLint → JSHint → ESLint), later came type checking with Flow and TypeScript. Flow codebase introduced me to the OCaml language. I was fascinated to learn about the powerful type system and pattern matching. And though the language seems to have a great community of very smart people, lack of toolchain and libraries held me back from learning it deeper.

Scala continues the ideas of OCaml: you can successfully combine object oriented and functional features in a language, mutable and immutable collections.