Teach Ryan J-lang

Nowadays most programming related book authors open the book preface with his/her cherished childhood memory of being introduced to a commodore computer or BASIC programming language at an early age.

My son is 8-yr old now. I haven’t introduced him to programming. For fear of missing out that paragraph in his book, (if there is such a thing in the future) I need to act now.

Kids nowadays won’t be awe-inspired by some computation machine any more, given the overabundance of game consoles, mobile phones, tablets. Raspberry Pi looks under-powered and nostalgic in comparison.

Fortunately, or unfortunately, programming languages are still the way they used to be 50 years ago, with some improvements.

So I can still teach Ryan a programming language.

Again the goal is not to “Scratch” or “snap!” some turtle moving in circles graphically, but to teach him a general purpose programming language, with some lasting effects.

Please don’t email me with your beloved programming language at this point. I’ve made my decision to teach him Kenneth Iverson and Roger Hui’s J (jsoftware.com).

In case you are not familiar with this calculator language, J has nothing to do with Java, Jscript, Javascript, etc., it is a decedent of APL, without the odd looking symbols.

J is a powerful, general purpose programming language. I call it calculator language, because of its rich set of math-oriented “operators”.

You see, I have a hidden agenda to teach Ryan mathematics concepts along with programming. Any additional syntax such as for-loops, if-else, becomes distraction.

For example, in J language, to make 10 numbers on a number line, you type


Image you have a powerful calculator, that’s probably what you would punch on the keypad to get that. (HP calculator, I am talking to you.)

As Kenneth Iverson put perfectly in his 1979 Turing award lecture

notation suited as a tool of thought in any topic should permit easy introduction in the context of that topic

J is just like that math notation, it can be introduced along with the concept and problem to solve at hand.

From that example, here is how to shift the numbers on that number line by one:

1 + i.10

To scale the numbers:

1 + 3 * i.10

To introduce decimal numbers in addition

1 + 0.1 * i.10

Now how can J help you fill in the missing numbers on that number line?



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store


memento of electronics and fun exploration for my future self