Graphical Source Code Editors

6/23/2004 2:15:46 PM

Graphical Source Code Editors

I want to eliminate some confusion in my earlier post about source code editors becoming more graphical. Michael Teper said that I went off the deep end.

By graphical, I don't mean any UML, flow chart or diagrammatic view with drag and drop. It's still a text editor, in the sense the Word or PageMaker or FrontPage is a text editor.

Such graphical editors won't actually appear much different from text editors; they may even look the same as text editors, with some differences.

  • Block orientation. Code will be block oriented rather than line oriented. Think of each code block (preceded and followed by a curly brace) as behaving like a table cell. Navigating out of a block may done through cursor keys. In this situation, a block would alway have a ending curly brace, even if the curly braces don't show. When a block is created, it exists in full form, not like the situation in regular text editing where an open brace may not have yet been closed by an ending brace; this is because the block exists as a fully constructed object in memory, which is being rendered in the view.
public class Program
int main (string[] args)
Console.Write("Hello world");
return 0;

  • Dynamic code formatting. No more worries about indentation, semicolons, etc.
  • Optimized presentation.  The expression 1/2 may display vertical in fractional form.

This article on SCID explains the concept much better than I could.

The best parallel of this is HTML editing, which can have both a design and a code view, except that HTML was always intended for presentation. Design mode is the graphical view, and it always produces syntactically correct HTML. It also provides higher-level services, and, by changing the CSS it refers to, one can actually change the appears of HTML in design mode.






Net Undocumented is a blog about the internals of .NET including Xamarin implementations. Other topics include managed and web languages (C#, C++, Javascript), computer science theory, software engineering and software entrepreneurship.

Social Media