REDGUY: ehm, dost tu argumentaci překrucuješ.
mám konkrétní příklad, proč někdo může být demotivován programovat čistě v C - lidí, kteří nejsou na web schopni deploynout binárku, nebo si jí tam přeložit, ale mohou někam hodit jen PHP kód, není zrovna málo. přesto bych tedy radši vyvíjel v něčem, z čeho mám C mezikód do budoucna
gerování C kódu je vzhledem k teoretické množství skutečně cílových platform neutrální, protože pro všechny další zamýšlené generované mezikódy pro další target platformy existují interpretery napsané v C, které se dají přeložit všude. motice pro paralelní generování do víc platforem je právě spíš možnost deploynout aplikaci někam, kde tě binárku buď pustit nenechají, nebo tě tam nenechají nakonfigurovat výkonostně efektivní uspořádání typu fastcgi.
(tady se BTW rovnou nabízí generování i pro více dílčích variant platformy - čisté C, s možnosti použití stdout jako CGI, fastcgi, nebo i verze s http serverem zabudovaným jako součást runtime, jak to evidentně umí udělat třeba node.js. a když se nad tím zamyslíš, tak slinkování aplikace přímo s miniwebserverem bude mít zřejmě ještě menší režii, než sebesofistikovaněší API na webserver... a nic z toho já jako vývojář překladače nemusím řešit hned, ale můžu tyhle dodatečné dílčí "variace cílových platforem" dodat až časem... klíč k tomu se mi otevře ve chvíli, kdy budu mít ten C mezikód, a s tím, kam přesně přesměruju jeho I/O si můžu hrát až dodatečně...)
místo teoretizování proč je to blbý nápad mi spíš vysvětli, proč něco takového neudělali všichni, kteří se v posledních letech pokusili o nějaký vlastní interpreter...
strašně napadáš můj pokus umožnit jako jednu ze základních feature (místo všeho shánění se po sofistikovaných knihovnách) multitheading. ale když si projdeš cílové platformy, které jsem vyjmenoval (např. webové PHP, nodejs), tak jejichi interpretery skutečný multithreading nepodporují. paralelní překlad do C zde tedy může přinést výrazný nárůst výkonu, protože i když syntaxe threadů v ostatních jazycích může C připomínat, a vytvořit pro programátora iluzi, že něco se děje paralelně, tak pouze thready v C jsou skutečné thready, které se skutečně pokusí využít další jádra CPU (kdyby to totiž bylo tak jednoduché, tak by se asi v Googlu nepouště do psaní Go, že ano)
zkráta, v hledání důvodů proč něco udělat jsi fakt dobrý - ale pokud je zadáním "umožním každému blbnout s programováním tak, aby mohl hned od začátku svoje výsledky deploynout do prostředí, na které je zvyklý, a přitom v budoucnu v případě potřeby navýšení výkonu nemusel nic přepisovat", tak prostě nemáš nic, co by se dalo nabídnout.
navíc spoustě tvých výhrad lze při troše snahy oponovat: tak např. pokud importuju externí knihovnu podporovanou jen v jedné z cílových platforem (typicky C), tak po připojení téhle knihovny můžou ostatní cílové platformy jen zařvat, že to nepodporují (ale tím se neomezí možnosti core jazyka). nebo binding ke knihovnám může být implementovaný pro všechny 4 cílové platformy, protože většinou stejně jde jen o wrappery kolem té jediné knihovny, implementované v C. Příklad: pokud jde o knihovny typu ImageMagick, bude API u všech cílových platforem podobné. napsat interfacy k existujícím populárním nástrojům by nemuselo být _tak_ složité - nejsložitější mezikód se nakonec vždy bude generovat jen pro to C, pro ostatní platformy bude překlad triviální.
ovšem proč se snažit argumentovat, když ty máš svojí zjevenou pravdu a předem víš, co všechno určitě nepotřebuješ a určitě to nepotřebuje ani nikdo jiný...