Fork me on GitHub

@reefersleep so hm, let me try to describe it.


lisp in general feels much more like painting than ML.. same when talking about javascript vs. typescript (classically, not the ES6 madness of our current age). i feel like I can focus on implementation without having to rigorously think about my types up front.


fortunately, clojure, racket, and friends allow me to opt into that when I want those guards when I look away


but I have this deeper intuition when I type a bad lisp/js/ruby statement and something blows up, far more than I do when I get a whole bunch of type vomit and have to trace out a murder scene.


i feel for sure I can try and explore a lot more, faster even with how nice a lot of what Elm does is.


you get stuck into inconvenient architecture decisions with Elm where - what you do may be wrong as the app grows - but you can’t break out of it and so you have to do this full re-factor to actually make it work, losing a day, even if you’re technically making “progress” 100% of that time.


its certainly not prose that I can meld to my thoughts and domain, no matter how much experience I get behind it.


i get better at cold, calculating type planning, not necessarily flow. 🙂


anyway, a lot of people will completely disagree with that perspective, not necessarily here.


plus studies thus far have failed to really show a productivity improvement of static typing. starting to understand why that is for me personally, so I’m happy to shove it to a matter of taste.


Yup, basically, if you're writing tests anyway, you don't need static typing


Also, while static typing prevents certain types of errors, designing proper types takes as much time as fixing errors in dynamically typed program


Most of such "types" are parody on generic data structures anyway


@gerred thank you for expounding on your experiences! 🙂 Personally, I still feel like I would have to experience the process with inflexible type architectures myself, though, thinking about it, I already have done so when I programmed Java for a living... Once worked on a huge app with way too many business responsibilities, and domain classes that suffered from it. Such a fossilized mess.


as an aside, related to what @yury.solovyov said - I wonder why, in Java, specifying that a collection handles items of a specific class or interface is to specify a generic collection. In my experience, this makes the collection more narrow, not more generic. Some kind of Java Newspeak? 🙂


Maybe Java has its own notion of what is generic


yeah, and you should. i’d say an ML type system is completely different from what you’ve experienced wrt Java.


for a type system, its about as flexible as you can get.


i was trying to find an article for you last night, but basically, there’s no empirical evidence that static typing is actually faster or has a lower bug density. in fact, clojure and ruby came out as the lowest in that.


not at all scientific


sorry to pollute the room with this. 🙂


Elm felt great at the very beginning, but didn’t grow so well for me.