Jak se dnes pouziva OCaml v praxi? Nasel jsem par kurzu na zapadnich uni, kde to uci jako uvod do FP (coz je asi fajn) a typovych systemu.
Potom je zname pouziti v JaneStreet, ale videl to nekdo jeste jinde?
Me jde o to, ze F# sice vypada fajn, ale nechci .NET a preklad OCamlu do binarek vypada dobre, a to i v benchmarcich (to by bylo dobre v clanku zminit, ze vysledkem je binarka bez zavisosti a pomerne rychla).
Používá to i Facebook. Třeba jejich jazyk Hack má kompilátor v OCamlu.
Zrovna v benchmarcích bych řekl, že F# bude o dost rychlejší. OCaml má třeba tagované primitivní typy, tj. standardní int má jen 63 (nebo 31) bitů a veškerá aritmetika je tam pomalejší, protože musí řešit tag. Navíc dnes má F# přístup k SIMD instrukcím a s určitými omezeními může využítvat ref structy, takže tam jde napsat i velmi rychlý kód, který GC vůbec nepotřebuje.
OCaml měl velmi nízké latence GC - nižší než Go, které se tím často pyšní.
Ocaml aj Perl5 maju oba logo https://cs.wikipedia.org/wiki/Velbloud
Podla mojich skusenosti sa Perl5 stale hodne pouziva (casto sa stretavam s nejakymi perl sktiptami), zatial co prakticke pouzitie Ocaml som este nevidel (okrem akademickej sfery o com som len cital). Preto byva aj Perl5 predinstalovany na vacsine systemov, zatial co Ocaml nebyva predinstalovany nikde.
To nie je ziadna ignorace, len odpovedam na vyssie polozenu otazku "Jak se dnes pouziva OCaml v praxi?"
Inac Ocaml ma zaujal uz pred niekolkymi rokmi tym ze v PLEAC https://pleac.sourceforge.net/ ma 100% naimplementovanych prikladov z Perl Cookbook. Skusal som si v nom rozne priklady a celkom ma to bavilo, len doteraz som nenasiel prakticke uplatnenie, kde by som ho vo svoje praci pouzil..
Keď som si prvý krát OCaml pozeral, tak mi hneď udreli do očí tie print funkcie. print_endline
, Printf.printf
to vyzerá fakt divne. Je všeobecný úzus medzi modernými jazykmi mať globálne funkcie println
, printfn
a pod.
Syntax jazyka je super, samozrejme, veď z neho vyšiel F#. OCaml však má len zlomok knižníc, toolingu, možností práce, dokumentácie, kníh oproti F#. A to je pre mňa ako pragmatika rozhodujúce.
Je jich docela dost, ale kdo by se tím chlubil, když je to jejich konkurenční výhoda. Z hlavy např. https://issuu.com/
Nezkoušel jsem to, ale přijde mi, že
print_int "%d" (inc 10);;
se nemůže přeložit, protože to nedostalo int.