Pod tím si představ třeba jazyk, který se minimálně dobře čte a píše. Tohle je samozřejmě subjektivní, ale když si dám třeba vedle sebe C# a F# tak druhý je pro mě expresivnější a zcela určitě i víc erogonomický. Třeba je i "chytřejší" co se týká typů, ale to pro mě zas není nutně priorita. Takové UX v programování. Pro mě jsou obecně ML jazyky ergonomické a pak takové ty pascalovské Ada, Eiffel... Nejhůř se mi pracuje s C++ a u Go si tedy také nejsem jistý :)
18. 1. 2022, 12:06 editováno autorem komentáře
Tak já to mám trochu jinak - cokoli nenese informaci, je pro mě dost rušivé. Dost mi vadí i begin a end, jelikož jsem zvyklý na složené závorky a ty se dají snáze ignorovat - ale je to samozřejmě věc zvyku. Pascal a asi ani Adu moc nemusím, nedávno jsem vzpomínal, že jsem četl srovnání Algolu 68 a tehdejšího Pascalu - Algol 68 byl IMO skoro ve všem lepší, akorát obsahoval tu podivnost s povolením mezer uvnitř identifikátoru.
C++ mi přijde taky moc "ukecaný", ale lepší než třeba C. Zvyklý jsem hlavně na Python a Julia se bude číst asi dost podobně. A u Pythonu jsem byl za ta léta, co ho používám, svědkem mnohých zlepšení - iterátory a generátory, content managery, zahození old-style tříd, inteligentnější práce s řetězci...
Často je to ale i věc skillu při psaní - Rust třeba může někdy působit dost nepřehledně, ale obyčejně to je IMO proto, že člověk, který to píše, nedokázal vymyslet elegantnější řešení, přestože třeba existuje a běžně se v dané situaci používá.
Osobně mám rád ortogonalitu a jednotný přístup - jazyky, které neumí přetěžování operátorů a proto pro jeden typ používají + a pro jiný .add(), mě zlobí.
S tou úsporností zápisu to je o rovnováze, ostatně čistě teoreticky všechno v kódu “nese informaci”, ovšem někdy je ta informace odvoditelná překladačem a tedy v některých kontextech nadbytečná. Jinak třeba v Rustu upřednostňuju například “Box::new(x)” před “box x”, protože ten zápis jasně říká, co se děje.
BTW oproti Pythonu je Julia o řád čitelnější.
To begin/end vs. závorky (vs. odsazení (vs. LISPovské formy) je skutečně věc zvyku. Lidský mozek se prostě dokáže velmi dobře natrénovat na rozpoznávání vzorů a tím pádem i na ignorování "prkotin".
Jen si dovolím k Algolu 68 - to byl typický produkt komise lidí. Už vlastně v té komisi došlo k rozporu; jedna strana chtěla jednoduchý (ideálně parsovatelný shora dolů) jazyk, druhá o dost větší obludku. Nakonec tedy první skupina udělala Algol W, druhá přišla s Algolem 68. No a z A-W dalšími úpravami vznikl Pascal, který jsem sice svého času neměl v lásce, ale zpětně si uvědomuju, jak chytře to bylo navrženo.
Jenže Algol 68 měl věci, které pak převzaly jiné jazyky a Pascal je myslím neměl ještě ani ve verzi Turbo. Například praktické formátování řetězců a jejich zápis do souboru nebo vůbec pragmatickou práci se soubory. Sám Wirth po Pascalu vytvořil několik dalších jazyků, které, pokud se nepletu, z Algolu 68 také v lecčems vycházely a některé pascalovské zvláštnosti (jako function vs procedure) opustily.
18. 1. 2022, 14:51 editováno autorem komentáře