[Sussex] The Art of Unix Programming

Trevor Marshall trevorm at rusham.demon.co.uk
Sun Dec 14 16:29:03 UTC 2003


On Sun, 2003-12-14 at 11:43, Geoff Teale wrote:
> Ahhh,  I've literally just finished reading Eric S. Raymond's latest
> book "The Art of Unix Programming".  You can read this on-line at:
> 
> http://www.faqs.org/docs/artu/

Hmm, need to make some time for this....

[snip]

> Why is this important?  Well I have a bee in my bonnet about developers
> who are new to Unix - specifically the hoards now coming in from the
> Windows and MacOS worlds.  On various development mailing lists I've
> seen a lot of posts like:
> 
> "Does linux have a registry?  How the hell do I store my settings?"
> "Linux sux, it doesn't have ActiveX/COM/DCOM so I can't script
> OpenOffice.org like MS Office."
> "Linux doesn't have anything like Applescript so I can't script my
> applications"
> 
> ... this bothers me.  Unix (and thus Linux) has far better mechanisms
> for persistent meta-data, IPC and scripting than Windows or the old
> MacOS series ever developed - why are people having so much trouble
> doing things?

Well, yes, probably.  The thing is that the Unix approach is /different/
to the Windows approach (OK, better as well as different, this is a
Linux list after all), but if you try and do things in a Unix-y way on a
Windows system you'll have the same kind of problems:

"Why isn't there a decent shell for Windows?"
"Why are binary and text files different?"
"How do I log in remotely?"

(all of which actually have answers).

And then there's missing the "everything is a file" aspects of Unix I/O
and networking. 

I spend a large chunk of my professional time writing software that
needs to work on a Windows platform, and it really is a mistake to try
and write Unix software.  And using something like Cygwin just makes it
worse, it's a kind of 'worst of both worlds' solution.  Windows is just
different.

> I think the key is that people are coming to the platform looking for a
> free clone of Windows rather than embracing what makes it a _better_
> platform.  

Yup, I think you're right, although part of the trouble may be with
expectations; if you're /expecting/ a windows clone 'cos there's some
kind of GUI then you'll be disappointed.  If you've never experienced a
Unix platform then you won't know how to get the best out of it.

> Worse still, a lot of development effort is being expended on
> building Window's style, GUI only tools with fragile and inconsistent
> IPC, clunky API based scripting and very rigid use parameters. 

Aye, in my day we 'ad to thumb in t'code using only t'front panel
switches, you could allus tell a programmer by t'callouses on 'is
fingers and thumbs ;->

I reckon there's room for some GUI development tools - you don't /have/
to use them.  But I take the point about flexibilty or the lack of it.

> ESR's book could help a lot of developers out by showing them just how
> good the underlying principles of Unix are and how you can build much
> better applications with Unix than with Windows or MacOS.  In the course
> of this he discusses the underlying concepts of various OS's and the
> style of development they encourage and discusses what is good and bad
> about each.  I particularly encourage you to read this analysis of the
> Windows NT family of OS's:
> 
> http://www.faqs.org/docs/artu/ch03s02.html#nt_contrast

Not that he's biased, of course :-)

-- 
Trevor Marshall





More information about the Sussex mailing list