Did you know that the time machine in your text editor is probably broken? Better yet, have you considered that your text editor has a time machine?
The majority of our day is spent in a text editor, but most never think about how they really work. There is a lot more to an editor than saving a few keystrokes or the rivalry between Vim and Emacs; they can teach us about data structures, IO, design, and the dangers of time travel.
Let's take a closer look at some of the most enduring applications, and see what we can learn by trying to build a better editor using Ruby.