Dan Bron <j...@bron.us> wrote: > We often say the APL family of languages allow us to use language as a tool > of thought. How does this play out in practice? Do we approach reading J > programs differently from those written in other languages? If so, how?
I think this is a fantastic question. I completely agree that it's very easy to write unreadable programs in J. Some people have pushed back that it's easy to write unreadable programs in any language; but I would actually counter that it's easier in APL derivatives. But I would contend that this is actually a consequence of APL derivatives being developed as a tool of thought rather than a tool of communication (or a tool of command). Thinking is hard. Communicating is also challenging, but it's not the same as thinking. I would like to point to the general teaching that APL people give for reading APL code -- what they say (I don't have a link) is that you can best understand APL code by rewriting it, and then comparing what you write with what was originally written. In other words, you learn to THINK about what the author was thinking about, and then you try to understand the WAY the author was thinking. This reminds me of Chuck Moore's approach to program design, which he called "Thoughtful Programming". He advocated using many prototypes to cull out decent and unacceptable designs. My brain is refusing to give me the name of the guy who's developing a thinking system using an APL derivative. > -Dan -Wm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm