Mark Pilgrim writes about writing new text editors, or more importantly about garden path software.
Hereâ€™s the basic problem: youâ€™re writing a text editor. Stop doing that. Itâ€™s 2007. Saying to yourself â€œIâ€™m gonna build my own text editorâ€ is as silly as saying â€œIâ€™m gonna build my own build systemâ€ or â€œIâ€™m gonna build my own amusement park.â€ Blackjack and hookers and all that. Writing a great text editor is insanely difficult. There is a certain class of software that sounds easy but is actually insanely difficult. I call it â€œgarden path software.â€ If I ever start a software company, Iâ€™ll name it â€œGarden Path Software,â€ but until then, just stop.
I do not agree with Mark that new text editors should not be written. I agree with Mark to say that do not write new software unless you can find a new USP for it. As the number of man years of software industry increase, it will get more difficult to find need to write a new. Even if you are developing for yourself, identify the purpose behind it – new functionality, productivity, simplicity, a niche market, an existing unsatisfied user-base, hobby or whatever it is. Some digging up can also help you realize the actual effort involved, the effort to develop and then make sure to make benefit or ROI apparent. This is your preemptive answer what will justify the effort. Alternatively you can choose different options from writing from scratch to tweaking an existing piece of software.
If you still end up writing a new one without thinking about what it does, that some existing software does not, make sure you do not repeat mistakes that others have done in the past and incorporate what are considered the basic features, like undo for a text editor. You will have the least margin of tolerance compared to all your predecessors.