Thursday, February 16. 2006
This is an entry about programming editors. If you already have your favourite, or nothing can drag you away from emacs/vi/vim, then great. If you're not entirely happy with your programming editor, then maybe this will be of interest to you.
If you're not a programmer, I'd be surprised if you find this interesting.
In the beginning
I began programming using Notepad for Windows, as this is what we were told to do in 1999. The advantage of the notepad + command line approach, I believe, is that you are under no illusions about what code is. It's text. This is, in my opinion a danger about starting programmers on IDEs. Some students believe that code doesn't exist outside of Gel/Eclipse/VS. Charles Petzold claims this phenomena re-appears later on in life, in his article "Does Visual Studio Rot the Mind?". But anyways, I started in Notepad, and then 2 years later Vishal showed me Context.
Context was a total revelation to me, I couldn't believe code could be colored to emphasis the difference between different parts of it. I was shocked to find that you could edit 2 files with one window (My first non-Excel introduction to Tabs). You could even map keys to perform different functions (e.g. compile, run, javadoc, jar). Context was my favourite programming editor until I began a PhD in late 2003. At that point I saw features that I wanted that Context didn't have. Support for Versioning Systems (e.g. a svn plugin), Auto indentation of code, Class viewer etc. So I went looking again, and found jEdit
jEdit is a great editor, but its just too slow. It's the first editor I used that needed a splash screen, and even then the start up time is awful and the memory footprint is larger than anything I run on my gnome desktop (minus evolution, of course). But like all well written open source projects it has a plugin architecture that makes it all things to all people. I could pretty much get all the features I wanted, remove all the features I didn't want, and voila. jEdit is a very good editor. I spent 2 years alternating between jEdit and gEdit, jEdit is slow but featureful, gEdit is fast but feature-less. Then I saw Dave using textmate, and I liked it.
Textmate is a commercial Mac Only text editor that gets the hell out of your way, and automates all the crap you don't like doing. All of it. So off I went looking for a clone, there is none. Two days ago whilst browsing Planet Gnome I saw something called Scribes. Scribes is a Linux only editor that seems also to get the hell out of your way and let you work. So I'm using Scribes and the moment, and here is an example of how quickly you can do things in it, once you spent 10 minutes configuring it. My scribes demo Warning this link will take you to a 1.4 meg gif file, created using Byzanz, a great desktop recorder. Have a look at scribes, its a programming Editor written in Python for the Gnome desktop. It's at a very early stage of production, but it looks like it will be excellent.
So my favourite editor at the moment is definitely Scribes, but as you can see, its likely to change again in another 2 years. Many months ago I asked all the Minds members what editors they use, and the number one choice was vi. I personally can't get "into" emacs or vi but for some reason I actually learned all the keyboards shortcuts for nano.
Stuff mentioned in this post
Display comments as (Linear | Threaded)
Damn scribes looks nice. I wonder what sort of API it has for writing Python plugins.
One thing I always make sure of when I'm looking for an IDE, is that it's written in a language that will run well on the platform I'm working on. For example windows, C++. There's nothing more annoying than a great editor that takes bloomin' ages to compile.
Try the SciTE text editor,it's great
Scribes is nice minimalist editor with some great features (especially it's snippets), but has some annoying flaws, e.g no support for tabs: every new file opens in new window. Another problem - not portable: it heavily relies on Gnome's libraries that it is impossible to run it on Windows.
SciTE is nice editor too, but it has even more flaws: no tabs (although it support many buffers that can be switched, it's easier when you can click on a file you want without need to open menus or scroll through all buffers). Abbreviations in SciTE are less powerful then Scribes snippets too. And finally it is written in C so you'll have troubles with extending it.
I've been loving scribes for quite some time.
As for all of you, claiming for the SIMD interface, have you tried to press F9?
The document lister is awesome, IMHO.
Thanks for you comment. I agree that Scribes does have many flaws, and having no ability to switch to Single Interface Multiple Documents (SIMD) is really annoying.
I don't really like SciTE too much to be honest, it's like a more annoying version of Scribes, without the simplicity.
Anyways, thanks for reading.
Have you tried out Vim? You really should, it's really well designed.
It's kind of shocking to hear that an interesting programming author like yourself started programming in notepad in 1999. Now you made me feel old.
I know it's not a Text editor but have you eve tried IDEA ? (www.intellij.com/idea)
It's main focus is Java coding but it also includes excellent handling of html/js/css.
2Thibaut: Yeah, you right. It's not a text editor. Having to pull all that heavy weight to just edit text is overkill.
Also, it can't do anything except java.
Also, it's not free.
I have switched to Emacs now and after poking for a month I got pretty familiar with it. I'm even doing my java work in Emacs (and don't say I'm insane: I don't want to learn thousands of text editors to be able to write on different languages and, as I said before, your Idea can't do anything except java).
I think Scribe on Linux is the only thing that come the closest to smart text editors in other platforms:
Textmate for Mac.
E Text Editor for Windows (Intype is ok)
Someone should really port E Text Editor to Linux. It has a very nice syntax highlighting and even have version control included.
I have been working with Textmate for long but I need a break now.. tried this new & liked Great work !
My name is Des, I'm the UX Lead and COO of Intercom, a fantastic CRM & messaging tool for web sites and web software.