[Haskell-beginners] How Haskell Fits Into an Operating System / API Environment
psismondi at arqux.com
Sun Aug 11 17:10:48 CEST 2013
On 2013-08-11, at 4:58 AM, Heinrich Apfelmus <apfelmus at quantentunnel.de> wrote:
> Philippe Sismondi wrote:
>> I am interested in tracking down discussions on how Haskell fits into
> I'm not entirely sure I understand your question.
Well, I admit that I am having trouble formulating my question clearly. It was probably not even clear in my own mind. However, posting and clarifying here have served a purpose for me; read on.
Upon reflection, probably my real concern is not about mixing dissimilar programming languages, but about the frequently discussed issue of finding production-quality libraries for a language. This issue is a serious one for Common Lisp, Scheme, ML and OCaml, and other languages I like. It is perhaps less of a problem for languages built on a substrate such as the JVM or .NET.
For most of the software that I am interested in working on, there is a vast collection of "native" stuff available in both OS X and Windows. This includes, just as an example, Core Audio in OS X. As a result of posting my (vague) question, and thinking about this, I have decided that it makes more sense to just stick to Objective-C or C when the vendor of the OS has provided a good library in their language of choice. I like Haskell and Lisp better than I like flavours of C. But for now I am going to abandon the forlorn hope of doing everything in my favourite languages when the OS ecosystem favours something else.
Moreover, I am dissatisfied with the quality of Haskell libraries even for those things that are not already supplied by OS vendors. In my opinion (and I may be wrong), hackage is littered with half-baked stuff, poorly documented projects started by extremely bright grad students and then abandoned after a year or two. (Of course, there is some great stuff on there too.)
As a result of this little thread I have come to another conclusion, and this is just my subjective view. Most of the software that I am interested in seems to live most comfortably with a stateful conception of the world. (The native libraries I find most useful certainly are stateful.) I am reasonably competent with monads and monad transformers in Haskell. But, to be honest, after three years of pluggin away at Haskell, I am not the least convinced that the problem of handling a changing external world in a pure functional language has been successfully solved by those techniques. I always feel as though I am using the robot arm on a space shuttle when a screwdriver would do. (Again, no need to rebut this - I may be wrong or just to stupid to use Haskell effectively - so be it.)
Perhaps in the end I do not really believe that functional programming is the panacea that its devotees claim it to be.
I think this post may mark the beginning of my abandonment of Haskell for many purposes.
- P -
More information about the Beginners