5 ms·
The TSDB is now called 'jd'[0] FWIIW. Funny, I've been using J on and off since then and I'm still not sure if it's genius or insane. It, along with the other A
by scottlocklin 6y ago
The TSDB is now called 'jd'[0] FWIIW. Funny, I've been using J on and off since then and I'm still not sure if it's genius or insane. It, along with the other APLs, is definitely its own thing, just as much as Lisp is (my previous favorite weird language was Yann LeCun and Leon Bottou's "Lush,"[1] which I continue to think is an amazing design). Once you get a little bit proficient at it, you finally realize what an actually high level programming language could be.
I think it's an idea whose time has come in some ways: hardware is more array-like than ever. J has evolved a lot from 806 to the present 902 beta; lots of performance increases from moving away from the single core paradigm (where it excelled anyway). Lots more to unlock there as well, and some interesting J-based startups brewing[2]. I also think it's one of the best user communities I know of.
Oh yeah, Art's new language Shakti[3] should probably be mentioned. Lots of people excited about this.
[0]https://code.jsoftware.com/wiki/Jd/Overview https://code.jsoftware.com/wiki/Jd/Overview
[1]http://lush.sourceforge.net/ http://lush.sourceforge.net/
[2] https://www.monument.ai/ https://www.monument.ai/ for example
[3] https://shakti.com/ https://shakti.com/
- 7thaccount 6y agoI'm still waiting for Shakti to have more info on their site. As on now, it seems like it is more tailored for Art's traditional clients of banks and not the common engineer.
- jloveless 6y agoSee shakti.sh for downloads and some minimal .d (docs)
- smartmic 6y agoThe user community is really outstanding. Just have a look on https://stackoverflow.com/questions/tagged/j https://stackoverflow.com/questions/tagged/j Questions are answered in no time, the folks are very friendly and treat everyone on eye level. A great role model for any programming language / software communities!
- marmaduke 6y agoI started with Lush a long time ago before being obliged to switch to MATLAB and then C. Recently I have been trying to learn Futhark which is a ML like language generating parallel code (E.g. OpenCL or CUDA) from pure functional code with nested array structures. I find this exciting because when using the GPU with a thin layer like OpenCL directly, you have to write kernels from scratch without much abstraction possible. Higher level APIs like PyTorch or Jax give you easy ways to flexibly structure the computation but you just have to hope for kernel fusion. In Futhark this is in principle explicit and well handled. ISPC is another example of a C like language where SIMD style parallelism is unambiguous while staying relatively high level.
- p1esk 6y agoIf your primary interest is in parallel code that runs on a GPU, and not autograd features of Pytorch/Jax, take a look at CuPy: https://cupy.dev/ https://cupy.dev/
- marmaduke 6y agoRight, but does CuPy fuse kernels? I can’t find anything in the docs about it.
- p1esk 6y agoNot sure, but you can write your own cuda kernels inline if you want to.
- dTal 6y agoThat's extremely cool. Julia has something very similar, in the form of CuArrays [0]. I do wish we had some better cross-platform solutions though, instead of cementing nVidia's hegemony. There's no technical reason why GPGPU should be any more difficult on AMD hardware. [0] https://github.com/JuliaGPU/CuArrays.jl https://github.com/JuliaGPU/CuArrays.jl
- eigenspace 6y ago
- the_optimist 6y agoMonument has had great experiences with J. It is fast, runs everywhere, and it is great for data handling and algorithmic dev. Monument runs on an extended version of J that is implicitly parallel, which enables devs to focus on math rather than optimizing C code.
- reallymemorable 6y agoYes -- it runs super fast!