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.