Thursday, April 26, 2007

Matrix Emacs




I was watching Matrix Reloaded last night again:


alias dvd='m dvd://1 -dvd-device /dev/hdc -alang en'


And I just couldn't help but think of new ways to interact with information on the computer. I was thinking of an Emacs where you could interact with code in multiple dimensions. I use Ruby on Rails a lot, and it seems to me that there are all these interconnections between different levels of the code that interact together just like those atoms, fractals and gears on the Matrix Reloaded trailer.

Imagine a system where you could easily move between those different levels of abstraction just by using your mousewheel? With one flick you are looking at your entire codebase, zoom in a little to see a controller or model, zoom in more and you can look at the Ruby code that those models call.

And then, overlay on that the actual visitors to your website, viewing bottlenecks and performance problems just like they were problems with actual gears.

Somehow, someday, this will be natural. We, as humans, have all this excellent brain functionality to help us deal with the real world, we will integrate this more into our programming tools, making coding more engaging, more productive and more fun.