Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Despite GUI applications having been around for 30ish years, software is still written as lines of text instructions, for various valid reasons. But we've also found that manipulating these text instructions is mind-blowingly difficult unless we apply a layer of coloring on different words to represent their syntax, thus allowing us to quickly parse through these text files without having to read the whole words.

But besides the Sublime Text minimap feature, I've yet to see any innovation in visual representation of code since colors came around on CRT monitors.

I can think of one obviously essential representation that modern graphics technology allows: visual hierarchies for nested structures. If we make nested text slightly smaller than its outer context, and zoom on it when the cursor is focused on the line, then we will be able to browse huge files of nested statements very quickly. This becomes even more essential as languages based on closures and anonymous functions become filled with deep statements.

Has anyone attempted to implement this in a text editor? Do you know of any otherwise useful improvements in representing code text graphically?

share|improve this question
    
HyperCard was one. –  Oded Oct 24 '12 at 15:42
    
HyperCard is no longer used, so it couldn't really apply universally to programming the way syntax highlighting does. –  Mathieu Hélie Oct 24 '12 at 15:46
1  
What would you consider blockly? code.google.com/p/blockly –  FrustratedWithFormsDesigner Oct 24 '12 at 16:14
2  
"Huge files of nested statements" should be avoided. We don't need tools that encourage their creation. –  kevin cline Oct 24 '12 at 18:21
2  
I wouldn't say coding is "mindblowingly difficult" without syntax highlighting. Does it make things easier? Absolutely, but I think its significance is a bit overstated in that sentence. –  primehunter326 Oct 24 '12 at 18:55
show 7 more comments

2 Answers 2

Code Bubbles are neat. Microsoft has adapted the idea for debugging purposes in Debugger Canvas.

share|improve this answer
    
Wow! Great link to that Bubbles video. Bubbles looks really intuitive. I can't imagine writing much code in bubbles, but I like the idea for helping me explorer the code. –  JW01 Nov 5 '12 at 14:24
add comment

Take a look at JetBrain's Meta Programming Systems (MPS) project. One of its central points is the departure from plain-text representation of programs in favor of tree-like in-memory structures that represent the same concepts. The MPS editor lets you manipulate these trees with the simplicity of manipulating plain text representations, and build programs that convert these representations to programs in other programming languages.

share|improve this answer
    
I took a cursory look at their video, and this seems more like a syntax/metadata construction system (in the vein of AntlrWorks) than an IDE, unless I'm not understanding it. –  Robert Harvey Oct 24 '12 at 16:03
    
@RobertHarvey I tried both AntlrWorks and MPS, and they are vastly different. AntlrWorks lets you build and debug grammars that you can later embed into your system, while MPS lets you build metadata-of-metadata, and also interpret it to process a set of metadata and convert it to parts of a running program. If you have a few hours, go through the MPS tutorial at least half way to get a firsthand feel of what is going on there, it is different from ANTLR's ecosystem. –  dasblinkenlight Oct 24 '12 at 16:15
    
OK. But what does that have to do with the OP's imagining of a programming editor with tree-like, hierarchical zoom capabilities, using ordinary code such as C#? I can imagine such an editor; you could roam about your code like you're walking through a forest. We sort of have that in Visual Studio now with "Go To Definition," but it is crude in comparison. –  Robert Harvey Oct 24 '12 at 16:19
    
@RobertHarvey Textual representation is only one way to visually represent the trees that represent your program. Internally, your program is stored as a tree, not as text. Using "MVC speak", Text is your view, and tree is your model. Although their tool chain does not have a built-in tree-based view, you can certainly build one that uses MPS representations. –  dasblinkenlight Oct 24 '12 at 16:34
    
I'll read up on it. –  Robert Harvey Oct 24 '12 at 16:36
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.