[“ubuntu”] describes humanity as “being-with-others” and prescribes what “being-with-others” should be all about. Ubuntu emphasises sharing, consensus, and togetherness.
according to ubuntu.com. Over the last two days I have experienced a palpable lack of togetherness with this beast in an attempt to explore the world beyond Windows. I have some Grails/Java code that I wanted to try running on a linux box rather than on Windows (on which I had no problem getting it to work). Grails is a dynamic language that requires run-time compiler support, so it must use the JDK rather than the JRE.
The problem was that the application kept using the JRE and not the SDK, and I couldn’t figure out how to convince to look at the JRE. It turned out that the problem had to do with having a separate place where the JAVA_HOME environment variable was configured because it had to be launched as root so that it could bind to port 80 to be a web server. The details are not as important, however, as the upshot. In fact, I am sure this is a trivial problem for someone with moderate Linux experience, but the last flavor of Unix I used was Sun 4.1.3 in 1996, and very little of what (little) I knew then remains with me.
What struck me was that from a system architecture perspective, Linux seems to do a really poor job of separating concerns. I am doing application development, but am required to modify all sorts of files scattered around the system to get the damn thing to even load. Furthermore, I don’t know if any of these files may get wiped out when some package gets updated, and I have to keep track of them myself.
My sense is that the design philosophy (something like “better living through indirection”) was to be as flexible and configurable as possible, thereby presumably pleasing more people. Yet this is the same problem as (for example) Microsoft Word’s myriad features only a small subset of which are used by any one person but whose required presence complicates every installation and interface.
Given that configuration seems so brittle, and given the complexity of the system, those who are interested making Ubuntu a more mainstream platform should devote more attention to making the routine trivial rather than the complex possible. Only then will this operating system have a chance to live up to its grand name.