Notice to Unix Web Software Devs
So, there's a number of promising server-side javascript packages coming out, and I've been excited to try out using them. But in the process of trying to deploy them to a live hosting environment, I've run across a long-standing problem unix software tends to have. Take, for example, this set of instructions for building Google's v8cgi:
"1. Download and build V8, http://code.google.com/p/v8/. Create a shared library (library=shared). Copy it to /usr/lib/libv8.so."
Where's the problem? That last part -- "copy it to /usr/lib/libv8.so" -- is just fine if you're running on a system you have administrative rights to. If you don't, and you're lucky, you can invest a few hours or days in adapting the expected file layout to your system constraints. It's not uncommon to be unlucky.
What's so fascinating and yet aggravating about this is that it's the rule rather than the exception when it comes to Unix software -- and yet, from its inception up until the mid 1990s, it's also been the rule that your average Unix user would in fact be one of many unprivileged users on a machine. With the growing power of PCs and popularity of Linux and BSD, many more individuals became administrators of their own systems in the mid-1990s, but the rise of shared hosting packages gave rise to hundreds of thousands of unprivileged accounts. In short: the case of the unprivileged Unix user is hardly a rare one. So, why do so many developers seem to fail to consider it entirely?
The unfortunate thing is that because success of a project is correlated with adoption, this state of affairs hurts both potential users and the developers -- especially for a technology that's designed to work through CGI, as with v8cgi. When users are forced to choose between some form of dedicated hosting (and with it, becoming or hiring competent system administrators for the entire web stack) or abandoning promising technologies, it becomes somewhat sensible of them to choose something like PHP despite its shortcomings. Developers who ignore this choice in turn limit their audience and lose an entire potential transmission surface for their projects.