4 ms·
The Unix Haters Handbook is pretty interesting reading, but I remember that the chapter on X was one of the weakest. It doesn't help that it starts with the hoa
by paol 9y ago
The Unix Haters Handbook is pretty interesting reading, but I remember that the chapter on X was one of the weakest. It doesn't help that it starts with the hoary old myth that X named the 'server' and 'client' backwards. More relevant however is that from the vantage point of 2017, it becomes clear that X is one of the most unreasonably successful software architectures of all time.
Think about it: how many pieces of software design have remained in heavy use worldwide for 30 years. The fact that no one bothered to replace it in all that time is proof enough that whatever warts it has can't be that painful. (Now, finally, it seems like it's going to happen with Wayland, but it's not there yet.)
Not only that, but computer display technology has changed massively over X's lifetime. I'm writing this in a composited window manager hardware accelerated via natively-3D hardware outputting to multiple monitors of different resolutions over as many different digital display links. How much of this was even imagined in the 1980s? Yet the X protocol via it's extension mechanisms has proven adaptable enough to take in massive changes in the technology, and still keeps on ticking.
- swiley 9y agoPeople hate on X quite a lot. I'm not even too fond of it personally. But it runs on /everything/ it's lighter than most display frameworks and it's very easy to program for. And to your point, there isn't a single display framework as old as it is that's still used. > I'm writing this in a composited window manager hardware accelerated via natively-3D hardware outputting to multiple monitors of different resolutions over as many different digital display links And I'm writing this from a very underpowerd netbook with no working hardware graphics and everything still works. Try that with windows 10, wayland, coaca or whatever other display framework you like.
- fsloth 9y ago"how many pieces of software design have remained in heavy use worldwide for 30 years. The fact that no one bothered to replace it in all that time is proof enough that whatever warts it has can't be that painful. " I'm not convinced modern software ecosystem optimizes for quality. Many CAD packages used today have roots as old or older. The dominant CAD format (at least in construction) is DWG which - I can tell you from experience - is about as nice to work with on programmatic level as trying to skin rotten cod. The data contained in this steaming heap of obfuscation is mostly trivial in complexity. Just because we have tools in use does not mean they could not be better - it's rather that once something is in use, social proof, sunk cost fallacy and some practical reasons kick in and development stagnates to dealing with the kinks in the established system.
- ansible 9y agoI was just ranting to some people yesterday about how with HDMI there are still remnants of the original NTSC broadcast standard from nearly 80 years ago. Even though we've (finally!) reached the point where my digital computer is sending a digital image to my digital monitor with no unnecessary analog conversions in between.
- jandrese 9y agoOne of my "favorite" parts of HDMI is that you can specify the resolution in two different ways depending on if you are connected to a computer monitor or a TV. Choosing the right one is sometimes important, a resolution might not work on your display if you specify it using the other format.
- jacquesm 9y ago> how many pieces of software design have remained in heavy use worldwide for 30 years. Unix itself.
- mark-r 9y agoThe Unix you're using today likely does not share a single line of code with the Unix you were using 30 years ago. It was rewritten.
- jacquesm 9y agoI heard someone assert that millions of lines of code were stole, millions!
- int_19h 9y agoOut of curiosity, I did blame on some files in the FreeBSD source code (https://github.com/freebsd/freebsd https://github.com/freebsd/freebsd). In core utilities like "cat", "kill" and "mv", there are still quite a few lines dating back all the way to the original commits of BSD 4.4 Lite source 24 years ago. Example: https://github.com/freebsd/freebsd/blame/e278a20c2ee54d8fa1a1f5024e04e1383cf1e76c/bin/cat/cat.c#L316 https://github.com/freebsd/freebsd/blame/e278a20c2ee54d8fa1a... And if you look at lines that were changed, quite often they are style changes/fixes. Unfortunately, the easy-to-trace history doesn't go back further than that, but I think it's reasonable to assume that some of these lines, at least, could be dated back to before 1987.
- mark-r 9y agoBut BSD was a rewrite too. I don't know what the mix of Unix versions in common use was 30 years ago, but I assume AT&T's original was up there. That's the version I started with around that time period. I was actually assuming that most people today were running Linux, but I forgot that Macs use pieces of BSD.
- int_19h 9y agoAs far as I know, BSD never did a complete rewrite touching every single line of code. They rewrote the code that was inherited, or derived from, AT&T Unix. Which was most of it, but not everything.
- IshKebab 9y ago> Think about it: how many pieces of software design have remained in heavy use worldwide for 30 years. The fact that no one bothered to replace it in all that time is proof enough that I think you've got this backwards. The worse a piece of software is the harder it is to work out how it works, upgrade it, replace it with compatible software, etc. More examples: plenty of people knew OpenSSL was awful but have you seen the code? Nobody sane is really going to want to work on it. It took a catastrophe to change that. An even better example: LAPACK. It's been around since 1992, and until fairly recently was written in FOTRAN77. Yes, the one where function and variable names can't be longer than 6 letters or they won't fit on punch cards. Take a look: http://www.netlib.org/lapack/explore-html/dc/dd2/group__double_o_t_h_e_reigen.html http://www.netlib.org/lapack/explore-html/dc/dd2/group__doub... Yes, nobody is going to rewrite most of that. (Actually there is Eigen now thankfully, but it took some time!)
- dragandj 9y agoI used to think the same, until I started using LAPACK extensively. It might look confusing at first, it may even be the most confusing api, except for all the others that are more confusing, and unusable from 3rd party platforms. When I learned it, I realized that it is excellently designed.