Pravda je, co píše RDa výš. Ten textový zápis programu je takový "sjednotitel" několika činností a u žádné z nich se s ním nepracuje úplně ideálně.
Při vzniku programu je postup: myšlenka -> bloky kódu v hlavě -> text programu -> AST -> stroják
V tomhle procesu je tam ten text z pohledu stroje vyloženě přebytečná věc vyžadující zbytečně složitý parser (výjímkou je Lisp, který ho vyrušil
)
Ještě horší je to v případě verzování kódu, které by principielně mělo pracovat na úrovni bloků kódu, ale nemá je k dispozici, takže uměle a nešikovně pracuje na úrovni řádků a lokálního kontextu. Vzniká tak vlastně krkolomné
Programátor: myšlenka -> bloky kódu v hlavě -> text programu
CVS: text programu -> [jakýsi kostrbatý proces bez znalosti významu a za použití úplně jiných struktur než bloků kódu] -> [občas naprosto nepřehledné a nečitelné] změny textu programu
Programátor: změny textu programu -> změny bloků kódu -> změny myšlenky
Tohle je vyloženě suboptimální proces, který by třeba na úrovni AST mohl být daleko přímočařejší.
(tohle bylo jenom tak pro ilustraci, podobně suboptimální je i generování stubů IDEčkem)
Takže vlastně jediný, o co v celé věci jde, je mít něco, z čeho se dá strojově generovat AST a zároveň se s tím bude dobře pracovat programátorovi. A to nutně ani nemusí být text. Může to být klidně nějaká vizuální reprezentace. Třeba takové ty pomůcky pro děcka typu Blockly vlastně slouží k manipulaci s vizuální reprezentací AST, takže převod do textu by tam vůbec nemusel být.
Problém ale je, že vizuální reprezentace je sice super pro začátečníka/dítě, ale ne-začátečníkovi práci spíš zpomaluje. IMHO to ale hodně záleží na paradigmatu. Některá paradigmata jsou natolik spojená se strukturami (typicky grafy), že tam začíná být vizuální reprezentace celkem efektivní, alespoň na nejvyšší úrovni.
Například paradigma "streamové zpracování dat pomocí grafu výpočetních uzlů" si o to vyloženě říká - tam je text výrazně nepřehlednější než vizuální reprezentace. Skvělým příkladem je NodeRed (
https://youtu.be/f5o4tIz2Zzc?t=148) Podobně zajímavé by to mohlo být i v některých případech event-driven programování.
Každopádně ale nevím o žádném kompletním ekosystému (editor, VCS, překladač, debugger,...), který by byl pro tenhle způsob fungování vyloženě navržený od začátku, takže by tam všechno do sebe perfektně zapadalo. Systémy, o kterých vím, vždycky řeší jenom jednu část a ten "společný sjednotitel" je vždycky text (který se třeba generuje z té vizuální reprezentace) a třeba to vizuální VCS jsem ještě neviděl. Možná nejblíž jsou tomu věci typu Squeak.
Tady by možná nějaký prostor pro výzkum byl. Bylo by to strašně moc práce s nejistým výsledkem a muselo by se to udělat extrémně promyšleně, aby z toho nevznikl paskvil typu VisualBasic, ale tak už to u vymýšlení hodně inovativních věcí bývá