Hacker News new | ask | show | jobs
by valenterry 1870 days ago
Scala for example is statically typed and had a REPL from day 1.

However, when using a language with a great typesystem, the need for a REPL is just much less. You mostly don't need to try things out because the types guide you. Therefore these languages might have a REPL and it might be useful, but REPL-driven is not really necessary.

> I always wish that it would become unnecessary to have to choose between stability and extensibility

Stability, extensibility, low language-complexity. Pick 2.

1 comments

I'd argue Clojure has all 3

Stability - one of Clojure's core tenets.

Low language complexity - not much more than EDN and everything is an expression, plus a few extras like destructuring. Certainly simpler than any other language I have used.

Extensibility - again, one of Clojure's strong points with macros.

As for "Type systems removing the value of a repl" again, I disagree. Repl driven development is as much about exploring the problem than it is writing code.

Stability in this context means "can make changes with confidence in the absence of tests". The more confident you can be, the more stable. Maybe not the right word though.

> Repl driven development is as much about exploring the problem than it is writing code.

Which is exactly what types give you. This even coined the term "type driven development" (same as "test driven development" on purpose").

> Stability in this context means "can make changes with confidence in the absence of tests". The more confident you can be, the more stable. Maybe not the right word though.

I'd call it "robustness".