Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Idris

Stran: 1 ... 17 18 [19] 20 21 ... 153
271
Vývoj / Re:Je Rust jazyk budoucnosti?
« kdy: 09. 11. 2022, 13:51:49 »
Kompilátory (obzvlášť JIT) někdy dovedou zajímavé věci. Třeba OpenJDK a GraalVM dovedou z dynamické alokace udělat alokaci na stacku, pokud si odvodí, že proměnná má odpovídající životnost.
Tohle se ve FP řeší na úrovni typového systému přes multiplicitu (nebo lineární typy). Má to tak prastaré Mercury nebo třeba Idris (to je skoro Haskell).

272
Vývoj / Re:Je Rust jazyk budoucnosti?
« kdy: 08. 11. 2022, 23:30:00 »
Mimochodemz tato nejistota u mě proniká i do datových struktur. U některých jazyků vím, že objekt/struct/whatever jsou fieldy poskládané v paměti za sebe, u některých jazyků s nějakou hlavičkou, některé jazyky to řeší nějakou mapou (dictem). Moc nevím, jak toto vypadá v Haskellu.
To ani moc říct nejde, to si poskládá překladač podle multiplicity apod.

273
Vývoj / Re:Rozdíl mezi GADT a dependent types
« kdy: 08. 11. 2022, 23:01:27 »
Hierarchie teoretické síly: ADT < HKT < GADT < DepTypes

274
Vývoj / Re:Je Rust jazyk budoucnosti?
« kdy: 08. 11. 2022, 22:57:35 »
U většiny vysokoúrovňových jazyků aspoň vím, co se vykoná a zhruba v jakém pořadí.
To je iluze, co a v jakém pořadí se provede je jasné i v každém “do” bloku Haskellu, které jsou sekvenční z definice.

275
Vývoj / Re:Je Rust jazyk budoucnosti?
« kdy: 08. 11. 2022, 10:40:17 »
Haskell je vlastně extrémně vysokoúrovňový jazyk.
Nevím, co tady znamená to “extrémně”, ale ano, je vysoce abstraktní. A někdy nepraktický, OCaml by byl často lepší volbou.

276
Vývoj / Re:Je Rust jazyk budoucnosti?
« kdy: 08. 11. 2022, 10:38:07 »
Rust spíš vznikl s cílem udělat Cčko komfortní. Primárně nízkoúrovňový jazyk, který spíše shodou okolností lze někdy použít místo vyšších jazyků
Aneb C + shoda okolností = Rust :D

277
Vývoj / Re:Je Rust jazyk budoucnosti?
« kdy: 07. 11. 2022, 17:19:09 »
To se nevylučuje, sémantická neměnnost neznamená, že se nepřepisuje paměť nebo registry. Jen to je transparentní a vývojáře to nemusí zajímat. Garanci výlučnosti nebo neměnnosti (z pohledu vývojáře) zajištuje překladač.
Jenže na této úrovni už neexistuje sémantická neměnnost.
Ale existuje, vždyť to tak jazyky mají. Typicky přes IO Unit (nebo lineární typy, viz seriál o Mercury zde na Rootu). Že to ale v praxi jde čistě funkcionálně neznamená, že máme do jádra tahat Haskell :D

278
Vývoj / Re:Jaký jazyk bych se měl učit?
« kdy: 07. 11. 2022, 17:12:03 »
Další věc je, že ono se to v čase dost mění, a když někdo 10 let jazyk nepoužívá, dost toho zapomene, takže automaticky neplatí, že jakmile už jednou umím mám vyhráno (to možná tak na ten level B1).
Pokud se dostaneš na určitou úroveň, plynulou mluvu, tak už ten jazyk nezapomeneš.

Je otázka co znamená nezapomenout, jestli je tím myšlena úroveň B1, možná B2, pak si to dokážu představit. Ale pokud se bavíme o plynulé mluvě na vysoké úrovni (ne mluvit jako zedník v jednoduchých obratech) s bohatým active vocabulary, tak tam bych úplně nesouhlasil. Samozřejmě je rozdíl mezi jednotlivými lidmi a jejich inteligencí a taky realitou - pokud někdo žil 40 let v US a pak 30 let v ČR, určitě bude mít angličtinu zažitou lépe než člověk co 5-10 let pracoval v US a pak se vrátil - bavíme se o průměru. Tu degradaci angličtiny vidím i u sebe a to se v tom hrabu 25 let.

Jistá polyglotka to popisovala tak, že máš tři úrovně, na které se s jazykem dostaneš. První úroveň je, že se ten jazyk naučíš trochu nebo hodně, ale nepřekročíš určitou mez - přirovnávala to ke snaze překonat na člunu příboj. Pokud nepřekročíš tuto mez, tak ten jazyk po nějaké době výceméně zapomeneš. Pokud se ho ale naučíš používat plynně, přečteš si noviny, dobře se domluvíš, mluvčí nemá problém ti rozumět, ty nemáš problém mu rozumět (špatně se mi ta mez popisuje), tak ten jazyk už prostě nezapomeneš. Jasně, pokud ho pět let nepoužíváš, tak pak ti třeba týden dva trvá, než se rozmluvíš. Ale nezapomeneš ho. Pak máš třetí úroveň, kdy máš nadprůměrnou znalost toho jazyka, třeba překladatel, nebo tlumočník. To, když nebudeš udržovat, tak pozapomeneš a zklouzneš na tu druhou úroveň.

Osobně to mám odpozorováno. Má paní x let nepoužívala francouzštinu, pak jsme jeli na dovolenou, a ta paní ve vlaku se ptala z jakého departmentu že má lehký přízvuk.
Nebo kamarád, ten během hodiny telefonátu, kdy si povídáme zdrokonaluje (česká) výraziva tak, že na konci mluví lépe než na začátku. A to jeho rodný jazyk je portugalština a francouzština, a pracovní němčina.
Taky záleží na tom, o jaký se jedná jazyk, němčina nebo španělština jsou pro nás triviální oproti třeba polysyntetickým jazykům.

279
Vývoj / Re:Jaký jazyk bych se měl učit?
« kdy: 07. 11. 2022, 14:20:00 »
Shodou okolností jsem měl kdysi dávno na předmět - syntax spolupracovníka Noama Chomskeho.
Kterého? Mě učila B. Partee, ale to byla sémantika.

280
Vývoj / Re:Je Rust jazyk budoucnosti?
« kdy: 07. 11. 2022, 13:29:00 »
A proto je “mut” v Rustu zlo.
Jenže přes čistě immutable struktury se na úrovni hardware psát nedá, protože reálně tam pořád jsou nějaké periferie, registry a nějaká mutable paměť na definovaných adresách.
To se nevylučuje, sémantická neměnnost neznamená, že se nepřepisuje paměť nebo registry. Jen to je transparentní a vývojáře to nemusí zajímat. Garanci výlučnosti nebo neměnnosti (z pohledu vývojáře) zajištuje překladač.

281
Vývoj / Re:Je Rust jazyk budoucnosti?
« kdy: 07. 11. 2022, 12:00:45 »
Když už se bavíme o FP a zajímavých jazycích, tak Lean (4) je ještě značně rychlejší než Haskell, jelikož používá optimalizaci “functional but in-place” (tj. optimalizovaný kód je vzhledem k datovým strukturám destruktivní).
Jakože immutable struktury nejsou immutable, nebo to chápu špatně?

Protože argument pro immutable měl být (mimo jiné) i výkon, alespoň co jsem pochytil.
Výhoda Immutable je bezpečnost a snadnost pro optimalizaci. Takže ten výkon se právě dožene tím, že kompilátor má volnější ruce pro optimalizaci - interně to nemusí být immutable, musí to být immutable navenek.
A proto je “mut” v Rustu zlo.

282
Vývoj / Re:Je Rust jazyk budoucnosti?
« kdy: 07. 11. 2022, 09:43:33 »
Když už se bavíme o FP a zajímavých jazycích, tak Lean (4) je ještě značně rychlejší než Haskell, jelikož používá optimalizaci “functional but in-place” (tj. optimalizovaný kód je vzhledem k datovým strukturám destruktivní).
Jakože immutable struktury nejsou immutable, nebo to chápu špatně?

Protože argument pro immutable měl být (mimo jiné) i výkon, alespoň co jsem pochytil.
Sémanticky jsou immutable, ale kdyz překladač usoudí, že destruktivní změna není na škodu, provede ji, pokud to je efektivnější.

283
Vývoj / Re:Je Rust jazyk budoucnosti?
« kdy: 06. 11. 2022, 23:42:29 »
Haskel je pomalej
Určitě?
Ruku do ohně bych za to nedal. Máš nějakou zkušenost?
Když už se bavíme o FP a zajímavých jazycích, tak Lean (4) je ještě značně rychlejší než Haskell, jelikož používá optimalizaci “functional but in-place” (tj. optimalizovaný kód je vzhledem k datovým strukturám destruktivní).

284
Vývoj / Re:Je Rust jazyk budoucnosti?
« kdy: 06. 11. 2022, 17:38:37 »
Haskel je pomalej
Určitě?
Ruku do ohně bych za to nedal. Máš nějakou zkušenost?
Jo, s Haskellem a Chezem, ty opravdu nejsou pomalejší než třeba C++. Dnes už neplatí staré “pravdy”, že funkcionální nebo dynamicky typované jazyky (Julia) jsou pomalejší než C++/Rust/Go…

285
Vývoj / Re:Je Rust jazyk budoucnosti?
« kdy: 06. 11. 2022, 16:41:18 »
Julia a spol jsou jazyky (prej) spíše na vědecké výpočty. Netuším, zda se dá použít jako obecný jazyk.
Short answer: Dá.

Long answer: Dá, ale s praktickými omezeními. Julia sice generuje rychlý kód (zhruba na úrovni Rustu), ale těžko se cpe do kontejnerů. Takže se používá na vědeckých superclusterech, kdy nikoho velikost sysimage nezajímá, ale v běžné cloudové aplikace by to působilo nepatřičně (a oproti Go nebo Rustu, které jdou přeložit do malé statické binárky, nepřináší žádnou zásadní výhodu).

Stran: 1 ... 17 18 [19] 20 21 ... 153