Hacker News new | past | comments | ask | show | jobs | submit login

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.




> 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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: