4 ms·
It's not that it can make just IDEs 'work better'. The compiler can work better with a great static type system. Haskell, for instance, is mind blowing. Perhap
by jwdunne 11y ago
It's not that it can make just IDEs 'work better'. The compiler can work better with a great static type system. Haskell, for instance, is mind blowing.
Perhaps the problem is that static typing is confused with how some languages implement it. It can, and has, been implemented such that it dramatically improves compilation, correctness, static analysis and documentation without making code horrendously verbose.
- vvanders 11y agoYup, type inference really feels like the sweet spot to me. Nice code "feel" with the backing of a static type system.
- madflame991 11y ago> Haskell, for instance, is mind blowing. Mind blowing is the amount of output and obscurity of the error message you get from the type checker. It's harder to understand the error message than to debug the program if compiled "unsafely".
- agumonkey 11y agoIt's a threshold I guess. My formal proof teacher said he thinks in type checking unification all the time. To him a program is a proof tree construction. With time the way I approach code is also much more and abstract. You look at diagonal invariants more than code itself.
- odonnellryan 11y agoThis isn't true. It is hard to understand (definitely) if you're new to Haskell and what the error is actually saying. As you get more familiar the errors become more clear.
- PeCaN 11y agoHeck, Idris can in some cases write code for you based on solving the types you provided. Powerfully-typed languages also work much better for structured editing. http://docs.idris-lang.org/en/latest/tutorial/interactive.html#proofsearch http://docs.idris-lang.org/en/latest/tutorial/interactive.ht...
- ionforce 11y ago> Perhaps the problem is that static typing is confused with how some languages implement it. Most of the time what people hate with static languages is type annotations. What will blow their minds is a language that is both a) type safe and b) easy to type (i.e. what gives dynamic languages their flavor). Luckily we're getting to a point (Scala) where this is mainstream.
- virtualwhys 11y agoAs a Scala user I think the MLs have a leg up on Scala wrt to a & b. Scala can be quite concise but we do have to be explicit with type signatures, and that only increases as we go up the abstraction ladder. A strict Haskell with a decent module system, or a modern SML that borrows some nice-to-haves from Haskell and Scala would be my ideal language.