Functional Programming and Safety

I found a bug in a program that has been running for quite a few years, that had it been written in haskell, this bug would not exist. I don't see bugs like that in the wild often, so it's more like trying to trap the last corners of the current known bug space that can be prevented with strongly, statically type checked languages and functionally pure languages, than it is 'better with bugs' in general. It really depends on the bug, and how to fix a bug is really a creative endeavor, because more often than not, there are a variety of ways to avoid or work around a bug (or obliterate it completely).

I don't have a lot of experience writing haskell, and I have zero experience writing haskell in production. Annoyances include anything involving cabal and dependencies, tool chains required to get things working, and the small community tends to lead to a lot of abandoned work/libraries and/or less documentation than what is needed.

This means there's a lot of things to be done in haskell, which is good for the budding haskeller who is interested in playing with a language, but doesn't leave a lot of room for the novice or even experienced developer (one who hops between varieties of projects and tasks) to use haskell as a reliable tool. Lots of software developing facilities haven't even really heard of haskell, so just getting people to try it is fairly difficult.

You basically have to be willing to roll your own 'most of everything you are used to finding libraries for' and build your own software suite, in which you are probably going to be one of few to use, and understand. Which is awesome and fun, but people who have jobs don't always have that kind of time.

It's better than it was 3 or whatever years ago, where haskell was still called 'esoteric math language of categorical nonsense'. But it still has some ways to go. It's really hard to get people interested in a language that they believe is difficult to understand. So it's not, but it also is. Haskell isn't hard. I think programming effectively in haskell is hard. Haskell does a lot of stuff for you up front. So think of it more like, haskell is a friend who helps you out in the beginning, and then you have to wind up helping haskell out.

/r/haskell Thread