I remember reading somewhere that you aren’t a real carpenter until you’ve made your own tools. Not being a carpenter of any sort, I’m not sure if its true or not, but I’ve started to feel like it might be true for programmers.
More and more I’ve noticed that IDEs are becoming required to work with code. And more and more, these IDEs have very similar, but not the same, features. They all offer customization of one form or another, but what’s more custom than something that works exactly the way you want it to, because you wrote it that way?
So I’ve set out on a quest to take the journey of my programming forefathers and write, to begin with, an editor and a language with its own compiler/interpreter. Perhaps the two will be related, perhaps not. Perhaps the language will be generally useful or maybe it’ll only be the extension language for the editor … or perhaps it will be nothing more than an experiment in language design and have no practical purpose whatsoever. But I expect that once I get to a certain basic level of usefulness with the editor, it will become my sole text editor since I do believe in eating my own dogfood.
Since my platform of choice nowadays is the Mac, I have already started writing my editor as an Objective-C OS X application. I started out with the code from the article: Building a Text Editor in 15 Minutes. It has given me a huge appreciation for the underpinnings of OS X and gotten my editor almost all the way to that basic usability level I mentioned before.
As I move forward, I’ll be sharing thoughts and discoveries from my journey here. I hope you find them useful … or at least entertaining.