Hacker News new | ask | show | jobs
by akurilin 4189 days ago
I wrote the core of our system in Clojure a couple of years ago, which is pretty high in productivity and actually quite pleasant to work with. Unfortunately as the scale goes up (hundreds of web application routes, sharing code among multiple projects etc) it doesn't feel nearly as nice anymore, and having static typing turns out to be pretty handy.

Haskell to me felt exactly like what you described: I could get stuff done fast because of how few head-scratchers I'd experience. This is mostly due to type mismatches, and how much more well thought our my design needed to be upfront. I also really enjoyed the language because I could express fairly complex thoughts in a very succinct, and yet very readable fashion, mostly thanks to types being explicit and enforced at compile time. Code reuse and sharing across multiple applications is also a breeze, which is absolutely key once you get past the "single Rails app" stage and you start getting into two digits worth of tools, services and applications.

1 comments

Oh ok, I can be wrong about Haskell. BTW, I really like Ceylon, it's very statically safe (more than Haskell I'd say) and very pragmatic (unlike Haskell IMHO, it doesn't seem to focus on maximizing productivity).
Ceylon looks interesting. Mind pointing me to some features you think make it more statically safe than haskell?
I don't know if these are considered static safety features but:

* Statically safe metaprogramming.

* Well designed access rights (private, public).

I also really like the type system, very well designed.

I think the only languages that are "statically safer" than Haskell are the theorem provers... (agda and coq come to mind)

Disclaimer: I do not have enough PL type theory under my belt to confidently make this argument.