[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] growing out of idle ide



The dissatisfaction expressed here with the various IDEs and text editors might benefit from some thoughts I had recently about text editors.

I use a text editor more than any other tool on my computers. Many years ago, before using MSWindows I used Vi, and it was very powerful, but like emacs it precedes the common keyboard and mouse standards so is difficult to relearn. When I moved to MSWindows I used a very cool editor named TextPad, which is amazingly flexible, but closed and proprietary (though it can be bought or used for free). However since moving to Linux some years ago I've felt increasingly frustrated about the lack of a suitable editor. For a while I used TextPad under Wine (Windows simulated environment), but that fell far short of ideal.

Astonishingly, in my search for a good, flexible text editor I found a gigantic list of *one and a half thousand* text editors at
http://texteditors.org

That made me realise the scale of the problem: I'm not the only one who is dissatisfied with them. Many people are. And many of those are sufficiently annoyed that they go out and make their own. Of course each editor, no matter how well it works for any individual fails to suit everybody else because there are thousands of ways to use a text editor. I started to despair of ever getting the perfect text editor and I figured I would end up having to make my own too.

So I started to think long and hard about what I needed in a text editor. In a flash of inspiration I suddenly understood why everybody had failed and would continue to fail and how I could make the *perfect* text editor:

Use the philosophy that led to the great success of Unix (and Linux). Don't try to build a single big program to solve all text editing problems. That way leads to bloat and duplication of effort, as well as freezing the program's capabilities. Make lots of little programs that all work together, each one doing a single, small job, but to perfection. As a group then they become much more flexible and more capable. Linux already contains about 45 text-oriented commands. And you can use the simple stream editor sed, along with the pattern-matching language awk, and of course python to easily add any number of more complex commands should anyone need some extra functionality -- they don't have to wait for the next version of the editor. All that is needed is an extremely simple GUI for mouse and keyboard and a way to pass data off to those small commands and get data back from them from within the GUI... well, Linux already has that -- the standard input and standard output along with pipes. Some editors go a little way toward that by using plugins, but they are always too complex, not general-purpose, and sit inside an editor that is already far too complex and bloated.

This would work marvelously for an IDE too. In fact it would be the same editor, but with whatever IDE functions each user required, and no more.

I found out more recently that this is the technique used by nosql, a database system, that instead of using a single monolithic database program, uses all the tiny programs that already exist in Linux, plus about 60 small programs (mostly shell scripts and awk scripts). I think Google now uses a nosql approach to databases. It has become something of great interest lately, though SQL devotees are weirdly hateful about it.

Anyway, that's my take on this problem. I haven't the time (and perhaps not the talent) to make the simple GUI needed for the editor, just yet. If I can't find one that I can bend to my uses I will try to make one eventually. If someone wants to beat me to it then they have my blessings. :)

Cheers,

	- Miriam

--
If you don't have any failures then you're not trying hard enough.
 - Dr. Charles Elachi, director of NASA's Jet Propulsion Laboratory
-----
Website: http://miriam-english.org
Blogs:   http://miriam-e.dreamwidth.org
         http://miriam-e.livejournal.com