Ian Bicking: the old part of his blog

A Browser IDE

Here's an idea: we need an IDE experience that bridges the web browser with the editing environment.

Doing it all in the browser is a bad idea. I won't go into why, except perhaps that textarea remains so horribly bad as to make the idea practically laughable. But I also think that editing and the browser can be seen as separate experiences beyond just key bindings.

Still, the web browser provides a compelling target in a lot of ways. It kind of occurred to me when I saw this example of HTMLTestRunner. Maybe I got distracted by FIT, which is a kind of non-programmer interface. There's lots of other in-between web apps, like the stuff in the TurboGears toolbox, Paste's interactive exception reporter, and elsewhere (as in some of the web-based interactive consoles).

Still, there's a context switch. Yes, it's nice to see stuff in a web browser -- with a simpler and often more complete UI experience than an IDE -- but I still like my editor. So how to bridge this?

I'm thinking Zope's ExternalEditor is one model (particularly the zopeedit side). It uses WebDAV (a subset, really -- the methods it uses are very limited) to open an editor. But this does lose some of the experience of an actual local file. But that's relatively easy to change. Either way, it involves sending some custom mime type (e.g., application/x-zope-edit) that sends information about the file (auth header and URL for zopeedit, maybe a host and filename would be another option). And maybe other little tweaks, like a line number. (E.g., click on a traceback frame to open the editor on that exact point.)

Hmmm... something to think about, and not just for web development. Maybe it's just because I'm more comfortable with web programming and Ajaxy stuff, compared to GUI development, but this seems much more approachable for developing an full development experience (not integrated) than trying to build or extend a traditional "full" IDE. Or maybe it is to say that this seems more appealing than console-based non-integrated development environments. For example, I think the interactive debugger is way easier to use than pdb even if it has less features. (But again, because this is a non-integrated environment, it is quite possible that you could swap in a traditional GUI debugger like Winpdb).

Another goal I see, is that with a non-integrated environment it is much easier to build framework- or application-specific tools that "fit" into the system, if only because there's such a low bar for "fitting".

Created 14 Feb '06

Comments:

I believe that a built in browser development environment could work for certain scenarios, and it has been a blue sky thought experiment of mine since around 2001 when I started hacking XUL. The textarea in a browser doesn't _have_ to be that bad. It's all about how much effort you're willing to put into javascript hacking.

# Karl Guertin

Having programmed in textareas for a while, it's really quite bad. Yes, you can implement search and replace, and you can do auto-saving, and in-place saves instead of resubmitting, and several other improvements. But I just can't imagine it being good for editing. For mere entry -- like what you might do at the interactive prompt -- it's redeamable.

# Ian Bicking

I presume you've seen the Firefox/Javascript Selenium IDE? http://www.openqa.org/selenium-ide/

# Greg Wilson

Maybe what you really need is an IDE with some of the UI ideas from the browser.

http://www.c2.com/cgi/wiki?ProgrammingInWiki

# phil jones