The Tale of Two Consoles
Definition: In REBOL the console is the interface where PRINT and INPUT send and receive character I/O.
R3 will support two types of consoles. They are defined by these two R3 host devices:
| ||DevStdIO||The raw character stream. This is the stdio supported by the default host operating system, and is identical to that used by all other "shell" applications. It has limited features; however, it is often used by servers and other applications via stdio file redirection methods.
| ||DevConsole||The advanced and user-friendly GUI console. Similar to R2, this console appears in its own special window and provides many useful features such as history, auto-indentation, word/file name completion.
It is important to know that these devices serve different purposes.
For example, if you are writing a CGI command server, you will want to use DevStdIO because it is file stream based and very efficient in startup and execution.
However, if you are writing and debugging code, you will want to use DevConsole. We expect this console to expand into being more like a mini-IDE. It will also show backtrace information, support breakpoints, step through lines of code, and hot-link to definitions and documents. These are code productivity features that most programmers would like to have in REBOL.
The current alpha versions of R3 only support the DevStdIO console. Although limited in features, it serves its use for an alpha version. Please keep this in mind.
It should be noted that these two console devices are affected in different ways by Unicode. The DevStdIO stream is defined by the Unicode modes supported by the native OS. In those cases where the native OS does not support Unicode, then the R3 DevStdIO device (open source code) must translate to whatever code pages are supported by the host OS.
The DevConsole uses its own graphics and Unicode text rendering system. As long as the fonts (and font renderer such as FreeType) are available, this console will interface in Unicode. It is an R3 goal to make sure this works well for all popular languages worldwide.