

Differences in the Windows and Unix cultures - krying_krab
http://www.joelonsoftware.com/articles/Biculturalism.html

======
arjunnarayan
The real difference is that you can take a unix program (which obeys the dont
blabber rule, is a command line program with lots of options, etc.) and with a
good amount of effort put a GUI on top of it to make it look pretty. Case in
point: Ubuntu. It attempts to do this to most tools, and succeeds in many
ways. My computer illiterate father was soon able to wrap his head around
Synaptic package manager (which is just a wrapper around APT).

But you can't take a Windows-culture program and make it easily programmer
accessible. This is a one way street. I think that the Unix-style dual access
is far more powerful. Apple doesn't open source its work, but it is BSD based
and I get the feeling that internally, Apple follows this "unix culture" (I
hesitate to use the article's terminology, but bear with me here) and thus
comes out with powerful programs that are command line accessible but have
wrappers (albeit beautiful ones) around them. This is what enables them to
refactor internal parts like in Snow Leopard that cut out gigabytes of cruft -
it starts to sound like this "unix culture" is simply best-practice
engineering in terms of modularity and flexibility of individual packages. If
Microsoft even attempted to refactor some parts of the OS, they'd break
something terrible.

I disagree with Joel where he says Apple follows the Windows culture. It seems
that OS X is factored "the unix way" up to a point - where a beautiful API is
exposed, and another team (the Steve Jobs insane perfectionist team) takes
that and puts a usable beautiful front-end on it, which may, in Joel's mind
fit the "Windows-culture", but is thin enough that the unix-culture layers
beneath hold the meat of the OS, and thus can be modularly modified rapidly.

Linux lacks this final layer, which leaves it looking so broken and hacked
together at the top. It still is an open question if the front end can be
created without the dictatorships of a large company like Apple or Microsoft
at the helm - but if anyone's got a shot, I think Canonical would come
closest.

~~~
calcnerd256
Too bad the web browser started on the wrong side of the street.

~~~
rw
Check out Uzbl!

~~~
_pi
They need to optimize that thing. I may have been an early adopter but the
rendering and the speed of rendering was pretty bad. Worse than FF.

~~~
bct
Uzbl's gotten a lot faster since it learned to talk to the cookie handler over
a socket (rather than spawning a new handler for every request). That was
committed a week or two ago.

------
martey
Written in 2003, and its age shows. It is clear that the people working at
Ubuntu and other distros only care about making their product easier to use by
non-programmers.

'Raymond does attempt to compare and contrast Unix to other operating systems,
and this is really the weakest part of an otherwise excellent book, because he
really doesn't know what he's talking about. Whenever he opens his mouth about
Windows he tends to show that his knowledge of Windows programming comes
mostly from reading newspapers, not from actual Windows programming. That's
OK; he's not a Windows programmer; we'll forgive that.'

Joel is not a Unix programmer; we'll forgive that.

~~~
barrkel
Canonical is being funded by a billionaire with an explicit goal of making
Linux user-friendly. It didn't exactly generate that motivation intrinsically;
it was injected by economic force from without.

~~~
billswift
All of the major distros do it - the biggest irritation I have with Red Hat
and Debian are their package managers - both rpm and apt add a layer of cruft
I have to learn without really improving on tarballs, except that they are
easier for people who can't be bothered moving untarred files to the correct
directories. And since the "correct" directories are different on different
distros, they are a royal pain when working with more than one distro.

------
krying_krab
Perhaps what most interests me about the article is not the dichotomy of the
two cultures, but in the area between them.

I'm a college sophomore studying EE in a notable university, but I spent most
of my free time (and much of my homework time!) coding in high school. I had
been using Linux from middle school, so my way of learning coding was picking
up K&R's C book, learning the ropes, and starting to code on Linux. Linux
really was an incredible atmosphere to learn to code in, and I learned more
than just C. The ability to look at the source of other applications, to
submit bugfixes for projects, and the incredible POSIX standard that makes C
and other languages just ... whistle ... was great.

That said, I later abandoned Linux (several reasons: time, laptop
incompatibility, much more time spent fiddling with radios, I "sold out",
whatever) for day-to-day use. I still code and do it on Windows, but it's not
the same. Now there are a lot of things of the "Windows culture" that I really
like -- a shiny GUI for everyone, a huge smattering of applications which
means that if I don't want to write it I don't have to, not having to deal
with finding obscure driver patches so that my out-of-date hardware can stay
supported, package management clashes, etc. But when I want to code, and I do
so intermittently, I feel the intellectual gap.

I want that great POSIX interface, but more importantly I want an atmosphere
that works around the code that I write. And here's where I feel the gap the
most -- what about those of us who really enjoy a satisfying, intellectual
coding experience, the "Unix culture" (and I don't code often enough to want
to want to grind out consumer software), but still want the benefits felt for
other users of the OS somewhat appreciably, and still want this end-user
directed drag-and-drop "Windows culture".

I've heard that the Mac bridges the gap, but I'm an impoverished student, and
spending $1000 on a Mac laptop is something in my semi-distant future.

~~~
socillion
If you want a {star}nix, try FreeBSD if you've got a day or two to set it up.
If not, maybe PC-BSD. PC-BSD is based on FreeBSD but integrates KDE. The
reason I like FreeBSD is that it just seems to have more tools available, like
sysctl to view/set various options like computer temperature, turning the
reading light on/off (on my used Thinkpad T43). Compared to Linux, I like the
core OS more, but there are more programs available for Linux. FreeBSD _can_
run Linux programs through a compatibility layer. Actually, thats how I'm
running the Adobe Flash plugin, but it is a little slow.

A second point: if you think there aren't many games on Linux, wait until you
try FreeBSD - there are even less. There's minesweeper and a few similar, but
thats about it.

FreeBSD users seem to think that Slackware is the most similar Linux distro.
Anyway, FreeBSD might be worth a try for you!

Hardware also seems to have excellent support built in.

~~~
billswift
Maybe I'll try it; Slackware was my first and still favorite distro. The big
problem is I'm on dial-up and can't download much - and too many linux
resellers are apparently rip-off artists, since at least half the CDs I've
bought by mail won't work. That's one reason I bought the new Ubuntu 8.10 DVD;
unfortunately I don't like it much more than Vista, which isn't much. I
haven't got a Slackware distro that will work on my current computer, the 10.1
setup apparently can't handle SATA disks.

------
patrickg-zill
Decent article, but I think that Joel should have worked in a reference to
Neal Stephenson's "In the Beginning Was the Command Line" as well.

~~~
blasdel
Thank god, as that's easily the worst thing Stephenson's ever written -- like
a rambling inept Slashdot comment, but stretched to _160 pages_ \-- it's even
structured around an extended simile between user interfaces and fictional
automobiles, for fuck's sake!

On top of all that, it has the misfortune of being written at the worst
possible point in time:

    
    
      * too long after mainframes, minicomputers, or basic micros
      * right before the death of BeOS (which he was infatuated with)
      * right as Apple is about to die from its own bullshit
      * long after NeXT has faded from relevancy but before the buyout
      * In Linux's middle-aged (~2.2) years when a lot of things were bogged down
        in wank -- well after the initial excitement, but well before BK and git

------
troels
> This is because a textual interface is easier to program against than, say,
> a GUI interface, which ...

I suppose a GUI Interface is expected on an OS built on NT Technology.

