I'm not even sure where to begin with this. Or even where I'm going with this.
First off, there's Aza Raskin's [1] demonstration (Google Video: Away with Applications: The Death of the Desktop) [2] of Enso [3], an application that brings the command line back to the GUI (Graphical User Interface) in a very novel way (and yes, the video is worth watching, and the Enso application is something that, were it available for either the Mac or Linux, I might buy).
I got the link to the video from Thought Storms: The Return of the Command Line [4], which I linked to before [5] (and that post is somewhat related to this post).
This all somehow is all related, primarily to customizing the computing environment.
One small example: I have customized vi (the standard Unix editor) to my liking. It's not a lot of customization though. My .exrc file looks like:
>
```
set ai
set showmode
set sw=2
map m ^F
map v ^B
```
That's it. Five lines of modification. The first just sets auto-indent mode. The second one displays the current mode (command mode or insert mode) on the screen. The third sets the tab-indent to two spaces. Those, I can live with or without (and really, half the time, I don't want auto-indent mode so that's actually a wash).
It's the last two lines I can't live without.
The first maps the M key to page forward in the command mode. Normally, the “page-down” command is Ctrl-F but that's two keys to hit, and usually, when I'm in vi, I'm not editing, I'm viewing. And the last line maps the V key to “page-up”, which is normally bound to Ctrl-B (again, two keys).
And what normally happens is I get on some random server at The Office, I'm viewing a file in vi, go to hit M to page down through the document, and get … something else.
Then I go ballistic.
Sigh.
Which is one reason why I tend to type out insanely long command lines instead of making a script—because customizing the computing environment isn't worth my time or sanity (even with a five-line file; also, people using my customizations, one of which involves renaming rm to delete tends to drive them up a wall).
This also relates partially to my dislike of IDE (Integrated Development Environments)s. I've learned to be productive without one, since I “grew up” without using them. And I've found them to be intrusive the few times I have used them (mainly beause the built-in editor sucked compared to what I was actually used to, which again, ties back into computing environment customization). I found it weird to hear programmers (mostly students) asking where they could get an assembly language IDE—they were totally lost without such a crutch (and yes, I'm using that word deliberately here). But my crutch was a particular text editor [6] from IBM [7]. Was it really that great of an editor? Maybe. This quote pretty much sums up how I felt about it (the quote is about a newer version of the editor I used):
Is PE II really that good? Frankly, no. It's just that I'm really that lazy. I've used it for so long that it's like breathing to me. I don't have to think about where the keys are or what they do. I just think about what I want to do and it happens.
When I need to edit a C file that is too large for PE II, I use Brief. Sure, Brief is bigger, better, and faster than PE II. But its key bindings aren't etched into my skull like the pattern on an old monochrome monitor that's been displayed for months.
But enough about that. I know what my preferred C/C++ programming environment is in DOS. I want to find my preferred programming environment in Linux. The reason I bring up my personal preference—and the inertia that cements it—is that I believe the same sort of inertia is at work among the developers I queried.
“Linux development: Command Line, Emacs or IDE? [8]”
I used that editor long enough that I never had to “think” about using it. I just did. And I'm still attempting to use the Tab key for navigation to this day (under PE, the Tab key didn't insert spaces—it just moved the cursor to the next tab stop; I could navigate to any point on the screen in just a few seconds, if that).
So, to bring this back around to Enso [9]—yeah, it's great. Yeah, I'm tempted to get it (if only it didn't run under Windows). But do I want it? Were I to become dependent upon it, would using a non-Enso enabled system suck too much?
What exactly do I want from my computing environment?
Seven months ago I brought my workstation home from The Office [10] with the intent of replacing my old home system linus. But the amount of customization I've done to linus is so extensive, that I've yet to actually switch. Even though I can create entries for this blog technically anywhere (and submit it as a text file, or through email, or through a web-based interface) I still prefer editing on linus, as I have several extentions to the editor I use there to help create entries (and it's still not as fast or as smooth as I would like it [11]).
Blah.
[1] http://en.wikipedia.org/wiki/Aza_Raskin
[2] http://video.google.com/videoplay?docid=-
[3] http://humanized.com/enso/
[4] http://www.nooranch.com/synaesmedia/wiki/wiki.cgi?TheReturnOfTheCommand
[6] http://www.texteditors.org/cgi-bin/wiki.pl?PE
[8] http://www.cs.vassar.edu/~priestdo/emacspeak/list.archive.1999/msg00358