577 karma · joined November 26, 2010
AW is known for kdb+ which is often used in finance due to its extreme performance properties and ability for quants to quickly explore ideas.
Personally, to get a better handle on how array languages worked, I implemented KlongPy which is a python implementation of Klong, which descends from K (which AW wrote).
You have to play with this stuff to understand it intuitively.
P::[2 3 4]
Q::[1 0 2]
dot(P;Q)Http://klongpy.org
dot::{+/xy};mag::{(+/xx)^0.5};cossim::{dot(x;y)%mag(x)*mag(y)};cd::{1-cossim(x;y)}
https://github.com/briangu/klongpy/blob/main/examples/ml/cos...
Another memory I have for that time was that powermgmt was a big priority. So i suspect the ability for the OS to do that via ACPI was strategic - I wasn't involved in the decision making.
You can now directly load Python modules into KlongPy, making it easy to reuse existing libraries. KlongPy now has IPC support, making it easy to build complex, networked, data applications. It also now includes simple web so you can create sites that are backed by KlongPy.
This makes me think about a better plugin model where capabilities are selectable.
I need to read more about hooks and forks to answer that. Klong itself is relatively straightforward, however with Python integration there’s a lot that can be done.
Multiple backends would be quite interesting. There’s still some gaps in fully supporting CuPy so perhaps after getting that further along it would be interesting to expand the backends.
Related to multiple backends, I think there’s a lot to explore with JIT and other tricks to make KlongPy faster.
Generally, the bulk of my focus will be on performance going forward.
Nils' book on Klong is awesome. Very well written and could not have done this project without his very detailed and thorough documentation and C code reference implementation. Nils also helped with some clarifying details on the finer points of the language for KlongPy.