My connection with functional programming started about ten years ago, twelve years ago, I really started to do some kind of searching to find out what the next language was, that I was going to be working and where I felt comfortable producing code, producing commercial code that I could put my name to that I thought this code was going to be reliable. This code was going to work. It was going to be fast enough. And I had been doing Java for quite a few years. I got scared off from Java at some point, decided to start exploring a little bit further, went into PHP, went into Perl, went all over the place, and eventually I found this weird language called Haskell that most people haven't heard of.
And a lot of people are already familiar with oh, that's like a Monad. That's that thing. But I was terrified of that when I first got started, it was completely different. The world was the wild west of functional programming, so I decided to persevere because I'm a stubborn person and I got into it, and it turned out that I really like this thing.
I think I'm a little unusual in this functional programming side of things, because the thing about functional programming that I like most is not the functional programming. I love the strong static types, the guarantees of safety, that I'm able to get out of the system. And I've tried to design my software, my libraries, to encourage that kind of development, immutability, function chaining composition. All those kinds of things that exist in functional programming are great, and I love taking advantage of them. But the one that always pulls me back in the most is a strong static typing.
I can get along with the people who are not such fans of that. And I'm able to work with the other libraries. That's the part of FP, which isn't technically FP, that I'm a really big fan of.