Necessary, but not sufficient. A lot of terminal apps are still - to borrow a phrase - captive user interfaces, which don't play much better with others than a GUI. Decompose all the things into individual utilities (or libraries) so they can be reused and recombined!