> From: Ian Clark
> Sent: Tuesday, 2 November 2010 09:33
>
> > I agreed with Brian that I missed the "equals" button in the original
> calc.ijs. Now I miss the "plus" button. It seems unintuitive to press
> "=" when you want to add.
>
> Hahaha! (Can't please everybody.) Can I interest you in a more
> advanced calculator? It's called J ... :-)
>
> I'm just glad I wasn't on the design team of the original pocket
> calculator. It's subtler than it looks.
>
> Providing both '+' and '=' buttons means adding a whole row or column
> of buttons or it looks untidy. I've a calc with the conventional
> look'n'feel -- but IMO it's too complex to serve as a good demo.
>
I've attached an alternative layout to the JinaDay wiki page (named calc2.ijs)
that includes separate '=' and '+' buttons. There are also some minor changes
to some of the verbs to make it work more like my calculator and make it easier
for users to add other operation buttons. See if you think that works/looks OK.
> > The current phrasing of your "blasphemous comment" has more impact
> but I get the feeling that your actual message is more like: "There is
> no need to get your head around tacit definition". The fact is that
> many of the button handlers in the calc script use tacit code! I
> suppose it comes down to whether you think that being provocative
> rather than reassuring will help get your message across best.
>
> "Here Be Dragons..."
>
> I meant to be reassuring by being provocative. Reassuring (to APLers)
> by being (or, rather, risking being) provocative to J-ers.
>
> De-mystifying a topic is never free from the insinuation that the
> mystery is intentional: or at the very least, serving someone's
> purpose. People are quite smart, you know. If a mystery serves no
> purpose -- or no one's purpose -- it soon gets cleared up. It follows
> that de-mystification is apt be viewed as de-bunking.
>
> It wasn't my intention to debunk. Simply to cast some light. Maybe to
> let in some fresh air.
>
> 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.
>
> 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.
>
> 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. Those who can do it can
> justly be proud of their skill. But nobody is ashamed of not being
> able to compose 68000 machine code in their heads without computer
> assistance, so why should they be when it's tacit J?
>
> There is this difference. Machine-code is best kept beneath the
> covers. But tacit J beneficially seeps out. As you observe, there's
> tacit code in calc.ijs.
>
> IMO the issue over tacit J is not whether we should banish (digit&1)
> from calc.ijs, but whether we should aim to make novices ashamed of
> writing:
> quo=: 3 : 'Q,(":>y),Q' NB. place datum in quotes
> instead of:
> quo=: Q , Q ,~ [: ": >
> because that, I think, has been counter-productive.
>
> They'll do so in the end... and like as not they won't know they're
> doing it.
I agree that it is counterproductive to denigrate the use of explicit
definition. I don't think that happens really, although I know that a lot of
code on the forums is tacit. As I said recently on comp.lang.apl I think this
is really just a side effect of more experienced users thinking and working
more in tacit mode.
I remember when I started learning J that I pretty much "ignored" trying to
create tacit verbs - I was content to stick with explicit. I found the tacit
code on the forum hard to read/understand. I think my biggest hurdle in coming
to terms with tacit was being able to reliably identify the parts of speech for
J's various primitives (verb vs adverb vs conjunction). Without that knowledge
it is hard to identify the composed verbs and correctly separate the hooks from
the forks. As I learnt the J primitives and their parts of speech, suddently
tacit didn't seem so hard after all, and now I find myself using it in
preference to explicit for many sentences.
Having said that I'd be more inclined to promote the use this form than the one
liner string form above. Otherwise things can get messy when dealing with
strings.
quo=: 3 : 0
Q,(":>y),Q
)
Ric
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm