[Haskell-cafe] OS design & FP aesthetics

Andrew Coppin andrewcoppin at btinternet.com
Mon Jun 18 17:31:42 EDT 2007

Creighton Hogg wrote:
>     There are lots of things to like about Linux. It doesn't cost money.
>     It's fast. It's reliable. It's flexible. It's secure. 
> Okay, I'm not sure if I'd agree with the reliable & secure points.  I 
> mean, relative to what could be done.  I'm a rank amateur when it 
> comes to OS work but when I've looked at recent papers Linux really 
> isn't that cutting edge.  I mean, it may be reliable in comparison to 
> Windows 98 & has less known exploits than any Windows system, but in 
> terms of how good it *could* be I think there's an awful lot of room 
> for growth. 

Isn't there a lot of room for improvement in *any* product?

> Okay, but these don't seem to really be design flaws so much as the 
> inevitable results of age and the need for backwards compatibility.  
> I'm looking more for technical problems that you would want to see 
> fixed in our magical UberOS.

Technically, both Windoze and Linux "work". It would just be nice to 
have an OS with a coherent design, that's all. Nothing revolutionary 
(after all, it's an OS), just something done properly.

(Also, have you noticed that no large Haskell applications exist? It's 
very hard to convince people that Haskell is not a "toy" language when 
no large applications exist. Building an entire *OS* with it would 
rather satisfy that requirement...!)

>     (Have you ever programmed in C? You can certainly see where Unix gets
>     its features from - terse, cryptic and messy.)
> This is another thing we're just going to disagree on.  I think C++ is 
> a pretty messy language, but feel that straight up C is rather simple 
> and elegant.  I had only used C++ before, but a friend rather easily 
> convinced me that C is in fact a very sexy language when used in its 
> intended design space.

To me, C is the pinacle of everything that is wrong with computer 
programming. How does the saying go? "C combines the power and 
flexibility of machine code with the ease of use of machine code." 
(Which isn't quite fair - machine code is easier to read than C.)

For some reason, there is this perverse correlation... There are 
wonderful, beautiful languages like Haskell, that nobody uses and that 
you can't do anything practical with. And then there are ugly, complex, 
messy, flabby languages like C, C++, Perl, VisualBasic, etc. which are 
what everybody uses, and which have the power to actually do things. As 
somebody who's spent their entire life obsessively programming 
computers, this state of affairs makes me really sad. I really wish to 
God there was a language like Haskell that was useable in the real 
world. :-(

>     (I did seriously investigate the task once. Indeed, I got as far as
>     writing a bootloader. It worked too!)
> Would you mind sharing the code?  I'd be interested.

Seriously - we're talking about 1 page of assembly. That's it. Write it 
to the boot sector of a floppy, reboot your PC and it says "Hello World" 
on the screen. That's the sum total of how far I got.

More information about the Haskell-Cafe mailing list