Tyto jazyky mi prijdou strasne elegantni, hlavne ve chvili, kdy se da pouzit "fork" nebo jiny "train". Jake to ale ma prakticke vyuziti?
Tedy vim o par lidech, co pracuji v Dyalogu, ale ne z CR. A Q je pry hodne nasazovan v bankach (a pry za pekne penize, opet typicky pro US :).
Myslel jsem si, ze hodne z APL je v Julii a NumPy, ale nakonec je to trosku slabe. Treba NumPy sice ma numpy.ufunc.outer pro ten "table product", ale uz ne moznost to libovolne kombinovat ve vic dimenzich apod. A nikdo to zda se ani moc nevi a nepouziva.
To same Julia, ta sice ma syntax pro zapis tecky za funkci s podobnym vysledkem (tedy jestli to dobre chapu), ale fork/train to taky IMHO neumi.
No můj názor je, že je dobré nějaký APL-like jazyk alespoň pasivně znát. Hlavně kvůli tomu, že to trošku ohne myšlení programátora a rozšříří jeho obzory, a to dost zásadně. Viz Iversonův slavný článek "Notation as a Tool of Thought", ten název je velmi důležitý a přesný.
Soukromý názor, co by měl slušný devel aspoň pasivně znát: C-like jazyk, APL-like jazyk, nějaký základy LISP/Scheme a ML-like jazyk (tam patří i F#). A nějaký ten OO-based skriptovací jazyk, Python, JS, TS nebo Ruby :-) 2 cents...
1. C-like kvůli práci :-)
2. APL-like: dnešní procesory jsou SIMD, to se hodí znát. Navíc pojetí funkcí a operátorů (ve významu APL) dost rozšiřuje obzory. Něco z toho převzal a rozšířil Haskelll
3. LISP/Scheme homoikonicita, makra a příklad jazyků pro tvorbu DSL, + samozřejmě trošku toho funkcionálka
4. ML-like je dobré znát kvůli pochopení typových systémů a typové inference (ale jde velmi dobře nahradit Haskellem)
5. OO-based skriptovací jazyk, to je mainstream, kvůli práci
6. potom jak mi Calculon připoměl, tak SQL, opět něco neimperativního
Podrobnosti určitě ne, ale všeobecně se ví, že banky používají KDB+ a tam si na Q šáhnete.
Jinak já jsem skutečně pouhá korporátní lopata, takže žádná opravdová tajemství neznám:)
Jestli ta otázka byla myšlena obecně, tak prostě banky a telco řeší zajímavější problémy než e-shop. I když třeba v Red Hatu se určitě taky nenudí.
Používáme KDB+ přímo na projektu. KDB+ má sql-like wrapper na jednoduché dotazy do db, což používám. Co se týče Q, tam si tak maximálně pustím skript, který napsal kolega se specializací na KDB. Základy Q znám natolik, abych si s dokumentací po ruce přečetl, co přistálo v PR, ale aktivně v tom nepíšu.