4 ms·
For a while, yes. I know from experience that going the other way is a struggle as well. Habits die hard and change takes effort. There's nothing superior abou
by sifoobar 8y ago
For a while, yes. I know from experience that going the other way is a struggle as well. Habits die hard and change takes effort.
There's nothing superior about these type systems, they're simply two of the most static and rigid systems in circulation right now.
Try writing C, Lisp and Forth until it clicks. Then we can sit down and have an informed discussion about missing features.
- elcomet 8y agoThey are not just static and rigid, Haskell has type inference , which is what ihmo makes it superior
- bunderbunder 8y agoI have spent some time loving all 3 of those languages, and also, most recently, F#. I really do think that an ML-style type system is the better way to do domain modeling. The compiler support you get in F#, such as ensuring that your match expressions are complete, are nice. But what really makes me enjoy working that way is that (the non-OO bits of) F#'s type system makes it very easy to create domain models whose intent and inner workings are just obvious. You're right, it's not correct to cast the differences as "missing features" - it's just different ways of doing things. And each has its own advantages and disadvantages. F#'s set of tradeoffs is just the one that most suits my tastes when I'm building LOB applications.
- weavie 8y agoI think a lot of it could be personality based. With C, Lisp and Forth you bash out code and run it, see if it works and then make changes. You get much faster visual feedback. With Haskell, you need to put in a lot more up front thought. Then stuff doesn't compile and you spend ages working out why.. You can go for hours without having anything running. The cause of the errors can be quite abstract and obtuse and may seem like it is nothing to do with the actual problem you are trying to solve. Different people just suit different styles.
- jghn 8y agoI wish more people understood this instead of believing that people who prefer the other side are wrong and bad.
- Tarean 8y agoGhc haskell has a bunch of features to make type errors into runtime errors and a really good repl. You can do interactive development pretty well this way. The way I write php isn't that different from how I write haskell, especially with phan running on save. Php actually requires a bit more thinking in advance because I can't refactor it quite as easily.
- sifoobar 8y agoDefinitely. What could also be taken into account is that I used to be up there preaching the static typing gospel. And then I gradually got fed up with the ceremonies, since they didn't pull their own weight and couldn't keep up. It's all compromises. The claim is that in return for following rigid rules, they guarantee this and that. Sort of the same deal the state has pushed down our throats since forever. And for a while it seems reasonable, until you pull hard enough to notice the chains around your ankles.