J for C Programmers
J for C Programmers
by Unknown author
34mentions
17recommended by
19HN commenters
2010–2023first – last mentioned
89% recommend11% neutral
Affiliate links. As an Amazon Associate I earn from qualifying purchases.



For those of you who don't know anything about J, it's a modern dialect of APL; an extremely concise functional programming language based on function concatenation and vector operation. The APL languages are very interesting, but have historically been proprietary and somewhat insular. * http://jsoftware.com/ * http://en.wikipedia.org/wiki/J_%28programming_language%29 * A good intro - _J for C
on “J Source to be released under GPL” ↗If you're interested in getting a taste of APL while keeping in ASCII, you might want to check out the J programming language. Ken Iverson (the creator of APL) had a hand in its development. J implements most APL operators and is sometimes known as its successor, along with K and Q. Get started here: http://www.jsoftware.com/help/learning/contents.htm This family of languages really leads to a n
on “GNU APL 1.3” ↗Stop it! I have a lot of real work to do, but my urge to binge "J for C Programmers" is getting harder and harder to control :)
on “APL deserves its renaissance too (2018)” ↗Check out Tracy Harms's talk: http://www.infoq.com/presentations/j-language Or, perhaps, this chapter of the (rather dense) "Learning J": http://www.jsoftware.com/help/learning/03.htm
on “J Has the Best Development Environment (2009)” ↗There is a book out there designed specifically to move C programmers outside their comfort zone: J for C Programmers. http://www.jsoftware.com/help/jforc/contents.htm That's not to say that it will redirect your career from C programming to J programming (my impression is that there are not a huge number of all day every day J programming jobs). But rather, J is one of those languages that requ
on “Learning multiple programming languages” ↗You should learn a new language, a weird one that isn't like others you have used, e.g. if you have only ever done object oriented stuff learn a functional language. I spend some of my free time just learning new, mostly impractical languagess, and I have found that new ideas come through from the text at hand, or from thinking about problems in a different fashion. I suggest J, Erlang, and Idris
on “Ask HN: What are some hard coding projects I could create?” ↗I definitely agree with Hillel's prescription here. In a complex topic, you need different kinds of literature. For beginners, there is J for C Programmers, and for experts there is NuVoc and the official dictionary. But for intermediate users who grasp the basic concepts, J and other APLs are harder than other languages because there seems to be a whole…
on “The Problem With APLs” ↗We have different perspectives here. I agree that J for C Programmers is good for novices, but I wouldn't say NuVoc is for experts. Next, J allows solving problem with different algorithms, and the choice you make among primitives reflects more what you want than what you…
on “The Problem With APLs” ↗"J for C programmers" is, in my opinion, an excellent resource for how to think in array-oriented style. http://www.jsoftware.com/help/jforc/contents.htm
on “Arthur Whitney's 'B' Language” ↗In the section on "Culture Shock": https://www.jsoftware.com/help/jforc/culture_shock.htm The triple quotes are ugly. Quit bellyaching... I love it. So many arguments in PLT are really just about not ever wanting to leave ones comfort zone. Sometimes you just have to suck it up and do a thing.
on “J for C Programmers” ↗…Yes, absolutely. By a long shot. For starters, J can actually be parsed. (k can also be parsed, for what it's worth.) "Easiest to learn"? Spend ten minutes using J's built-in Labs feature. Or read J for C Programmers (also ships with the language), if you come from a non-array background. Iverson was able to teach this stuff to public school children in no time at all; modern array languages seem to deliberately make…
on “The APL Orchard” ↗J is definitely more batteries-included than the open source K implementations. There's also a wealth of documentation and books on J: J for C Programmers: https://www.jsoftware.com/help/jforc/contents.htm Learning J: https://www.jsoftware.com/help/learning/contents.htm And the New Vocabulary "Nuvoc" on the wiki: https://code.jsoftware.com/wiki/NuVoc Edit: spelling.
on “I got the J language working on OpenBSD” ↗If you tried before - did you read "J for C programmers"? I found that invaluable in understanding what J actually does.
on “Random walk in 2 lines of J” ↗Then I recommend https://www.jsoftware.com/help/jforc/contents.htm
on “Ask HN: Why do you use Rust, when D is available?” ↗…suggest not getting too hung up on the syntax, and instead focusing on the pros and cons of doing everything over collections by default, with implicit looping. "Thinking big", as Henry Rich calls it in _J for C Programmers_ (also a good resource). The ideogram-based syntax is an historical thing, and getting fixated on that is like thinking the only novel thing about Lisp is all the parens. See also: "The World's Most…
on “Strangest language feature” ↗