Nem. Itt nem az a baj, hogy make-kel nem lehetett targetet választani, vagy még előtte a build során kapcsolgatni, hanem hogy jelen esetben a GIMP kódja is egy amatőr, egybe, egyféle GUI-ra fixre rádrótozott gányolmány. Ez a későbbi átírásokat is meg fogja aránytalanul nehezíteni, mikor majd Gtk4-re, meg 5-re kell átírni, azok is katasztrófába fognak torkollani, előre megmondom.
Továbbá nem. Ha a GUI le van választva, akkor csak néhány GUI specifikus eljárást vagy objektumot kell átírni. Igen, az is lehet munka, akár adott esetben nem kicsi, ha komplex a UI, de mindenképp könnyebb, mint ha az egész kód egybedrótózott fos lenne, ahogy a GIMP meg a kedves MS szokta csinálni.
Ez egyszerűen kódszervezési kérdés, meg előrelátás, hogy a jövőben könnyen karban tartható legyen a kód. Abban igazad van, hogy némi feature-vesztéssel járhat az absztrakció, ezt aláírom, de ennek nem kéne meghatározónak lenni. A GUI csak egy ruha, a kompromisszumok mindig megoldhatók. Meg is ette a fene azt a feature-t, amit csak egyféle GUI, toolkit verzióhoz kötötten lehet csak implementálni, ha ilyenek programozol bele a projektedbe, akkor a későbbi karbantarthatóság, átírhatóság ürügyén előre szándékosan keresztbe teszel magadnak, időzített bombát veszel a nyakadba.
Azt még megérteném, ha lett volna olyan egybe drótozott projekt, amit felhozhatnál ellenpéldának, hogy na, annál nem nehezített semmit átíráskor, de nekem ilyen nem jut eszembe. Csak olyan példa, ami a GIMP esetét is alátámasztja. Pl. Notepad++, foobar2000, a fejlesztők már ott is leszögezték, hogy nem lesz soha, csak Windows verzió, mert az egész cucc úgy van megírva, hogy annyira Windows-specifikus hívásokkal van minden megoldva benne, hogy lehetetlen, aránytalanul nagy munka bármi más alá portolni. Ezek soha nem sikertörténetek, a gányolásnak mindig lesz ára.
Igazából a Cobol mainframe kódokkal, meg a bankok által használt elavult Java kódokkal is ez a baj, hogy egyféle adott, elavult környezethez vannak benne fixre drótozva a hekkek (pl. Cobolnál az adott mainframe egyféle core memory vagy szalagos-tárolós IO megoldásához), és emiatt átírhatatlan a cucc, egyre inkább nem találnak fejlesztőt, aki patkolni tudná.