Live data from Hacker News

A look at the J language: the fine line between genius and insanity (2012)

scottlocklin.wordpress.com

1–10 of 70 posts

Re: A look at the J language: the fine line between genius and insanity (2012)

#2
Funny, that phrase can also describe k itself... It's a mindset, or cult, depending on who you chat with about it. Very powerful, and somewhat obtuse, which often go together.

Fwir, Kdb+ is written in k which is sorta APL, and then there's q for writing kdb+ programs which is easierish. But still an adventure.

Re: A look at the J language: the fine line between genius and insanity (2012)

#3
post #2

Funny, that phrase can also describe k itself... It's a mindset, or cult, depending on who you chat with about it. Very powerful, and somewhat obtuse, which often go together. Fwir, Kdb+ is written in k which is sorta APL, and then there's q for writing kdb+ programs which is easierish. But still an adventure.

People always compare J, K and APL as if they were almost identical apart from the character set, but that's far from the truth.

https://aplwiki.com/wiki/Array_model#:~:text=In%20APL%20it%2....

Re: A look at the J language: the fine line between genius and insanity (2012)

#4
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

[1]http://lush.sourceforge.net/

[2] https://www.monument.ai/ for example

[3] https://shakti.com/

Re: A look at the J language: the fine line between genius and insanity (2012)

#5
post #3
post #2

Funny, that phrase can also describe k itself... It's a mindset, or cult, depending on who you chat with about it. Very powerful, and somewhat obtuse, which often go together. Fwir, Kdb+ is written in k which is sorta APL, and then there's q for writing kdb+ programs which is easierish. But still an adventure.

People always compare J, K and APL as if they were almost identical apart from the character set, but that's far from the truth. https://aplwiki.com/wiki/Array_model#:~:text=In%20APL%20it%2... .

APL and J are different between themselves (I started with APL but jumped into J) like FORTRAN and C are... What is your point?

Re: A look at the J language: the fine line between genius and insanity (2012)

#7

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…

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

Re: A look at the J language: the fine line between genius and insanity (2012)

#8

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…

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

See shakti.sh for downloads and some minimal .d (docs)

Re: A look at the J language: the fine line between genius and insanity (2012)

#9
I've learned a bunch of different languages[1], but J (and its friends APL and K) has been both the one that I don't feel I have the patience to learn AND the one that I feel like I might fall in love with if I actually learned it.

The incomprehensible programs just seem to hint that there is some sort of maximal information density where every keystroke provides maximal productivity.

There's also something artistically appealing about starting at a program and making a deliberate one character change that makes all the difference ... although on the other hand, that's kind of scary too.

Here's a video that really illustrates the power of this paradigm: https://www.youtube.com/watch?v=a9xAKttWgP4

[1] - I learned (in this approximate order): C, Java, Lua, C#, Ruby, Python, Lisp, Forth, Prolog, Clojure, OCaml, Haskell, Erlang, F#, R, Racket, and Rust. I also took a look at languages like: ATS, Cyclone, C++, Idris, Agda, D, and Perl 6. Of all those languages it really feels like APL/J/K are the strange ones.

Re: A look at the J language: the fine line between genius and insanity (2012)

#10
post #2

Funny, that phrase can also describe k itself... It's a mindset, or cult, depending on who you chat with about it. Very powerful, and somewhat obtuse, which often go together. Fwir, Kdb+ is written in k which is sorta APL, and then there's q for writing kdb+ programs which is easierish. But still an adventure.

kdb+ is written in C, but q is (largely) written in k. One of the first things kdb+ does on startup is load the file `q.k`, which is a k file which defines the q language. The interpreter then switches from interpreting k to interpreting q.

Interestingly enough you can fairly easily program your own language (written in q/k) on top of that, and set the interpreter to evaluate that language by default. Kx offers a Python integration layer called EmbedPy which (among other things) exposes a Python evaluator as the "p" language in kdb+.

Post reply on HN