When developing a command line applications, one could choose between two designs:
- put the command prompt at the bottom, and the output window above it, where responses and command history are appended at the end and which is autoscrolling down
- put the command prompt at the top, and the output window below it, new items appearing under the prompt and autoscrolling upwards
What are the trade-offs?
The first choice would be the traditional approach. It resembles a log file, which as a document is written from the top to the bottom, and is easier to implement (e.g. not requiring the itemisation even for multiline outputs - it just appends line after line). Often the prompt is integrated right into the same textfield that shows the output, it's not even a separate element. It's easy (mentally and implementationwise) to switch to document editing mode.
The second choice would have the most important elements - the input prompt and the most recent outputs - at the top, where they can be styled visually distinctive. This approach kinda resembles a news feed or activity stream. Each command-response pair would be an individual element appearing at the top, amidst other messages generated by the application. Twitter or Facebook - always longing for out input - work similar to this, even though they don't have commands but just can create feed items.
The only recommendation on the topic I found was to keep direction internally consistent. What else do I need to consider? Is the second approach a good idea? Has it ever been tried out for a command prompt interface?