September 2002
Software Code and Whitespace (INCOMPLETE)
This is another pointless rambling on wether the use of whitespace to transmit meaning is appropriate in a language.
Keyboard or Mouse?
The computer mouse is good for some things, but only graphical things: drawing lines, positioning text, and resizing. Outside this domain, the mouse is less effectual than the keyboard. Of course, there are fringe regions where the mouse and the keyboard have debatably equal utility (like selecting an object from a list).
Graphical languages have never caught on. There are some graphical layout software for forms and web pages, but beyond the need for a graphical interface for desiging a graphical presenetation, languages have appeared to stay textual. Why?
We try to answer this by considering the non-graphical domain when talking about languages from now on.
Most of us can agree that the use of the keyboard is significanlty faster than the mouse when it comes to transmitting human desires to the computer. If we had a purely keyboard interface, then we could easly log all the keystrokes sent to an application program. Upon inspection of this log, we would have a character stream that we will call the application's "keystroke language". This "keystroke language" obeys all the rules of formal languages, a grammer can be written, and tests for correctness can be done.
If the keyboard is the most efficient method of inputting data into an application, then we must conclude that the keystroke language is most efficient representation for putting in data into the application.
Editing Errors in Text
We would like to note that there are some keystrokes in the language that are used to undo the results of previous keystrokes. We can minimise are total keystroke count if we were perfect, but we are not, and it would be nice to view and edit this langauge so that we can send that batch of commands to the application in the future. To make the keystroke language editable, every keystroke should have a glyph to represent it.
We will call this editable glyph sequence "text". We would also like to format this text so it is easier to read.
Seperating Text from Formatting
- HTML is the best know example of a text formatting language. HTML consists of two langauges,
- The basic text editor, that has been around for decades, is a simple version of gui HTML layout tool. The text editor uses its own set of markup tags (tabs, spaces and newlines) and displays them accordingly.
- HTML uses more verbose tags and escape sequences (<br>, $nbsp, ...) to achieve the same formatting ability
- It is interesting to note that the widespread use of HTML did not expand on this set of tags, but invented its own.
- Text formatting belongs to the domain of the display interface.
Seperating text from its formatting allows us to be explicite about each, and be able to seperate each from the other.
Mar 2002: fix spelling and phrases
Jan 2002: First draft