6 ms·
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
by simonblack 7y ago
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 https://en.wikipedia.org/wiki/The_Unix-Haters_Handbook
- ajross 7y agoTo 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.
- ddingus 7y agoWhile I was learning UNIX, the UHH was given to me as a rite of passage. Great book. I learned a lot. Love UNIX.
- cowmix 7y agoAs 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.
- uk_programmer 7y agoGenerally 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.
- kick 7y agoIt's not just a humorous work, it's also genuine criticism. dmr could find the humor in it, why can't you?
- smhenderson 7y agodmr’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.
- gok 7y agoA 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.
- ddingus 7y agoReally, 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.
- tropo 7y agoX 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.
- battery_cowboy 7y agoWow, 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.
- mjcohen 7y agoI learned a LOT when I read the UHH in the 90s.
- ChuckMcM 7y agoOne 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.
- DonHopkins 7y ago>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-glyptapanteles-wasp-caterpillar-bodyguard/ 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/xbugtool.html http://www.art.net/~hopkins/Don/unix-haters/x-windows/xbugto...
- pjmlp 7y agoThat 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.
- IshKebab 7y agoNo 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.
- catblast 7y ago> 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.
- catblast 7y ago> 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.