1) Moje úvahy vycházejí z předpokladu, že uživatel většinou řeší úkoly, které už řešil někdo před ním. Proto existuje typový software a tak často se používá, zatímco individuální software se používá jen v nutných případech (protože je drahý).
2) Jestliže známe potřeby uživatelů, můžeme takovou funkčnost zadrátovat do GUI. Tato funkčnost je posloupností primitivních operací, které by uživatel zadával v příkazovém režimu.
Můžeme si to ukázat třeba na příkladu přehrávače Amarok: tenhle přehrávač implementuje nějakou množinu funkcí, které uživatelé potřebují. Přehrávač sice neumí funkci XY, ale protože ji nikdo nepotřebuje, tak to nevadí. Když se najdou uživatelé, kteří funkci XY potřebují, mohou poslat vývojářům požadavek, nebo funkci sami naprogramovat a poslat jim rovnou patch.
Druhou možností je, že žádný Amarok (nebo jiný GUI přehrávač) mít nebudeme a každý uživatel si vytvoří vlastní sadu skriptů, které budou obsluhovat jeho potřeby. Skript bude volat příkazy jako artsplay a mixer a další a ovládat ho bude uživatel přes standardní vstup. Tento přístup dá uživateli neomezenou variabilitu, ale otázkou je, jestli to má smysl. Proč by si každý uživatel měl dělat svoji sadu skriptů, když uživatelé mají společné potřeby a mohou sdílet program, který tyto potřeby uspokojuje skrze GUI?
Podobný příklad je TeX vs. LaTeX: ten LaTeX mne svým způsobem omezuje a čistý TeX by mi nabízel mnohem víc možností, ale množina funkcí, které má LaTeX mi plně postačuje, takže mohu využívat výhod, které mi oproti TeXu nabízí.
3) Velikost obrazovky je omezená a je jasné, že se na ni nedají nacpat všechna tlačítka a menu. Ale GUI se dá konfigurovat (hezky to má třeba Opera, ale i spousta jiných programů), takže uživatel má tlačítka jen těch funkcí, které používá a ty se mu na obrazovku vejdou.
4) Jak píšeš, každý program omezuje uživatele, každý má nějaké limity. Jediný program, který mne neomezuje, je ten, který si napíšu sám, protože si v něm můžu implementovat 100% svých potřeb. Důležité ale není, jestli tyto limity jsou vyšší nebo nižší, důležitější je, jestli jsou dostatečně nebo nedostatečně vysoké vzhledem k potřebám uživatele.
Příklad: můžu mít dvě auta, jedno bude jezdit max. 300 km/h a druhé 400 km/h. Z hlediska potřeb řidiče jsou limity obou těchto aut dostatečně vysoké, proto je irelevantní, který z těchto limitů je vyšší. A uživatel může do rozhodování zapojit jiná kritéria.
5) GUI mne omezuje, příkazový režim mne omezuje méně* a programovací jazyk mne omezuje ještě méně. Otázkou tedy je, proč bych si měl vybrat VIM s jeho příkazovým režimem (který mne omezuje), když mohu použít programovací jazyk (který mne neomezuje prakticky vůbec).
6) Asi řeknete, že jsem idealista :-) ale moje představa je takováhle: kvalitní GUI + otevřené formáty (založené pravděpodobně na XML). Ve většině případů využije člověk to GUI, protože neobjevuje Ameriku, ale řeší totéž, co už někdo před ním, takže už to v tom GUI je a pohodlně. A v případech, kdy má jedinečné potřeby, buď vylepší GUI (pokud to má smysl a je tu šance, že totéž bude potřebovat ještě někdo po něm) nebo si napíše vlastní program, který bude pracovat s otevřeným formátem, nebo použije univerzální (XML) editor, kterým soubor upraví.
*) I když s tímhle tak úplně nesouhlasím, protože: textový režim mne zase omezuje ve vizualizaci -- v CLI toho nejde vyjádřit tolik jako v GUI, to se týká hlavně směru počítač --> člověk (takový diagram tříd nebo databázový model vyjádřený v ASCII Artu je teda "lahůdka"). A někdy i ve směru člověk --> počítač, protože některé věci bez GUI prakticky nejdou (kreslení obrázku by zadáváním příkazů bylo neskutečně nepohodlné, nehledě na to, že by grafik vůbec nevěděl, co kreslí).
2) Přiznám se, že jsem na limity LaTeXu ještě nenarazil (asi sázím moc primitivní dokumenty :-) Zásadní otázkou při řešení případných problémů s limity ale je, jestli:
a) se snížit na nižší úroveň -- použít příkazy TeXu b) vylepšit LaTeX (nebo jinou vyšší úroveň) tak, aby odpovídal mým potřebám.
Možnost a) je vhodná pouze v případě, kdy moje potřeby jsou zcela jedinečné. Možnost b) je vhodná v případě, kdy na světě existují i jiní lidé, kteří řeší stejné věci jako já, kteří narazili na stejné limity LaTeXu. V drtivé většině případů jsou na světě i jiní lidé, kteří mají stejné potřeby jako já.
IMHO je tedy vhodnější vylepšovat tu vyšší úroveň (LaTeX, vyšší programovací jazyky, GUI...) tak, aby odpovídala aktuálním lidským potřebám, než se vracet na tu nižší úroveň, což nutí každého uživatele znovu a znovu vynalézat kolo, objevovat Ameriku...
Ta nižší úroveň je vhodnější (a nutná) jen v jedinečných a neopakovatelných případech a nebo v případech opakovatelných, ale takových, kdy je potřeba něco implementovat a nasadit ve velmi krátkém čase -- pak se to to prostě nějak narychlo zbastlí, než aby se udělalo pořádné řešení, které by bylo znovupoužitelné a přineslo užitek i někomu jinému.
v rámci GUI už není co nového vymýšlet
A muzu se zeptat, co treba povazujete za takovy vrchol GUI? Nejakou konkretni aplikaci, ktera ma GUI tak dokonale, ze jiz nelze vylepsit. Pripadne (protoze ji asi nebudu znat) cim je to GUI tak na vysi? Je to linuxova aplikace? Je treba naprosto nove GUI v MS Office 2007 krokem do prazdna a dukazem, ze uz neni co vylepsovat?
Jsou věci, které jsou dávno vymyšlené, ověřené a ideální v CLI, tak proč to šroubovat na GUI?
Rekl bych, ze z podobneho duvodu, proc na CD a DVD znovu vychazeji ty nahravky a filmy, ktere jiz predtim vysly na LP a VHS. (A ted mi nejde o kvalitu nahravky, ktera je mimochodem na LP vyssi nez na CD.)
"A shodou okolností si to ode mě nahrálo i pár dalších lidí, kteří přišli na to, že se jim to asi taky může hodit."
Vždyť to je přesně to, co píšu: "vylepšit LaTeX (nebo jinou vyšší úroveň)" Ty jsi vytvořil novou specializovanou nadstavbu, novou vyšší úroveň*, která může být užitečná i jiným lidem, kteří mají stejné potřeby jako ty.
*) tady optimisticky předpokládám, že sis vytvořil znovupoužitelná makra TeXu, ne že jsi tam přímo namastil nízkoúrovňové příkazy.