|
|
|
|
|
by pbiggar
2496 days ago
|
|
My previous startup (CircleCI) was written in Clojure, my current one (Darklang) is written in OCaml. I decided not to use Clojure again because it's not statically typed, and my number one frustration when I coded in the CircleCI codebase was that it was very very hard to know what shape a value had, and whether it could be null. OCaml certainly has a lot of flaws, and is not nearly as "nice" a language as clojure, but the productivity of static typing (in the statically typed functional language sense, not the C++/Java sense) is huge. Knowing you can do a big refactor and the type system has your back is massive. We sponsored core.typed to add types to Clojure, but there were flaws at the time (they have have been fixed since), and we didn't end up sticking with it. So Clojure I wouldn't use again. OCaml I would, despite having significant flaws (every language has significant flaws). |
|
Am I correct in summarizing your experience as:
The possible encumbrance caused by types at prototyping phase is paid back several times when refactoring a production codebase?