Why write a thousand comments when I can write one post? My recent post, Are Gnome and Ubuntu ruining the Linux Desktop? has garnered a lot of interesting comments, including some with useful information, some thoughtful commentary, the scratchings of a couple of wet hens and one rabid Canadian that I had to delete from the internet.

This post is a response to some of that commentary.

First, let me say that while I was asking the question “are Gnome and Ubuntu ruining the Linux Desktop” … and it is a valid question, I have to say that I like Ubuntu A LOT and I also like Gnome. Ubuntu, running Gnome, is my distribution of choice.

But that is not what my post was about. What I’m asking is this: As a mainstream distro goes more and more mainstream and time goes buy with the accretion of this and that new feature, is it not likely that eventually the system will become weighted down and too much oriented to eye-candy?

One issue that came up is the use of, and the wisdom of the use of, libraries. I thought libraries were a good thing. I thought libraries were how well designed code gets re-used, and how core functionality can interface with software on one hand through the libraries’ API while continued work on efficiency and bug-squishing could happen on the other side. Am I wrong about that? Is this really a problem:

Developers don’t realize that using a library / libraries is a trap that you cannot get out of. Once in, you’re stuck with the methods and every bit of (un)logic thought of. Therefore lxde will become the new Gnome.

I’m not necessarily disagreeing here with Monzo, I’m just not entirely sure.

The “Unix philosophy” vs. not issue has also come up, and I want to throw an idea out here: I was just reading something by a well known famous computer guy who noted that Emacs is implemented the exact opposite way of what one would expect for the Unix philosophy. Instead of making a bunch of little tools that work together, Emacs is almost like an entire operating system thinly disguised as a text editor.

Well, it seems to me that that can work as well. Having a high level meta-system, an application that can directly access the shell (and more) and that a reasonably sophisticated user can adapt (maybe in a way that won’t run on your 10 year old laptop ….. but still) as one way of making the CPU and the peripherals do your bidding, at the same time as developing these bits and pieces, is one approach. After all, when we put our bits and pieces together to make a script, we are essentially making a mini system designed to do a (probably) unique set of things with a unique set of data in a unique context.

If only Emacs were just a little bit more extensible….

Finally, I want to make a concrete suggestion regarding Gnome: I want a version of Gnome that comes as source code has many/most features listed in a simple way that even I can understand, so that I can check what I don’t want vs. do want, and compile a native version. I would not have tool tips or the ability to produce tool tips. I would not have desktop wigets (or whatever they re called) or the ability to install them. I would have two versions of nautilus … one fully functional the other very bare bones. And so on. This would surely be the most efficient way to deploy a desktop, yes?


  1. #1 Matt Hussein Platte
    July 28, 2008

    Tooltips. I haven’t checked but I’d guess they were invented in Seattle. Bleh.

  2. #2 Todd
    July 28, 2008

    You’ve yet to explain how Ubuntu is creating a problem that didn’t already exist with Redhat or SUSE. I remember people were bitching about Redhat’s RPM ruining Linux a decade ago. The fact of the matter is, with Linux, you have a choice. If you don’t like GNOME or Ubuntu, there are a couple hundred alternatives available to you at sourceforge.

    Have you tried SUSE 11 yet?

  3. #3 phisrow
    July 28, 2008

    I’m not sure that it is strictly true to say that emacs is the opposite of the unix philosophy. Emacs, itself, is a big, huge monolithic program; but operation within emacs consists heavily of using combinations of small emacs lisp extensions, just as one combines numerous unix utilities in the shell in order to get things done.
    Because emacs isn’t originally a unix application(hearkening rather to ITS and TECO at the MIT AI lab), it runs on unix as a big monolithic lump; but its internal operation is still markedly closer to the unix philosophy than that would indicate.
    An admittedly loose analogy would be to something like cygwin. From the perspective of the windows OS, cygwin is a monolithic lump, practically an entire OS, doesn’t really integrate with the rest of the system in a unixy way. Obviously, though, it operates very much according to the unix philosophy, viewed internally.

    As for libraries: Monzo seems to have conflated the question of libraries and the question of desktop environments. The two have become rather confused because both of the big DEs have libraries closely associated with them; but they are two different things. Libraries are an obvious good. They provide a good way of abstracting and reusing in a consistent way all kinds of common functions, and reduce memory requirements, increase application consistency, and help insulate applications from platform specific weirdness. Whether or not a DE is right for you is an entirely different question(as are questions about the relative quality of various libraries in common use). In fact, systematic use of libraries is perhaps the measure most likely to make your desire for configurable feature levels practical; because libraries are all about modularization. DEs, it is true, do tend toward greater levels of complexity, and heavier assumptions about what sorts of stuff will be running(e.g. under GNOME, dbus is essentially obligatory); but that has nothing to do with libraries.

  4. #4 John S. Wilkins
    July 28, 2008

    I think you are making a single bog mistake – that there is a philosophy for Linux, or *nix, or Not-M$-OS. There are many philosophies. And when Linux becomes (or completes its becoming) a corporate nightmare, along will come another Torvald to offer something else. It’s a dialectic of history sort of thing…

  5. #5 John S. Wilkins
    July 28, 2008

    Or even a big mistake…

  6. #6 Frederick Ross
    July 29, 2008

    Oh, I wouldn’t worry about the Linux desktop. It goes through fairly regular cycles as people add stuff then other people pull it apart and rewrite it into a faster layer, and still others decide the whole thing is too heavy and start from scratch. And some of us still live with oddities like larswm or the archaic fvwm2.

    But Emacs most certainly does not fit the unix philosophy, and it is indeed an operating system. It’s the last of the Lisp machines. It was always meant to be a slightly grubby version of Utopia you could start up and then forget everything outside it. When Stallman wrote it, he implemented the minimal virtual machine he needed in the most portable manner possible. It’s why Elisp is such a primitive language: it had to work anywhere. No closures, no threading, at best primitive graphics support. But if there is anything more extensible than Emacs, I’ll eat my hat. I’ve seen people use it for nonlinear video editing.

    As for libraries, if you want the extreme case go real Charles Moore on colorForth’s design. There’s a man who writes his own CAD to design his own chips to run his minimal, ascetically beautiful programming language in hardware. The new SeaForth chips he designed are amazing, though.

  7. #7 Jérôme ^
    July 29, 2008

    Well, except that there are some scientists that actively fight back against that scorn from the liberal arts majors…

  8. #8 Jérôme ^
    July 29, 2008

    Whoops, wrong blog post, obviously :-(

    I actually meant to say something about the title of your post — you may not be aware of it, but MetaPost is actually a Unix program that embodies the very Unix philosophy of having small tools adapted to each task. It is a derivative of metafont, the program bundled with TeX (both were written by Knuth) and used to make the fonts; metapost is used to make graphics, and yes, it is a programming language, Turing-complete and all, and as dated yet as powerful as TeX.

    In short, metapost is awesome, and another reason to like Unix systems. (I know it would work as well under Window$, but that system is not half as ergonomic as even the worst Ubuntu clickodrome, especially when it comes to using command-line programs).

  9. #9 Greg Laden
    July 29, 2008

    Todd: The Ubuntu link is tenuous. As I say, I like Ubuntu. In fact I love Ubuntu. I’m all ubuntu about Ubuntu.

    The effect is indirect: As you have more and more regular, semi-normal people using Linux, you get more windoization. Ubuntu is in fact the most successful distribution in this regard.

    Your point that with Linux you always have a choice is totally on the mark and the reason that Lunux will avoid ruin. I have not tried Suse 11. 10, yes, 11 no.

    Phisrow: The author’s idea regarding Emacs is, I think valid: As a single application that is extensible, it is operating-system like. In fact, you can sit there in Emacs and do all your PIM stuff, run commands and scripts and capture the output, play games, balance your checkbook, use a pretty fancy calculator, oh, and process text and stuff. But all the other things you say are true as well, of course. Interesting point about libraries vs. desktops, I’ll let you two argue that out!

    JohnW: Maybe, but Linux has been around for a long time and that has not happened. It is not a corporate entity, and the GPL license does not allow it to be swept into the free market as easily as other entities, unless Microsoft (or someone) starts winning the patent war and takes over Linux, claiming to have invented “the idea of using a computer to do stuff” or some such crap. I do think that what you are saying totally applies at the inter-distro level. Ubuntu may need to be replace by some other concepts, for example. Certainly, we DID see that with Red Hat. But since the distros are really all the same, we don’t care.

    The “Unix philosophy” I refer to is a very real thing. It is explicitly outlined in chapter two or three of every book on opreating systems and/or on unix/linux ever written. It is not always followed but the exceptions are always noted.

    I did not label this post with the word “MetaPost” as a play on words. Damn. I wish I had!!!!