There are several very helpful comments to my last post filling me in on the Unix justification for the use of the
/usr/local/bin location for Subversion’s utilities, and why that location isn’t part of the default
PATH environmental variable.
All helpful, all logical. All, as one commenter put it, “Mac OS X’s BSD heritage shining through.”
Still, it makes me feel uneasy, and what follows is a first attempt to describe why.
Don’t get me wrong. I was being paid to program on Unix long before I was paid to program on the Mac. Emacs before CodeWarrior, CGI before Toolbox. Unix has an elegance and a rich history that’s hard to match.
But I don’t want Unix to replace the Mac.
For end users, the debate has pretty much ended. Apple’s APIs are the expected way to interact with them. Anyone who seriously suggests that X11 or a command-line interface is an acceptable way to package consumer applications is, well, not taken seriously.
But as a developer, I’m frustrated by how all that is thrown away when discussion turns to the tools I use on a day-to-day basis. Here, Unix is expected. To use Subversion, I need to know the command line and, as the commenters pointed out, the Unix filesystem hierarchy and its history. I need to know Unix, even if what I’m trying to build is a straight Cocoa application with no Unix API or convention dependencies. I’m expected to know Unix.
I don’t want a ghetto to arise where end users get helpful, easy-to-use applications and tools, but the infrastructure for making and selling similar GUI-based tools to developers withers away because, well, everything’s Unix. Just compile it yourself and go.
What happens when developers all live on the command line, but they’re the ones in charge of writing the elegant, GUI-based applications for the rest of us?