other-languages

here be heresies and things we have to use for work
borkdude 2017-11-27T20:47:01.000344Z

I can relate to the person who posted this: https://www.reddit.com/r/haskell/comments/7f9s6u/i_have_no_issue_with_functional_programming_but/

seancorfield 2017-11-27T21:31:09.000278Z

@borkdude Yeah, sounds like me. I can't put my finger on why I get so frustrated trying to program in Haskell -- and I've been trying on and off for 25 years now! 🙂

borkdude 2017-11-27T21:49:09.000040Z

I wrote this response, but I deleted it, since I didn’t feel like discussing it on Reddit: Not sure if it helps, but I can relate to this. I’m fairly fluent in Clojure and from the beginning it felt natural to me, “at home” as you put it. I pick up Haskell every six months or so and learn a little extra since where I left. I’m half way into HaskellBook. But I don’t feel at “home” in this language, at least not yet. It might take years or maybe it’s just never going to happen. Note that the first programming course I got in university was Miranda (a predecessor of Haskell). I liked it, but it wasn’t something I was inclined to use to build something. I like to make little changes and then being able to inspect the run time results. I know you can sort of do this with ghci, but it’s not the same. If the types don’t align, you won’t have anything to inspect. That’s the whole point of static typing.

2017-11-27T21:52:31.000120Z

yeah, likewise, I've walked through a few Haskell tutorials, and I understand all the bits, even what operators like ++ are doing. But none of that helps me translate what I want to do, to haskell code. And this a problem I've found somewhat unique to haskell. In many cases other languages have alien features, but they're close enough that you can get off the ground and running quickly.

2017-11-27T21:53:11.000289Z

Erlang - Ifs become pattern matching, loops become recursion, simple rules for where you put a . or a ,. I really don't care for Erlang's syntax, but it was simple enough to learn.

2017-11-27T21:53:41.000132Z

Clojure - data is now immutable, recursion instead of mutating loops.

2017-11-27T21:54:57.000025Z

With Haskell I have to learn monads, a strange syntax, a strange type annotation system (for someone who doesn't know haskell). A build system. And then I find out that you can't even put a println in a function to debug it.

2017-11-27T21:55:18.000282Z

And so I've walked away from learning it a every time I've tried.

2017-11-27T21:55:34.000573Z

Heh, even prolog was a breeze compared to haskell

borkdude 2017-11-27T21:56:25.000337Z

With Debug.Trace you can, but I get your point. https://hackage.haskell.org/package/base-4.10.0.0/docs/Debug-Trace.html

fellshard 2017-11-27T23:14:19.000008Z

The learning cliff to base-level competency is high and front-loaded in Haskell.

fellshard 2017-11-27T23:14:35.000038Z

Similarly high for Scala's type-level shenanigans.

fellshard 2017-11-27T23:15:07.000172Z

I think that's part of what turns people away from deeply type-ingrained systems - they may be powerful, but it takes a very long time to learn to use them effectively