People familiar with batch and other scripting languages, feel a need to have a PRINT command to output to the console.  KiX being a free-form language, does not have, nor require, such a command.  To fill this void, people will often use ? to satisfy their need.

For example:
? "Hello World"

Where in reality, this would suffice:
"Hello World"

The ? command is a NEWLINE command, similar to the @CRLF macro which provides a carriage return/newline in the output stream.  If one were to output more text following "Hello World", it would be concatenated (appear on the same line).  The AT command could be used to place the text on a new line as could the ? command.

The question then begs to be asked.  Does the ? belong at the beginning or end of the output stream?  In most cases, it really matters not, but if doing RedirectOutput() to file, it would be a different story.  If the last line of the file has a CRLF, then putting ? at the beginning would create a blank line.  Inversely if the last line of the file didn't end with CRLF and the output stream had ? at the end, the two lines would be concatenated.  When writing to a text file, it is considered 'best practice' by most, to have a CRLF at the end of the output stream.

For example:
$RC=RedirectOutput("log.txt")
"Hello World" ?
"Welcome, "+@UserID ?
$RC=RedirectOutput("")
_________________________
Give a man a fish and he will be back for more. Slap him with a fish and he will go away forever.