( Raynes | 2021. 06. 27., v – 20:17 )

Szép sorban: a GUI, mint koncepció zsákutca. Igen, megkönnyíti a gép használatát: de csak idiótáknak, akik nem akarnak semmit fejben tartani, meg most tanulják a gépet használni, és le kell bontani nekik a dogokat egyforma ablakokra, ikonokra, menükre. De aki haladó, azoknak nem kell ez a mankó, csak lassítja őket. Hiszen amíg GUI elemek között tallózol, ikonokra kattintgatsz, menüket hozol elő, az időveszteség, a billentyűzetről ki kell nyúlni az egérért vagy tapipadért, ott be kell célozni az egérkurzorral az aktiválni kívánt elemet, kattintani, majd még esetleg ha olyan GUI elem, ami előhoz további GUI elemeket, akkor ott ezt megismételni. Időveszteség ez, egy kis ms itt, ott, a sok kicsi sokra megy. Advanced / skilles power user meg csak megnyomja a billentyűkombót, és közvetlenül indul neki az app, vagy az appban a megfelelő funkció, nem kell keresgessen, egérrel célozgasson, egérért kinyúlkálnia, tallózgatnia. Plusz a szoftvert is leegyszerűsíti, mert nem kell annyi ikont, gombot, szir-szart ráaggatnia a fejlesztőnek. És ez minden GUI-ra és GUI-s appra igaz, az agyonhájplot Total Commanderedre is, ami egyébként nem rossz progi, használtam én is nagyon sok évig, aztán Double Commander klónját is, de idővel, ahogy fejlődtem, elengedtem ezeket, ma már Vifm és shell+fzf+alias/saját_scriptek mentén csinálom ugyanazt, ami sokkal gyorsabb.

Az AutoHotKeyt ismerem, de egy szar. Linux alatt vannak X-es alternatívái (xdotool), de nem kellenek. xbindkeys se egyedüli alternatíva, vannak mások is, pl. sxhkd, mxhkd, stb. A Linux egy plaint text és konzol alapú OS, nincs szüksége ilyenre. Követlenül lehet gyorsbillentyűket bedrótozni. Ez az AutoHotKey mindig is megbízhatatlan, néha nem reagálnak időben GUI elemek, beakad, stb.. Egyfajta utángondolás, ami a Windows problémáját van hivatva megoldani, de ez a probléma Linux alatt nem létezik, azért nem portolják át.

A DOS-os életérzést úgy értettem, hogy azok még egyszerű idők voltak. Plain text konfigfájlos, konzolos rendszer volt, bloat nélkül, gyorsan betöltött még egy ótvar gépen is, mindent közvetlenül tudtál rajta állítani, nem nagyon volt GUI, köztes API, egyéb baromság, szinte teljesen testre tudtad szabni, és bloatmentes bare metal progik futottak rajta. Ezt a fajta egyszerűséget, áttekinthetőséget, konzolalapúságot adja vissza a  Linux, ami nagyon hatékony, csak aki használta, az nem emlékszik rá, aki meg használta, az elfelejtette. Itt a példámban nem az volt a lényeg, hogy a DOS zárt rendszer volt. Igen, az volt, de az őskorban ez nem számított. A lényeg, hogy konzolos rendszeren te saját magad vagy a user és a userinteface is egyben. Te csinálod a computinget rajta, te nyomod a gombokat, és nem valami GUI választja el tőle a gépet és közvetít közted, meg az alkalmazások és szofterek között, hanem közvetlenül használod a gépet.

A Windowst meg a GUI-t azért érzed hatékonynak, mert azt szoktad meg. De az nem azt jelenti, hogy valójában is a leghatékonyabb, ezt magamon vettem észre, mióta nem nagyon használom. Továbbá XP alatt semmi nincs a kezedben. Egy csomó rejtett, nem dokumentált funkció, registry beállítás, zárt forráskodú szutyok fut (jó, most kiszivárgott, de senki nem foglalkozik vele, te meg nem nézed át a kódját, ergo neked továbbra is zárt). Igazából semminek nem vagy az ura, csak a látható processek, service-ek, meg automatikusan induló egy-két progi vonatkozásában. Még a grafikus felületet se szabhatod teljesen testre. Egy fogyatékosoknak szánt, zárt rendszer, amiben minden le van egyszerűsítve, meg tele van pakolva korlátokkal, DRM-mel, stb..

A kedvenc programjaid sorban: IrfanView. Linux alatt nem kell, vannak normális képnézők, képszerkesztők. Van natív klónja, az XnView, de az se kell a kutyának se Linux alatt. Mert képnézésre teljesen jó a imv, sxiv, vagy a bloatabbak közül Gwenview és társai, tömeges képmanipulációt meg tud az imagemagick segítségével csinálni, aminek van GUI-s része, de van scriptekben használt parancssoros része is. Az imagmagick convert pl. ugyanolyan svájcibicska, mint az ffmpeg, sox, stb.. WinSCP felesleges, Linux alatt, FTP, SFTP, SSH, stb. kapcsolatokat fel tudod csatolni mappába, amit a kedvenc fájlkezelőddel, vagy shelles munkafolyamataiddal elérsz. Nem kell külön GUI szutykot letöltögetni, hogy menjen, meg n+1. szoftver is fent legyen a gépen, ami a helyet foglalja, frissítésnél extra töltögetést eredményez. Ott lenne helyette a FileZilla, de azt is csak nagyon egységsugarúak használják, nem a tipikus linuxos poweruser. A Media Player Classic helyett mpv, ami megy terminálban is, de ha MPC-s élmény kell, akkor SMPlayer, mindent tud, amit az MPC.

Putty holt felesleges, Linuxra vannak jobb terminálemulátorok, eleve a rendszer integráns része, nem kell még külön n+1. progit letöltögetni. Ez a Putty Windows 10 régebbi alverziókig volt szükséges, amíg a Windows Parancssor egy nagy szutyok volt. A Win10 kései buildjeiben viszont a MS megemberelte magát, és a sok minden hiányzó funkció beépített a gyári parancssorban. Linux alatt meg mindig is szükségtelen volt a Putty. Ez megint olyan Windowsos problémát oldott meg, ami Linux alatt sose létezett. Egyébként van a Puttynak natív linuxos, BSD-s változata, csak épp senki nem használja, ha mutogatod szakmai oldalakon, körberöhögnek vele, meg facepalmokat nyomnak.

Office 2003-at hagyjuk, ma már nagyon elavult, csomó feature-t nem tud, tele van korlátokkal, fájlméret, táblaméret, doksiméret, csomó formázást, modern betűtípust, stb. nem tud., zárt bináris formátum, amit a mai napig nem nyit meg semmi normálisan. Ha egyszerűség kell, akkor a markdown, TeX, HTML pehelysúlyúbb alternatíva helyette, ha nehézsúlyú alternatíva kell, akkor LibreOffice, TeX/LaTeX, R + Gnuplot.

AutoHotKey-ről már írtam, hogy miért felesleges. Maga a koncepció hulla ötlet, hogy GUI-s appokat automatizálj. Automatizálni a parancssoros, CLI progik valók, mert azokat lehet akármilyen scriptből hívogatni, POSIX shellscriptek, Python, PHP, Perl, awk, Lua, vagy amit akarsz, nem kell egy n+1. GUI-s szutyok megint, hogy helyetted idiótáknak szánt gombokat nyomkodjon, amikre eleve nem volt szükség soha, csak valami öltönyös-nyakkendős érezte úgy, hogy ez valakinek segítség. Eleve ez a GUI-s gombnyomkodás automatizálva teljesítménynek sem tesz jót. A GUI program is több erőforrást kér, mint a CLI, és általában míg a AHK nyomkodja a gombokat neked, addig pár ms-okat veszít itt-ott, mert várnia kell, míg aktiválódik és az aktivációról van visszajelzés. Ha ugyanazt CLI formában hívod meg, tool --parameter blabla /elérési_út/fájl, akkor az egész sokkal jobb teljesítményt is ad, ha pl. több ezer bemeneti fájlon automatizálod ugyanazt, akkor az AHK-ban hosszú percekig fut, míg a CLI + script megoldás lefut alig néhány mp. alatt.

Sokan vergődnek ezen, hogy jajj, XY windowsos programnak nincs linuxos alternatívája. De, általában van, ha meg nincs, az meg nem lustaság, hanem annak az eredménye, hogy nincs rá szükség Linux alatt. Pl. a Notepad++-ank van már, notepadqq, de ez megint olyan, hogy a kutya nem használja, mikor ott van a vim, Emacs, Visual Studio Code/ium, Sublime, micro. Vagy pl. Winamp/AIMP, van egy csomó klónja, Audacious, QMMP. Vagy foobar2000 helyett ott van a Deadbeef. De pl. sok user hiányolja az asio funkciót a Deafbeef-ből, ez megint olyan, hogy az asio a Windows hangrendszernek a problémáit oldja meg, ami Linux alatt eleve nincs (jó, vannak helyette más problémák, de azokat az asio úgyse oldaná meg). Persze rutinos linuxos megint nem nagyon használja a fentiek egyikét se, mikor ott van a mpd-alapú ncmpcpp, cmus, moc, mpv, ffplay, akármi, ezeket megint egységsugarúaknak csinálták, akik Windowsról frissen, ha jönnek, akkor ne ugassanak, hogy jajj-assincs. iTunes-nak is vannak klónjai, az Amarok-alapúak, Clementine, Strawberry, stb.. De megint, ezeket kb. a kutya nem használja, és nem csak azért, mert vannak jobbak, hanem eleve a legtöbb ember ma már nem offline tárból hallgat zenét, hanem online streamet hallgat, Spotify, Deezer, Tidal, Quboz, Apple/Google Music, stb., azok meg mind webesek, böngészősök, meg Electron appok, így ez a problematika nem jön elő, hogy jajj, Winamp, jajj, foobar2000, jajj 2000-es évek, futtassuk XP meg Wine alatt.

Kedvenc, no1 Total Commdered megint ugyanez. Ja, a Double Commander ott van, ami Windows alatt semmivel nem bloatabb, Linux alatt a Gtk2-es ága, ha Gentoo alatt kihagysz a fordításából hülyeségeket, alig bloatabb, Gtk3 verzió bloatabb, de még az XP összbloatságával (amit megúszol) így se versenyez, a Qt4-es Double Commander meg tényleg bloat, de azt Qt-s KDE-s embereknek csinálták, akiket a bloat nem érdekel, csak hogy minden Qt-s legyen, és Qt-témával egységesíthető legyen, ne fusson külön Gtk-libes program. De a Double Commandert se ajánlom, annak ellenére, hogy kevésbé bloat, mint ha Linux alatt Wine-ban futtatnál Total Commandert. Eleve, míg ilyen Commadnerben elkezdesz tallózgatni, hogy jajj, D: meghajtó, jajj, nem várj, C: meghajtó, klikk-klikk, Users, várj, hol van, mi is volt a neve, ja igen, Local, akármi, klikk-klikk, nagy nehezen végre megvan, kijelölöm, klikk-klikk. Ugyanez nálam, fzf script indul, elkezdem írni a mappa 1-2 jellemző betűjét, máris közvetlenül odaugrok Vifm-ben, mindegy, hogy hány mappával van mélyebben vagy felettem, ahol épp vagyok, Vifm-ben benyomom Vg (kijelöl a mappában mindent) és ugyanazt megcsináltam 0,5 másodperc alatt, egyszerű plain text alapú terminálos toolban, amiért egy csomó másodpercet, és egy csomót kattintgattál GUI-ban. Esetleg még elegánsabb, hogy shellben tab-os kiegészítés, ott is lehet fzf-et is használni, zsh autocomplete-et, regexpet, ** trükköket, ott is olyan villámgyorsan nyomom be pár billentyűből a fájlokat, amivel csinálni akarok valamit, hogy megvan 0,5 mp. alatt, te ennyi idő alatt a Total Commander nem szeded elő, nem hogy kijelölgess benne, amit akartál, még ha valami külön fülön meg is van nyitva benne a cucc előtted, akkor is én jövök ki gyorsabban. Ja, a Total és Double Commander én is szerettem, míg az volt a workflow-m, addig azt hittem, hogy az a leghatékonyabb. Egészen addig, amíg nem találtam hatékonyabbat.

De pl. a terminálos fájlkezelők, mint a Vifm, Ranger, lf, stb. abban is hatékonyabbak, mint a Total Commander, hogy szabadon írhatod alá a pluginjeidet. Nincs hozzá API, hanem a konfigfájlban közvetlenül drótozod, hogy bind billentyű /meghívni/kívánt/script %f, a scriptben meg pár sorból elvégzed a saját műveletet, azon a fájlon, mappán, ami fölött épp voltál a fájlkezelőben. Total Commander alatt hegesztheted a bonyolult plugin API mentén a dolgokat, meg gyorsbillentyű is csak korlátozottan drótozható be, és igen, AutoHotKey is tudja pótolni, de az megint lassú, szuboptimális, míg GUI-t nyomkod neked. Így neked fut XP + Total Commander + AutoHotKey, nálam csak minimalista WM + terminál + Vifm, de megy grafikus felület nélkül, konzol + Vifm, szerintem melyik tölt be gyorsabban, melyik foglal kevesebb erőforrást?

De ugyanez van fejlesztőknél is. Pl. ha Windows alatt akarsz debugolni kódot, általában a legtöbb IDE felület meg grafikus debug kimeneteket nyújt. Ugyanez Linux alatt plain text alapú, amit további terminálos-shelles toolokkal dolgozhatsz fel, grep, awk, sort, sed, irányíthatod át pipe-pal vagy egyébbel a soron következő parancsba, vagy fájlkimenetben, stb., könnyebben kereshető regexp mentén, könnyebben tolod fel a szöveges kimenetet git-re, stb.. Ergo a GUI itt is kevésbé hatékony, mint a plain text alapú megoldások. Ezt kezdik a fejlesztők is észrevenni, mármint a windowsosak is, egyre többen már WSL2-ben, meg hasonlóban tolják emiatt, mert rájöttek, hogy tényleg jobb.

Nyilván megszokás kell. Amióta megszoktam a terminálos, billentyűzetes workflow-t, azóta kínlódás hagyományos dektop GUI-t, meg grafikus toolokat használni, ha desktop Linux, vagy Windows elé ülök. Olyan érzés, mintha hátrakötött kézzel kéne dolgozni, és csak az orromat használhatnám. Persze, lehet így is dolgozni, de lassabban, csomó extra kattintgatás, ikonozás, menüzés, csomó extra GUI segédprogram szögelése mentén, sose lesz ugyanolyan hatékony. De amíg az ember csak a hagyományosat szokta meg, addig nem tűnik fel. Anno én is röhögtem, mikor ilyen filmekben mutattak hackereket, hogy ott zongoráztak valami terminálos rendszeren, és nem használtak egeret, meg GUI-t. Csak azóta nem röhögök rajta, amióta rájöttem, hogy tényleg hatékonyabb, nem bullshit. Vagyis mondták ezt nekem előtte is linuxos meg shelles veteránok, mármint hogy hatékonabb, de nekik akkor nem hittem el, mert nagyon Win Pisti-s volt még a szemléletem, meg fostos, egerészős, ubuntus-mintes-DE-s kezdő voltam. Úgy voltam vele, hogy konzervatív, elmaradott, múltban rekedt hülyék, de ne bántsuk őket, mert majd egyszer elérnek ők is a 21. századba. Közben meg fordítva volt.

A GUI egy dologban jó: grafikus szerkesztésnél, képszerkesztés, videóvágás, effektezés. Mert ott szemre, vizuálisan, érzetre kell rajzolni, pozicionálni, grafikus objektumokat alkalmazni, random elemekkel zsonglőrködni. Ott pl. a billentyűzetes meg CLI workflow nem rúg labdába. De ez is relatív, mert ha csak egyszerű képeffekt, amit pl. amit tömegesen elvégzünk több képen (pl méretre vágás, átméretezés, színmélység csökkentése, újratömörítés), akkor az viszont imagmagick convert-ben hatékonyabb shellből, shell scriptből, mint GUI-ban annyi képet megnyitogatni, és egyenként beklikkelgetni mindnél a beállításokat. Vagy pl. játékokban, ahol pl. nyilván egy FPS-t, platformert, autós játékokat, 3D-s dolgokat nem fogsz tudni shellben játszani (bár ezekhez viszont nem kell menü, ikon, hagyományos GUI elemek, csak grafikus mód), de egy logikai, puzzle, táblás játék, mint a sokoban, sudoku, 2048, textsearch, amőba, aknakereső, kártyajátékok, go, dáma, pegsolitaire, pentominoes, tetris, scrabble, stb. meg simán megy terminálból is, jigsaw (vagy videócset) csakis GUI-ban működik, a mahjong, sakk határeset. Szóval lenne olyan, amire csak a GUI jó, de az kevesebb minden, mint amire gondolnál. Az teljesen tévhit, hogy mindent csak GUI-ban lehet. Ahhoz a multik szoktatták hozzá az embereket, és annyira elterjedt, hogy sokan nem is bírnak már mást elképzelni.