Víc než jak vypadá zdrojový kód by mě zajímalo, jak vypadá binár po přeložení. Je rychlejší, menší, odolnější apod. než binár vzniklý z C? Případně pro které aplikace - s výjimkou zmiňované databáze? (Mimochodem, u databáze to souvisí mnohem spíš s jejím návrhem a způsobem použití než s programovacím jazykem, ve kterém je psaná.)
Používá se to v oblasti investování, různí burzovní boti (pravděpodobně s tím vlastně Kx začalo), plánovaní letecké dopravy (ale to vím jen ze slidů, nic konkréního), něco mají ve farmaceutickém průmyslu a tuším i spolupracují s NASA. V podstatě se K používá tam, kde APL i J - tedy když se jedná o algoritmy nad vektory/maticemi, které je nutné velmi rychle vyvinout a upravovat podle okamžitých požadavků. Turnaround v minutách až hodinách, ne ve sprintech (nebo u vodopádu za 2 roky :-).
Bych řekl, že pravý opak "enterprise SW inženýringu" :-) a to mě na tom dost baví.
Já používám J ke zpracování experimentálních dat ve fyzice, speciálně k testování různých hypotéz o tom, co v datech vlastně je či není. Většinou pro to stačí připsat pár řádků kódu a je to. Je to občas legrace, ale trochu i dřina napsat to správně. Můj pocit je, že -- pro samostatně pracujícího člověka -- je to zajímavý a účinný nástroj, ale pro větší akce nevím, nevím. Občas jsem si říkal, jestli to mělo cenu se v tom hrabat. (Mám dojem, že K je jednodušší, ale mám pocit, že komunita kolem toho je menší, speciálně kolem otevřené [což je pro mě zásadní] Kony.). Zajímavé použití je pro problémy typu Project Euler, další příklady jsou uvedené v Rosetta code. Narazil jsem i na výpočty v astronomii: https://www.astro.umd.edu/~jph/J_page.html. Nedávno jsem si všiml, že Rob Pike si hrál také s APL-podobným jazykem: https://github.com/robpike/ivy. Proč vytváří nový jazyk, nevím, nejspíš si testuje, jak by to šlo udělat (Russ Cox pak použil Ivy taky k řešení pár úloh, k dohledání na webu.)
Přestože má J různé balíčky, například 'plot', po čase, myslím, člověk narazí na potřebu, aby balíčky dělaly i něco jiného, než bylo původně zamýšleno, a to je pak třeba netriviální. Já nakonec vytvořené grafy ukládám do souborů a vykresluji gnuplotem, se kterým se dá pracovat výrazně interaktivněji (třeba si zvětšit zajímavou část grafu). [Ale nakonec ani ten gnuplot není občas ideální. Krásné by bylo, myslím si, řešení postavené na smalltalku, kde by se dalo hrábnout kamkoli a připsat potřebné. V nějakém smyslu by smalltalk fungoval jako roury v unixu, ale s možností posílat složitější zprávy.]
Díky za info!
Já bych si právě rád nějaký APL-like jazyk nasadil u nás v reálných projektech, ale zatím pro to nevidím prostor. Bylo by to určitě něco podobného jako máte vy, tedy nějaké ověřování dat, clustering atd. Akorát my nemáme homogenní data, spíše jsou to nějaké strukturované JSONy a tak, žádné matice :/
Jinak ten jazyk Ivy Rob Pike asi původně psal jenom proto, aby si dokázal, jak to půjde udělat v Go i bez použití generik (je to starší, než Go 1.18), i když podporuje různé datové typy (třeba zlomky jsou fajn). Na přednášce o tom mluví dost "lehce", ve smyslu že je to skutečně "toy project" a přitom ve výsledku je to prakticky plnohodnotný jazyk. Navíc zrovna Ivy bych asi dokázal přímo dostat do naší code base a tak to spojit s naším toolingem.
* https://www.root.cz/clanky/programovaci-jazyky-odvozene-od-apl-bqn-a-ivy-aneb-1-1-10/#k16