Pokud se bavíme o historickém fortranu, tak to žádný zázrak nebyl. Pamatuji začátek PC, a konce Fortranu nikdo nelitoval. Ten jazyk nic moc neuměl - v podstatě všechno se psalo jako operace s maticemi - a jelikož tam nešlo moc co vymýšlet, tak to bylo rychlé, ale nijak pohodlné.
Fortran se vyvíjel a měl řadu verzí. Nicméně byl to jazyk pro vědecké výpočty. A ty uměl optimalizovat excelentně od první prehistorické verze.
Cčko je vylepšený assembler určený na psaní systémových věcí - tedy na úplně jiný use case než Fortran, a tam se prosadil, ačkoliv mraky věcí by se daly vymyslet lépe (z dnešního pohledu).
Proč se v něm tedy píší mraky projektů, na které C není vůbec vhodné? Například GCC?
Když už jsme u těch optimalizací - myslím si, že svět jde jinam - dnes rozšířené implementace překladačů sdílí kód, takže je jedno jestli kód napíši v C, ve Fortranu, v Adě - kompilátor je výsledku jeden. U těch vědeckých výpočtů dneska hraje prim využití GPU - nikoliv kvalita překladače.
To si pletete programovací jazyk s backendem kompilátoru, který zpracovává mezikód.
Zapomínáte, že než dojde na mezikód, tak se programovací jazyky zpracovávají odlišně. Než to dojde do toho backendu, tak se provede velice mnoho optimalizací a akcí.
Pořád platí, že informace, které nejsou ve zdrojovém kódu, prostě pro optimalizaci nepoužijete. A pořád platí, že i s tím společným backendem budou výpočtu ve Fortranu rychlejší než v C. A pořád platí, že paralelní/konkurenční programování bude ve větším programu v Adě lepší než v C.
Různé jazyky pošlou do backendu různé mezikódy. Například C rozloží výraz sin(deg2rad(30)) jako volání dvou funkcí, a tak se také objeví v mezikódu. Fortran tentýž výraz spočítá a do mezikódu dá pouze konstantu 0,5. Bankground s tím už nijak nehne a nijak to nezoptimalizuje.
Prosadí se jazyky, prostředí, které jsou pro použití jednodušší než předchozí generace. Java byl původně jednoduchý jazyk pro pračky, myčky a sliboval výrazně jednodušší programování (a bezproblémovou přenositelnost) než C++. C++ byla zase na začátku evoluce Cčka. Nic komplikovaného, bez ohledu na efektivitu nemůže fungovat.
Škoda, že fakta vám odporují:
1) Jazyky můžete zjednodušovat jen do určité míry - pak už neplní svůj účel. Jsme právě v lokálním minimum tak blbých jazyků, že to vygenerovalo potřebu kvalitnější jazyků.
2) Jendoduchý jazyk C už se téměř v IT nepoužívá (kromě hw), protože je sice jednoduchý, ale plodí to obrovské náklady na vývoj proti třeba i tomu C++ a dalším. A ekonomika je víc určující než jendoduchost jazyka.
3) Java ustupuje kromě enterprise. Jednoduchost syntaxe a jazyka vygenerovalo nutnost zalepit to obrovskou složitostí v metodice, framworcích a mnohém dalším.