It's somewhat amusing to think that in 2013, decades after the first high-level programming languages (FORTRAN and LISP) were invented, we're still programming by writing source code in ASCII (or UTF-8) text files. Working with text-based source has advantages in terms of simplicity and interoperability, but I believe that it will become advantageous to move to designs where source code is represented and edited directly as a hierarchical data structure instead. At this point I should clarify that when I speak of programming languages that aren't text-based, I'm not suggesting visual languages you edit using a giant touch interface as seen in minority report, nor do I mean languages based on boxes and arrows that require two dozen mouse clicks to implement one addition.