Textmode and the terminal in general, comes from a long way back in the past. It was invented in a time, that computers had many restrictions, compared with the present ones. So, the terminal also had its limitations, from which many of them, came because of the systems limitations. Now days, those limitations are gone and the terminal/textmode has also gone this transformation. Who would have thought back then, that today we wouldn't use codepages any more and UTF8 would be the standard.
For sure, erasing or overcoming these limitations of terminal is a good thing, but we shouldn't forget the origin of it and what had served all this time. You may be able to resize a terminal to 1000 chars. wide now, but back then 80 chars. was a standard and even less sometimes. You may be able to play SNES games or even DOOM II in the terminal now days, but back then, you didn't even had light bars or even colors, in a terminal.
So, coming to the present... many new textmode, cli/terminal applications are being built, that do all sort of stuff and "magic", which is very cool. For sure text mode is not dead and it still has a purpose in computers and will always have. But today, developers are not used in the limitations of the past. They think, that because you can resize a terminal application, using a GUI/Windows environment, up to hundreds of characters, you should use all that space and even discourage the use of smaller in size terminals.
Take for example the application AngryOxide. If you try to use it in a terminal 80x25 chars, it wont let you to and it will tell you so. Other cli apps do the same also... WHY?????? Because developers, don't know how is it to use a limited system and they don't care about. They think, that because the majority of computers can run in high resolutions, with much greater speed etc. that all users and all computers/systems can do so. But no... it's not like this, for everyone or every system and "The Terminal" is for those systems.
My opinion on the matter is, that if you need hundreds of chars to visualize something on the terminal, you'd better use a GUI toolkit. If you want to make apps for the terminal, make them compatible, with systems, that have limitations. The minimum supported size for a cli app, should be 80x25. If you can do it for even less, like 40x20, do so... but don't make apps/tools, that want very big terminals to work. And it's not that the app. needs all that space. Most of the times, if all... it's bad designing. It's because the programmer, doesn't think that others, with smaller terminals would want to use the apps, that not all people want to launch a XWindow system, just for having xTerm to display a terminal app.! It's because the programmer was too lazy or not familiar with the "old ways" that didn't adapt the TUI to be able to use as little space as it's possible.
Respect the terminal, text mode and what they represent! Limitations, in every form, are a chance for creativity and to think out of the box. It has been proven by all those old games and systems, that even with 8bit, 16bits colors, 4MHz, 8MHz CPUs and two tone speakers, developers have done miracles with them and hobbyists continue to do so.
If you want to build cli/terminal apps you should respect the following guidelines:
Size
80 x 25 chars, should be the standard minimum supported size. If you can with less, do so. But don't expect that every system/user will have a larger one. If a terminal can support a larger size, then your app, should have the ability to resize and use the space, but it shouldn't ask for space just to run.
Colors
Don't over do it with colors. Even if terminals now days, can support 256 and more colors, just stay in the limit of the 16 colors.
Pagination / Scrolling
Nope... don't expect that all terminal apps, support scrolling. I dare you to use a TTY Linux terminal, with out tmux. If your app. throws too much of info, give the user the ability to scroll back, even by using tools like less
. Instead of scrolling, you can use pagination, display stuff page by page.
Keys
If you are programming something for the terminal, then don't expect to use the mouse for it! Some terminal, don't even have special keys, like arrow keys or Home, End buttons etc. If you can avoid cursor keys and use simple letters for navigating into your app. do so. The furthest you should go with the keys, are the arrow, F1-10, Home, End, Tab etc. No media player or other special keys and for god sake, not mouse!
Textmode and terminal, is built for systems, with limitations. If you think that you are making things, without those limitations, then your app, shouldn't being made for the terminal. A "trip" to a BBS system, will give you many ideas and remind you, how was the past and what text mode, really is ;)