консольное приложение имеет модель, тоесть ты знаешь в какой форме и какие данные оно принимает и в какой форме и какие данные оно отдаёт. Вполне себе мапится на пазл/конструктор, чтоб собирать pipes and filters архитектуру. Гуй же не мапится так, потому что у него размерность огромная в плане реализации и сложно её ужать для того, чтоб связать несколько компонентов. Апи тоже дохуя размерное по типам, без утиной типизации там потно склеивать, а с утиной — всё точно так же как с консолью, которая текстовая