3 ms·
The biggest thing in this regard a language like Haskell has going for it is purity, and therefore the concept of "no global state" taken to an extreme. Add to
by ozataman 13y ago
The biggest thing in this regard a language like Haskell has going for it is purity, and therefore the concept of "no global state" taken to an extreme. Add to that referential transparency (which is a highly related concept anyway) and you get pretty strong "equational reasoning" where it is quite easy to trace, accurately, what's happening in a chain of calls - it's all transformation of data structures passing through.
If by "functional language" you mean JavaScript, then that's a completely different matter... :-)
- dchichkov 13y agoWhatever you do, don't let some baby with a hammer to take some abstract and high concepts to the extreme, ruin your project and learn from it. Not in your project. In the production code, stay with the mainstream. And limit your extreme approaches to research grade code, with limited lifetime.
- ozataman 13y agoWe use Haskell in mission critical production code at my company and we are very happy with it. So do many banks in their pricing models and many other areas of application. This may mean that we can't just go hire your average programmer, but we have also had a bizarrely low rate of bugs in production despite a high level of inherent complexity in what we do.
- dchichkov 13y agoBased on what I've seen, codebases, that use non-mainstream languages and technologies have a tendency to fracture into parts written in a mix of languages and disappear in the rubble. So let's wait a few years, and see, shall we? (It's not that I don't like, or don't use shiny 'new' toys. It's just that in the long run it really really helps to use these toys only in the 'research grade' code. Depending on anything even a tiny bit out of industry mainstream in your key production code is a huge liability few years down the line.)