(Moved to Chat forum. This is in reply to http://jsoftware.com/pipermail/general/2010-November/033946.html )
Hi, Ian. On Mon, Nov 1, 2010 at 4:33 PM, Ian Clark <[email protected]> wrote: > > ... > On first encountering APL my initial response was to feel inadequate. > I should have felt humble, but instead I felt humiliated. Because at > the time I was masquerading as a "computer scientist", ie an expert. > This was back in 1973, when the industry was less fragmented. It was > "IBM and the Seven Dwarfs" -- and I was IBM. > > So I looked for holes. For excuses to label APL as mad, not brilliant. > Then I'd be exposed as sane, not stupid. It reassured me to swap sly > remarks about the language, especially as others felt the same as I. > > Thanks for bringing this out. The emotional and social sides of this are often more important than we let on. APLers are rare, and rare also are individuals who have not been involved with strong feelings when actively engaged with these languages. The sense of humiliation you recall in your own experience helps you care about how you might be heard when you are eager to tell people about APL or J. I'm excited by the beauty I see in these languages, but I'm also cautious against presuming that sheer excitement from me will help others see what I'm excited about. I hear you saying the same thing, especially in what you wrote, below. > On first encountering J, I experienced the selfsame feeling I had on > first meeting APL. It largely revolved around "tacit programming". > Attempts by those who'd Seen The Light to motivate me by saying "it's > really quite easy" -- or -- "it's far better than APL doing it this > way" simply provoked hostility. And not just in me, I observed. > > So there was a barrier to surmount, before I could contemplate J > equably, let alone consider using it myself for a serious task. > > Thanks for coming out and saying that such motivational efforts backfired. Helping people learn is, I'm convinced, a delicate task. If the Iverson approach is more difficult to learn, that's a disadvantage on the face of things. Let's suppose, though, that computer programming in general is difficult to learn. When our attention moves to "how can we help make learning this easier," the relative difficulty of J can actually count as an advantage. It can help us avoid taking problems of learning and education for granted. The first steps in this can be to eschew judgments such as "it's easy" or "it's better." Those are very practical steps. I'm inclined to avoid saying "it's hard," too. The consequences of those judgments may be more subtle, but my sense of it is that they, too, impede learning. > Tacit programming _isn't_ "really quite easy". In principle, maybe... > But in practice it's as much a strain as coding in 68000 ASM. (Yes, > done that -- and sold the result). > > And that, I think, is the way to look at it. I've had some serious struggles in learning J, and hope I can remember that with enough vividness to not belittle anybody else's sense of difficulty. At the same time, I have no agenda to bring a sense of difficulty with me. Lately I've been learning other languages and technical tools. The more I learn of the world of programming in general, the more I have come to see J as a remarkably small, simple, and consistent language. J has helped me gain a better sense of the difference between "simple" and "easy." When I can overcome my presumption that something should be easy to understand or easy to remember because it's simple, I actually clear the way for understanding and memorization. So, yes: I'm with you in not claiming J is easy. What I want to do instead is emphasize style and challenge. J is what Alan Kay calls a "style language" (see _A Conversation with Alan Kay_ http://queue.acm.org/detail.cfm?id=1039523 ) When people ask me whether they should learn J, my current answer is: Give it a look, paying special attention to the style of solution that seems to be favored by the nature of this language. Does that style intrigue you? Might you prefer to deal with the sort of challenges that come with working in that style, over the very different challenges that other languages involve? If so, I expect you'll find J wonderfully exciting. If not, you'll still have gained: Your decision process will likely leave you with more understanding of J than the vast majority of programmers. I'm glad you're building another introductory essay, Ian. Thanks for that. -- Tracy P.S. I find it hard to imagine that anybody could enjoy APL and *not* appreciate J! ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
