This might seem at first like a stackoverflow post or anything else, but I think the topic is not very explored and quite suits the site.
I’ve got my inspiration from quite a few discussions on IRC, including
#lobsters. And I’m also at a process of designing some elaborate cross-platform TUI app, but this isn’t a direct call for recommendations on that certain project since my own goals are somewhat different.
But in this post I would like to ask you: do you know any complete, powerful libraries or fameworks which can help someone build a complex TUI application using similar approach as GUI toolkits?
Of course, there’s a lot of “bare bones” libraries to manipulate terminal state such as the only and one ncurses, termbox or even mighty notcurses. And for most determined people the “build your own set of controls” approach is completely okay, but I think there might be some higher level options. Especially helpful for people who already have some libraries to do their actual stuff, but might look for frontend options.
Personal ramblings below, just my own take, not to alter anyone’s opinions or answers
If we’re taking an account on my personal taste, I’m generally more looking towards “more information, less decoration” stuff and I think the best comparison here is spotify-tui vs ncspot. The first one is very much like a webdev person (no offence at all) would create a TUI - very boxy, lots of dings and still gets somewhat noisy and overloaded at times. The ncspot is pure information with little, neat bits of decoration and yet it maintains to be more readable IMO. In this territory, my favourite application is weechat - highly configurable, every renderable “item” has to be composed from information source, the default divides terminal with different panel background colors and vertical lines where needed.
Of course, I have nothing against more “visualized” approaches as long as they’re done in a good way, since I really love midnight commander with all its menus, windows and popups.
There’s even a step further than that with Turbo Vision which was the foundation for old Borland products like Turbo Pascal and was very capable with layered window system, lots of widgets and very intuitive user approach. I would totally use software like that today, but I think that’s quite a lost art on its own.