Nu este o chestiune de complexitate, este o chestiune de reprezentare și rezoluție a datelor. Un terminal clasic este doar text, unde o interfață grafică completă este bazată pe pixeli, desenând orice text cu pixeli.
În terminalul clasic, numai caracterele pot fi afișate. Este posibil să faci meniuri „grafice” complete și chiar gesturi ale mouse-ului doar în text, dar uneori este oarecum incomod în comparație cu o interfață grafică completă, dar totuși foarte utilizabil și poate fi foarte complex.
Cu toate acestea, afișarea imaginilor ca în gimp nu se poate face doar în text. Puteți reprezenta imagini cu artă ascii, dar nu este chiar același lucru, iar rezoluția pur și simplu nu există.
În mod similar, ai putea implementa ceva de genul gimp într-un buffer de cadru grafic brut fără interfața grafică completă, dar totuși să beneficiezi din plin de reprezentarea și rezoluția pixelilor, dar ar lipsi lucruri precum manipularea ferestrei, așa că ai putea fi restricționat la o singură fereastră cu o singură aplicație sau ar trebui să reimplementați interfața interfață grafică completă. De asemenea, setul de instrumente GUI pe care se bazează gimp ar trebui să fie portat în framebuffer, deoarece a fost conceput pentru a utiliza suportul disponibil în interfața interfață grafică completă.