Fork me on GitHub
#reagent
<
2016-10-03
>
gerred05:10:30

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

gerred05:10:58

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.

gerred05:10:18

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

gerred05:10:43

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.

gerred05:10:25

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

gerred05:10:31

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.

gerred05:10:13

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

gerred05:10:34

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

gerred05:10:53

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

gerred05:10:10

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.

yury.solovyov07:10:48

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

yury.solovyov07:10:41

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

yury.solovyov07:10:23

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

reefersleep07:10:12

@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.

reefersleep07:10:18

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? 🙂

yury.solovyov07:10:05

Maybe Java has its own notion of what is generic

gerred15:10:15

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

gerred15:10:40

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

gerred15:10:16

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.

gerred15:10:27

not at all scientific

gerred15:10:55

sorry to pollute the room with this. 🙂

gerred15:10:42

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