3 ms·
Some additions: The major difference separating j from k is that the former is optimized for multidimensional arrays (_i.e_ math), while the latter is optimize
by rscho 6y ago
Some additions:
The major difference separating j from k is that the former is optimized for multidimensional arrays (_i.e_ math), while the latter is optimized for vector processing (_i.e_ financial data) and uses lists of vectors when working with higher dimensions.
J is also fast, but not for the same things as k. It's interpreter is also designed to fit in the cache.
Dyalog APL has been experimenting with bytecode compilation, although I don't know whether it's implemented in the current version. It also has a gpgpu extension with restrictions on the language (Co-dfns). Unlike j, APL does not implement operations such as matrix multiplication by calling to BLAS, so if you're doing matrices on the CPU, use J. As an aside, j also shines for graphical output with its opengl bindings and its 2d/3d Matrix viewer.
BTW Jd is indeed commercial, but is free to use in non-commercial applications.
Personally, I think that k is much more popular on hn because they're aggressively promoting it. J is better if you're not doing financial work.
- moonchild 6y ago> j's interpreter is also designed to fit in the cache $ du -sh /usr/lib/j9/bin/libj.so 3.2M /usr/lib/j9/bin/libj.so Might be a tight fit... Kdb k is only 771kb, and shakti k is 120kb.