Comment by gaze
4 years ago
K is cool but really, really expensive. Kevin Lawler's Kona seems nice. Shakti (next K version) could be good but I can't figure out a damn thing about it.
And then there's J, which, man. Hard to learn, but cool.
4 years ago
K is cool but really, really expensive. Kevin Lawler's Kona seems nice. Shakti (next K version) could be good but I can't figure out a damn thing about it.
And then there's J, which, man. Hard to learn, but cool.
There's now ngn/k[0] for a free implementation of K6. The author prefers K6 to Shakti, which is K9. And there are a number of other open-source K dialects and array languages as well[1]. For learning about K, the recently-created K wiki[2] is a great resource.
[0] https://codeberg.org/ngn/k
[1] https://aplwiki.com/wiki/List_of_open-source_array_languages
[2] https://k.miraheze.org/wiki/Main_Page
OT, but for months already, Googling for "ngn/k" also displays a totally non-sensical calculator result, with no apparent way to report, like:
1 Nigerian naira / Boltzmann constant = 1.75931815 × 10^20 m^-2 kg^-1 s^2 K U.S. dollars
Is there any summary of what's changed between K versions, or their lineage, for someone who's not "K-fluent" but a tiny bit familiar with array languages? What changed between K6, 7, and 9?
Since Kx is the proprietor of the main toolchain I assume such any such description would be more of an oral history rather than a technical document with a changelog, but I'm curious either way!
EDIT: There is a wiki page for this but it hasn't been filled out (yet) unfortunately. Sad trombone. https://k.miraheze.org/wiki/History
Hello, one of the maintainers of the wiki here. The major changes are generally divided into:
K2-K4
K5-K6
K7-K9
From my knowledge. Each group has the same general primitives and syntax, and major changes happen between those eras. Since K's design allows removal and addition of features, this is very hard to document. This, combined with Arthur Whitney's rocky relationship with documentation makes most sources of changes anecdotal. Most changes to primitives have been documented in the wiki's primitive pages. I'll have to summarize them in the history pages.
K4 has good docs, and K6 has a well-written manual on oK's repository. The rest are a fill-in-the-blanks game which have to be fished from archive pages and a lot of trial and error. K9, the latest one is still undergoing changes, but there are ongoing efforts to make tutorials in kparc/kcc and estradajke/k9-simples on github.
Theres also a version of K2, plus a PDF K2 reference manual and many example programs on nsl.com that are still available.
Back in 2002, I remember reading an article on kuro5hin where the author wrote: "I have heard rumors that there would be interest in opening up the language if there would be enough community response around it."
https://web.archive.org/web/20050621080857/http://www.kuro5h...
The source code for J7 is still available and it still compiles with only a few small edits:
https://web.archive.org/web/20161024144956/http://www.math.u...
People commenting on today's web like to make fun of the idea that anything about computing was "better" in the past (and they like to crticise C too), but just look at how portable this code was designed to be. Moreover, it is as old as the web itself and it still compiles today.
What is the longevity of something written in Javascript.
"Back in 2002..."
There was this on Slashdot:
"Arthur told me that he will open-source it, if there is sufficient interest. It is not very difficult to obtain the source from kx for your private use right now."
http://developers.slashdot.org/comments.pl?sid=28597&cid=307...
> What is the longevity of something written in Javascript.
I wrote some JavaScript in the late 90s which is still being used as part of a complex financial services value chain.
The idea that computing was better in the past is indeed silly, and completely ignores all the advances in understanding that have been made in the last many decades.
If your opinion is different, I can assure you that's due to ignorance.
Do Octave and R qualify as array languages? You could say that Python is not because Numpy is not part of the language.
It's hard to say how exactly to draw the line, but "array language" to an APLer usually means a language whose primary influence is APL. So these scientific languages that throw out most of the syntax are nearby but don't quite belong. From a practical standpoint the APL Wiki is centered on APL and exists to document the kind of niche material Wikipedia wouldn't cover, which is why there's nothing about these more mainstream languages currently.
I’d argue that array languages are far, far more limited than Python, to the point that the only thing you can reasonably do with them is processing array data (but they’re really good at it!)
5 replies →
what was the point of the OP in this thread? I went to that page, but I can't make sense of what the page is all about!?!
https://kparc.com/
affero? dang.
> really, really expensive
Can't find any pricing info on their website. How expensive is "expensive"?
Probably like a Bloomberg Terminal subscription, 25K a year or so
A number of orgs have perpetual site licenses, or so I've been told. It can solve many problems elegantly and with minimal code and development time. But it requires a core group of people who do almost nothing else.
What is the largest open-source community for a K-like language?
If you consider J K-like, then J. Otherwise, ngn K or Kona
ngn/k is the most active in development. You can meet the developer and people who use ngn/k in the chatrooms listed here: https://k.miraheze.org/wiki/Online_Communities