Valójában részben mindkettőtöknek igaza van, még ha úgy is tűnik, hogy két malomban őrőltök.
Egyrészt, ha optimális(an futó) kódot akarsz írni - és bzt-nek elsősorban úgy látom, ez a fontos - akkor bizony törődni kell azzal, hogy milyen kód fut a programod alatt: felelősen kell keretrendszert választani, felelősen kell kódolni, és tisztában kell lenni mindig és mindenkor a választott rendszer korlátaival. Sem a Gtk, sem a Qt, sem a WinForms nem a szeplőtelen szentség maga, Qt-ban is lehet platformfüggő kódot írni, még úgy is, ha közben semmilyen platformspecifikus dolgot nem húzol be. Ennek egész egyszerűen az az oka, hogy van amit a Qt, Gtk, egyebek nem, vagy nem pont ugyanúgy támogatnak mindent minden platformon - minden platformnak megvannak a maga sajátosságai. Ez egy adottság, de ahhoz, hogy értsd, hogy mi miért nem működik a kódodban, ahhoz értened kell, mi megy a motorháztető alatt.
Másrészről teljesen érthető sz332 igénye is, hogy azért az alacsonyszintű dolgok 95%-ával ne kelljen mán foglalkozni napi szinten, ha nem akar. És igen, ha valamit egy alacsony szintű, alacsony komplexitású lib/keretrendszer fölé (GDI/X11) írsz meg, ott kellemetlenül sok időt vihet el az, hogy a platform sajátosságokkal küzdesz mindennapi szinten. Ennek egy jó részét el tudja vinni egy jól megválasztott keretrendszer, főleg, ha betartod annak a konvencióit, és igyekszel nem merészkedni a határterületekre.
Ami itt nincs kimondva, az az, hogy kinek mennyi ideje van valójában a fejlesztésre. Manapság, egy felhasználók számára (tehát: parasztvakításra) készülő alkalmazásnál a fejlesztésre jelentősen kevesebb idő van adva, és ez az idő a legjobb esetben is monoton csökken, sajnos. Egyszerűen a desktop/webes alkalmazások fejlesztőinek nincs elegendő idő adva arra, hogy teljesen optimális kódot szállítsanak, rettentesen szűk határidőkkel dolgoznak, és ami bug/probléma a platformok közötti különbségekből adódik, a legjobb esetben is csak körbe van tákolva, mert entül több idő nincs a feladatra allokálva. És nem is mindig lehet eleget allokálni. A dolgok, amiket használunk, elkezdtek komplexek lenni, nagyon messze van az a számítógép ami alattunk van attól, ami mondjuk egy 486-os volt a Windows 3.11-gyel: az alapjai ugyanazok, de mégsem. Hogy ebből mennyi köszönhető az organikus evoluciónak és mennyi a különböző gyártók agymenéseinek, arról persze viták szólhatnak.
A másik faktor, amiről nem esik szó, az pedig a művészi megközelítés. Mondok egy egyszerű példát: van olyan festőművész, aki magának kevergeti ki a színeket hamuból, téglaporból, virágporból, tealevelekből, mittudomén, meg van olyan is, aki lemegy a művészközértbe és kér két tubus pirosat, egy sárgát meg négy kéket, aztán a kész festékekkel alkot. És nem lehet azt mondani, hogy az egyik vagy a másik jobban csinálja. Egyszerűen az egyiknek erre van ráállva az agya inkább, a másiknak meg arra. Alapvetően pl én is inkább leveszek egy keretrendszert a polcról, és használom, mert nekem sokat segít, ha a dolognak arra a részére fókuszálhatok, ami engem jobban vonz: az üzleti igény implementációjára. Nekem az bont ki ágakat a fejemben.
Ami a különbség köztem és mondjuk sz332 között, hogy én üzemeltető is vagyok, engem érdekel, hogy mi van a motorháztető alatt, akkor is, ha valójában a legtöbb esetben - szerencsére - nem kell megküzdenem vele, mert a keretrendszer "megoldja" - hát, úgy-ahogy. Éspedig pontosan azért érdekel, mert ha viszont valami elbaszódik, vagy simán csak nem úgy működik, ahogy elvárom, legalább elvi síkon akarom érteni, hogy mi történt itt, mi változott, mi romlott meg alattam. Volt már, hogy ennek keretrendszer váltás volt a vége, mert az addig használt rendszer egyszerűen nem kezelt le olyan eseteket, amik nagyon fontosak lettek volna, de túl későn derült volna ki, hogy ezeket nem tudja az alkalmazás. Persze, én könnyen csinálok ilyeneket, az én kódjaimban ha van negyven osztály, az már egy komplex cucc.
És egyébként azt gondolom, hogy az igazság valahol félúton van. Nem bűn keretrendszereket használni, addig, amíg tudjuk, hogy mire építkezünk. És itt a "tudjuk" alatt nem a vibe-ot értem ("a Windows egy fos, ezt mindig is tudtuk", "a Qt egy bloated szar", "a C#/WinForms az isten", stb.), hanem a tényleges utánajárást és tudást. És igen, ez sokszor nehezen illeszthető be a napi munkába. És igen, nagyon komplex kezd már lenni a világ, kezdve a mindenféle kontíneres rendszertől a mindenféle hálózatos-proxy-tökömtudja rendszeren át a biztonsági keresztbeállásokig (helló, UAC, helló macOS/PolicyKit security cuccok), nehéz mindent lekövetni. De szerintem valamennyire fontos képben maradni, mert magunknak spórolunk időt hibakeresésnél, hogy nem megyünk végig teljesen haszontalan leágazásokon.