Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

And yet, here we are, over a quarter-century later, and that "disaster" is still allowing our programs to run on one computer and display the result on another computer on the other side of the world.

The 'Unix Hater's Handbook' is supposedly a humorous work. But it was mainly used in the 1990s by non-Unix companies as anti-Unix propaganda. Unfortunately for them, all of today's main computer/software companies either use Unix or Unix-like operating systems (Apple:BSD Unix, Google:Android, IBM and Others:Linux, Microsoft:WSL). https://en.wikipedia.org/wiki/The_Unix-Haters_Handbook



As a someone who has used Unix for 35+ years, I feel the book is great. It actually does more to explain why things are the way they are in UNIX than any other book I've read, pro-Unix or not.. I don't agree with everything it covers and many of the complaints of the book have been addressed over the years, but it definitely still relevant today.


To be fair: the UHH is a legitimately great book, a fun read, and absolutely something every modern developer should know. It's opinionated in exactly the right way, even if some of its conclusions turn out to have been wrong in hindsight.

But as for X11: yeah. You can complain all you want at microdesign issues, but longevity beats all. I can run an unmodified X11R1 client from 1987 against the default install of pretty much any newly installed Linux/BSD box and it still works, something not true of literally any other contemporary GUI toolkit of the era.


While I was learning UNIX, the UHH was given to me as a rite of passage. Great book.

I learned a lot.

Love UNIX.


Generally I agree. However I would say with regards to iOS (not MacOS) and Android. While underneath they are both Linux and Darwin based respectively. Almost the entire OS anyone interacts (including most devs) is done through the Android and iOS APIs. They could replace what is underneath with something very different and you wouldn't be any of the wiser. There isn't really much to separate something like Ubuntu and MacOS in terms of what they are (other than polish).

In Jaron Laniers book "You are not a gadget" he says the open source community are very good at making clones of existing things but not inventing new things themselves. I would argue that programmers in general are very good at making clones of existing things. This has allowed Unix-like operating be ubiquitous as they are easy to copy and are good enough.


It's not just a humorous work, it's also genuine criticism. dmr could find the humor in it, why can't you?


dmr’s forward is my favorite part though. As others have said a lot of the criticism in the book has been addressed over the years. I came late to the party so I missed out on a lot of the early bugs and mis-features of UNIX.


No it isn't. Almost nobody uses raw X over long distances because it is unusable. Everybody uses something else like VNC, RDP or NX. Note that NX actually moved away from the X protocol and is now just a VNC-like protocol, i.e. it only deals with pixels. Every modern remote desktop protocol works that way because it is better.


One of the fun things about working at Sun back in the day was that there were folks trying to fix some of the issues that were legitimately raised by the UHH.

That said, I shared Don's disgust with X. The difference between running X on a workstation and SunTools felt like a 300% slowdown.

And yet today I sit here typing into a window that is being displayed by an X server running on a Windows OS on a computer that is acting pretty much like an X-terminal for my Linux server. It has warts, true, but its still flying as they would say on Firefly.

I have often wondered what the world would be like if we had decided to move the GPU into the monitor and ran a parameterized display system over HDMI rather than something that looks like a cancerous NTSC composite video signal.


>One of the fun things about working at Sun back in the day was that there were folks trying to fix some of the issues that were legitimately raised by the UHH.

Like opening core files (which have gigantic gaps of unmapped zeros) by loading them into the XView text editor when you double click on them in the XView file manager? ;)

That's actually how core dumps grow and reproduce and evolve, like those wasps that lay their eggs in other insects and turn them into zombies, by embedding themselves in an unwitting host process and making it core dump even bigger!

https://www.wired.com/2014/10/absurd-creature-week-glyptapan...

And while on the topic of XView: Do you have any good XBUGTOOL horror stories, Chuck? ;)

The most foolish thing I ever did was try to use it to file a bug against itself. Boy do I regret that!

http://www.art.net/~hopkins/Don/unix-haters/x-windows/xbugto...


That disaster is the major reason why UNIX FOSS clones will never get desktop or mobile computing devices beyond a single digit number.

You can have all the fun you want with your beloved X, I rather use modern Windowing platforms and their composition engines.

Also, UNIX underpinnings are completly irrelevant on Android, iOS and ChromeOS.

In what concerns macOS and Windows, they are there to cater to the GNU/Linux crowd that buys Macs and Windows devices instead of buying GNU/Linux hardware.


> But it was mainly used in the 1990s by non-Unix companies as anti-Unix propaganda.

Some strange revisionism there as few of the authors of UHH were involved with Windows.. which is what ended up completely eating commercial Unix lunch... a win that was not so much due to Microsoft’s competence as their competitors stupidity.

Meanwhile calling Mac OS X or Android Unix-like just because they have some tools in common (MAC OS X is only vaguely a BSD — and launchd seems to get some love by the same people that have a conniption fit over systems) .. none of those systems use X for sure. Desktop Linux is a rounding error.. the part of Linux that gets used heavily for servers that is the reason that WSL is a thing (to ease development)?? Yeah that has basically fuck all to do with the disasters in SySV/commercial Unix... not too many people using SySV IPC on Linux, and cgroups, epoll, io_uring hardly remind me of the miserable APIs of now ancient Unix.


> allowing our programs to run on one computer and display the result on another computer on the other side of the world.

I feel sorry for anyone having to use X over a link of that latency. Especially if their internet service has a tendency to go down. How many X clients handle loss of connection better than just terminating?

And are there really that many people using X remote as compared to RDP or Citrix. I would be surprised to find out that remote X is widely used in 2020 (if you can even call it’s brief heyday in the 90s while commercial UNIX was losing its balls to Windows NT due to vendor incompetence).. and I would risk the age discrimination suits and fire the IT team.

X was already an ugly obsolete piece of crap in the 90s when it was foisted upon us by all the major commercial Unix vendors. It should have rightfully died with SGI, Sun, and/or DEC.


I learned a LOT when I read the UHH in the 90s.


A lot of the criticisms have been addressed though. Basically no one outside of enthusiasts uses X any more; Android and Chrome OS use an entirely different graphics system. The filesystems have been replaced. Shells have been replaced and/or obviated for most users.


Really, and this is an OK choice, but is a choice all the same:

What happened is others settled on a subset of multi user graphical computing.

That is not replacing X. It is something different, less.

Maybe less is more too. I have an open mind.

However that goes, X nailed multi user graphical computing. Pretty much any crazy thing you can think of can be done on X.

Want to make a computer that several people use locally, each with their own screen, keyboard, mouse? X can do that, and permit those users to view and interact with any combination of each others display data.

One says, hey can you sort this for me? Another says, "sure", and a window pops up on their screen...

Now, replicate that same setup, each user has their own powerful computer, maybe with a common, shared display among them, like a wall display or something.

No problem. X does that too, and chances are only the sysadmin differs. The apps will have no clue.

It may be that we just do not work that way, or maybe not enough know how, but let's be clear here.

X is not being replaced. A subset at best is being put forward.

I think that means we just are not really doing multi user graphical computing. And that is OK.


X has never supported reliable screen locking. If the screen locker program crashes or is killed because the OS ran out of memory, the X server is unprotected.

It's an unpleasant feeling to come back to an unlocked screen in a shared building.


Wow, can you tell me where I can find out about how to do those things, like:

> Want to make a computer that several people use locally, each with their own screen, keyboard, mouse? X can do that, and permit those users to view and interact with any combination of each others display data.

> One says, hey can you sort this for me? Another says, "sure", and a window pops up on their screen...

Is there literature or something about setting up complex things like this in X? I'd be interested in learning more.


The term for multiple displays is "Dual or multi-head"

The term for multiple, independent users is "Multiseat"

Those should get you somewhere near the entrance to the rabbit hole. Enjoy your journey.

The view and interact part, when I explored this stuff, is very insecure by today's standards. Can be fun though. :D


"That is not replacing X. It is something different, less."

Like UNIX vs Multics?


Maybe. Seems a similar kind of thing. I only have a fleeting grasp of Multics.


Someone should hand you a Nokia N900. A smartphone from 11 years ago, with specs that kind of sucked even for the time, but it ran X, and pretty well.

It's not some weakness that forces them not to use X, it is NIH. Same reason Google is writing a new kernel for no descernable reason.


Btw, I have shells, keyboards, mice, pens for my Android device and use all of them.

I think some of the X capability would be amazing on mobile.

We have hobbled mobile. Not completely as I know I can do really powerful things still, and when I do people gawk and point and usually ask a lot of questions.

I remain unconvinced this is all a good idea. We will see in a decade or two.

Maybe.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: