0. Концепция

Большую часть времени профессионально и дома я привык работать на компьютере используя текстовый интерфейс пользователя (Text User Interface - TUI) в терминале и консли без графики. Моими любимыми приложениями на долгое время стали файловый менеджер Midnight Commander (mc) и текстовый редактор ViM (Vi Improved).

В наше время ограничиваться лишь текстовым и посимвольным интерфейсом коммандной строки (Command Line Interface - CLI) уже не получится. Это будет отнимать много времени при редактировании текстов и концентрации внимания. TUI позволяет динамично менять на всём экране в произвольном порядке информацию, создавать элементы (виджеты) меню, диалогов (используя псевдографики); акцентировать внимания используя разные цвета.

Подавляющее большинство работающих на компьютерах и разных гаджетах использует графический интерфейс пользователя (Graphical User Interface) GUI. Настраивать графические среды приходится и на компьютерах с Unix для непродвинутых пользователей, в виду того, что сейчас принято осваивать компьютер используя т.н. интуитивно понятный интерфейс. А он признаётся за графикой с иконками, менюшками, выпадающими списками, ползунками, полосками прокрутки и др. украшательствами.

Принято считать, что создавать и настраивать приложения с графическим интерфейсом нужно в них самих же. Однако, исторически это было не так. На заре становления Unix'а на домашних машинах в виде Linux'а приходилось повозиться с настройками, чтобы на мониторе запускалась графическая подсистема, называемая X Window System, или просто X, иногда X11. А это можно было делать в командной строке и запускать соответствующие неграфические редакторы для конфигурационных файлов X11. Тогда мониторы имели в своём составе, в основном, не LCD (ЖК) панель, а CRT(ЭЛТ). Приходилось в конфигурационных файлах прописывать частоты развёртки, разрешения, различные подключаемые шрифты... И по сей день эти настройки лежат в файлах... но они уже как правило используют все возможности аппаратуры и установленного программного обеспечения (ПО) автоматически. Да и настройки там проивзводятся, как правило, не методом прямого редактирования , а сохраняются теми самыми GUI приложениями-настройщиками.

То же самое касается и разработки программ. Большинство программистов GUI-приложений используют т.н. интегрированные графические среды (Integrated Development Environment - IDE), в которых они не только редактируют исходные тексты программ, но и рисуют интерфейсы, запускают компиляцию, компоновку и отладку по мере продвижения проекта.

Но и по сей день осталась не закрытой возможность использовать Unix-way командной строки и редактировании в терминале/консоли не только в администрированиях и настройках ОС, но и при кодировании графических приложений. Хотя если так разобраться, то сами IDE среды вызывают упомянутые компиляторы, компоновщики и отладку используя командную строку, передавая в ней нужные параметры и дальше посимвольно передавая и принимая от них (backend-инструментов) данные в виде символов...

И тут мы получаем преимущество вмешиваясь в этот процесс, непосредственно введя в текстовые скрипты или файлы автоматизированных сборок нужные нам параметры. Т.е. можно не изменяя своим привычками к интерфейсам CLI / TUI программировать GUI (графические приложения) для ваших пользователей. Посему и просветительский проект решил назвать TUI for GUI или сокращённо TUI4GUI.

Планирую начать с языков программирования C++, класического Си, потом перейти к интерпретируемым Python, Perl. Также есть задумка продемонстрировать и технологию Java.

Инструментальные средства: из компиляторов - это GCC (коллекция компиляторов проекта GNU) и также набор (frontend) языков , работающих на LLVM (проект низкоуровневой виртуальной машины). Отладчик: gdb. Средство автоматизации сборки: make. Может что-то ещё...