Prošel jsem si tento díl a vnucuje se otázka, proč (ne)použít ncurses, když je s tím tolik práce. V dnešní době, sám za sebe, bych se snažil využít nějakou knihovnu vyšší úrovně, pravděpodobně s jiným programovacím jazykem, jak asi z diskuse výše vyplynulo.
Jsem zvědav na poslední díl - bude tam nějaké spojení poznatků z minula v jednu funkční aplikaci, byť třeba jednoduchoučkou. Hrozně rád bych si to reimplementoval a ověřil, že jsou všechna ta úskalí vyřešena taky.
Těch důvodů proč nepoužít ncurses bude celá řada - nejsou modulární, není tam podpora pro tvorbu komponent, a tudíž existují jen tři rozšiřující komponenty, občas se chovají "divně", protože dost funkcionality je implementováno tak, že se o ni stará terminál nebo se emuluje v ncurses (a vy jako autor nemáte jistotu na co se spolehnout).
Na druhou stranu pořád je to poměrně lehká a jednoduchá knihovna, která nemá zbytečně moc vrstev. Je všude a v sobě nese brutálně velkou knowleadge base. Terminály jsou hrozná bažina, a od toho vás ncurses v 99% odizoluje. Navíc implementuje jakýs double buffering a optimalizaci tisku (tiskne se jen změněný obsah). To knihovny, které jedou nad ANSI terminálem většinou nedělají.
20 let dělám s Cčkem, protože je Postgres v Cčku, takže nemám s Cčkem problém, a naopak mi vyhovuje, že se pohybuji plus mínus na podobné vrstvě abstrakce jako v Céčku - a u pageru chci rychlý start, a na to je ncurses ideální.
Určitě bych nechtěl psát komplexnější aplikaci v ncurses. Návrh formulářů je peklo (z dnešního pohledu). Na druhou stranu nemusí být na škodu se s ncurses seznámit, když se zajímáte o TUI. Je to nejrozšířenější API, které žije velice těsně nad hw vrstvou, a přitom pokrývá prakticky veškerý dostupný hw (včetně sw emulací). Je to podobné jako s assamblerem - nemusíte v něm psát, ale čím víc o něm víte, tím snáze ladíte nejrůznější špeky
O žádné takové aplikaci jsem zatím neuvažoval. Ale můžete se podívat na demo ncurses-st-menu https://github.com/okbob/ncurses-st-menu/tree/master/demo případně na pspg https://github.com/okbob/pspg/blob/master/src/pspg.c - ale spíš ta dema k st-menu.
Kdyby jste měl jakýkoliv dotaz, tak není problém mne kontaktovat - kontakty na mne jsou veřejné https://postgres.cz/wiki/Pavel_St%C4%9Bhule