Many software-developers do their work primarily using an integrated development environment (IDE) like Xcode, Eclipse, or maybe Visual Studio. And even if some of the IDEs do a pretty decent job in dealing with various file formats that are not in their main focus it may easily become more or less inconvenient to take the IDE of your least mistrust for general purpose editing.
This leaves more than enough room for an entire ecosystem of general-purpose file editors used for the various side-tasks that have to be done beside the cranking of code for your main project. On the other hand, the world isn’t just black and white, not even with respect to text editing tools.
In other words, the taxonomy of tools in terms of general-purpose editor vs. IDE isn’t always as clear as it may seem at the first glance. Just take good ol’ emacs1 as an example. For some it is the general-purpose editor they literally used to grow up with2 and for some other folks it is the mother of all “generic general-purpose IDEs” they take to build arbitrarily complex tool chains with.
Based on intuition, Joe Developer will most likely have a clear picture of which tool makes a good IDE and which tool is supposed to be the best (or, maybe, least mistrusted) approximation to a general-purpose (programmer’s) file editor.
Given the ability to choose from different options3, people will eventually find the tool of their choice for file editing. And although your mileage may obviously vary, it seems obvious that the gain in terms of productivity can hardly be overestimated once the tool of choice has been identified.
On my personal “mission” to find the tool of choice, I have used quite a lot different file editors on the Mac platform, from the early SubethaEdit4, emacs, to early Smultron5, to TextWrangler, the “little brother of BBEdit”.
This does not include two of the seemingly most popular choices, TextMate and BBEdit. Why not? I don’t think that the specific features that distinguish BBEdit from TextWrangler would make the real difference for me. Also, the (pardon) slightly antiquated GUI concept behind TextWrangler/BBEdit doesn’t seem to resonate very much with me.
TextMate, which comes as a fresh and modern alternative, might have been a candidate and I have considered it multiple times but for some reason I never got convinced to the point of purchasing a license.
In hindsight, this might turn out to be a good decision. According to a conversation in the episode #33 of the “Build & Analyze” podcast there may be a chance that the currently available release of TextMate may suffer from unfixed compatibility issues with Lion.
Marco Arment, who explicitly mentioned the central role of TextMate for his workflow, has obviously given up any hope for fixes to appear in the near future and openly considered switching to a BBEdit.
On the other hand, he admitted that at the moment he does not know BBEdit good enough to base a decision to switch on more or less hard facts. But what are the facts really, what killer feature makes someone decide about replacing such an important piece of the tool chain?
Is the killer feature a mere myth? Is the decision actually more about a well-balanced sum of features rather than one or two unique selling points? Incidentally, just as the podcast episode went through the question of whether or not a change was due I was also pondering yet another switch of my preferred file editor.
This time, I’m leaving TextWrangler behind and embark onto something new: SubEthaEdit. Let’s see how this choice works out.
Personally, I have a record of working with emacs to the extent that during the late 80s and early 90s Micro GNU/emacs was my editor of choice for, well, coding and general purpose editing. The alternatives weren’t many, basically emacs, vi, or (god help us) edlin. ↩
Of course, the options are usually not that many in a corporate environment.↩
That was back in time when it still used to be free as in free beer for non-commercial usage.↩
For some time Smultron used to be free, it became a paid product after I stopped using it.↩