Hacker News new | ask | show | jobs
by Locke1689 5617 days ago
The author is mostly write about the usage cases of Haskell, but simply "systems" is a bit misleading because there are certain performance characteristics of lazy programs which make them bad choices for some systems programs. Any type of real-time system, for example, can suffer unpredictable performance in critical sections, which is pretty undesirable.
3 comments

Hard real time systems are probably the primary thing for which Haskell-as-is is directly unsuitable.

Haskell as an EDSL for generating hard real time, however, is very viable: http://corp.galois.com/blog/2010/9/22/copilot-a-dsl-for-moni...

Not to argue the example, but Python's garbage collection disqualifies it for real-time systems as well. In fact, I'm having a hard time find a "system" task for which Python (as a language) is qualified by Haskell is not.
Python is not a systems programming language.
Maybe not, but it is certainly used as one. Everything from package managers (yum) to operating system installers (Anaconda) have been written in Python.

Besides that, the grandparent is right: possibly every situation where Python was used as a systems programming language, Haskell could fit in (and more).

I think you're confused to what "systems" programming entails. User-space packaging with a bunch of scripts is not systems programming. OS installers is not systems programming.

To give you an example of what is systems programming, I have helped developed operating systems kernels, virtual machine monitors, and distributed networked systems. All of these things would be considered systems programming.

See http://en.wikipedia.org/wiki/System_programming for more information.

That's just one definition. Read up on Ousterhout's dichotomy:

http://en.wikipedia.org/wiki/Ousterhouts_dichotomy

You should just read http://home.pacbell.net/ouster/scripting.html (his original paper) because all his statements about systems programming languages reinforces my claim that Python is not a systems programming language.
While I agree with you that Haskell (or, really, any GC'd language) is unsuitable for real-time systems, I disagree that my statement about its excellent suitability for systems programming in general is misleading. There are many, many domains (read: most) that, in my experience, are called "systems programming" that have nothing to do with hard or soft real-time requirements.

Now, if I had stated that all conceivable systems programming domains are addressable with Haskell, that would have indeed been foolish.

Hm, good point -- I agree.