Hacker News new | ask | show | jobs
by wyc 4490 days ago
I think this article helps to better understand this point of view:

http://kaleidic.com/2010/readable-code/

J is a language, like Q and K, also derived from APL [1].

Instead of depending upon layers of abstraction through variable and function naming, this style has a fundamental set of vocabulary (operators) that is insanely expressive in collusion. This allows for concise formulation and expression of algorithms.

However, these languages do not excel in every domain. For example, they're incredible for manipulation of homogeneous data sets, but I haven't heard of an idiomatic way to do heavy socket programming (yet).

[1]: http://www.jsoftware.com/jwiki/Studio/TasteofJPart1

1 comments

Interesting piece. This line:

More powerful programming languages rely less heavily on naming

... reminds me of section 1.1. of Compiling With Continuations:

The beauty of FORTRAN—and the reason it was an improvement over assembly language—is that it relieves the programmer of the obligation to make up names for intermediate results.

I remember going "Wha?" when I read that.

It makes a certain amount of sense though: Just think of all the times, in all seriousness, one uses `tmp` or god forbid, `tmp2` as a variable name.