Saturday, August 22, 2026

Commission without completion

What if my life had a mission and I didn't complete it (the latter) before I completed it (the former)?

My intention in writing this had been to complain about how my life has been a failure. But, I am failing to follow through with this plan, largely because my wife Sara just spent a few minutes with me learning about Logo with turtle graphics, and that made me feel better.

Seventeen and a half years ago, I sat down and thought about what my mission might be, and wrote a Mission Statement.

The mission statement itself—repeated below for convenience—speaks of Computer Science, but this post is just about programming.

In this post, I'm interested in a softer more gentle mission, teaching someone else to program. So many times I have tried to interest so many people in using one programming language or environment or another, and often failed.

Here is a short list of the major attempts:

  • BASIC
  • Logo with turtle graphics
  • VisiCalc (the first computer spreadsheet)
  • DataPerfect
  • TOOL (an object oriented programming environment)
  • KRL with picos

Teaching professionally

During the early 1980's, I was an itinerant instructor for Lethbridge Community College, visiting rural communities to tell them about computers: computer literacy. To teachers, I taught BASIC and Logo; to the general population, I taught word processing, spreadsheets, and databases.

Aside. Starting the first day of a class in computer literacy answered the questions, what is a computer and why we want to use one. In a later lesson written elsewhere, I give four reasons: durability, speed, accuracy, and lack of initiative. Computers don't get tired, they are extremely fast, totally accurate, and they do what they are told. The previous post, Con without consciousness, is a cautionary tale about so-called AI. Here, in this aside, I just want to point out that today's AI seriously threatens most of the reasons I used to give for why we would want to use a computer forty years ago! Do we still want to? End of aside.

Between 1984 and 1988, I was an Assistant Professor at the University of Lethbridge where I taught many computer science classes, mostly to Computer Science majors. This was very rewarding, and I did see young people become Computer Scientists.

In my 1995 dissertation, I wrote this about these experiences (section 1.1.1.3):

In the 1980's I taught computer literacy and introductory computer programming to numerous groups, ranging from children through university students to adults from many walks of life. Literacy courses involved introductions to word processing, spreadsheets, and database management systems. Programming languages used included a spreadsheet language (Levy, 1984), LOGO (Papert, 1980), and several dialects of BASIC.

The major finding was that while a small percentage of the students ended up being not interested, the vast majority learned to use computers to various degrees, and another small percentage actually became programmers. Both children and their school teachers seemed quite comfortable with LOGO programming, though all but a very few had considerable trouble with examples involving recursion.

VisiCalc

An electronic spreadsheet is a wonderful place to program. It is simple, with a two dimensional layout of cells, each of which contains text or numbers or a formula that computes a number. Make a change and the results are instantly visible. People see the utility immediately. No other programming environment that I have seen before or since can touch the immediacy.

While teaching professionally, I talked about it in classes, wrote a paper about how each iteration of a sheet could be written as a BASIC program, challenged students to implement one themselves, and tried to grasp what made it so successful.

As an engineer, I used it almost daily, and touted it as example of what I was looking to do in motivating people to write their own programs.

Teaching as an engineer

When students are taking a class, they are more willing to learn new things, including programming. Teaching fellow programmers as an engineer, I found that they are set in their ways, and are not willing to accept new things (not from me anyway). This was my experience with all of DataPerfect, TOOL, and KRL. Even though these languages had great benefits to offer, they were not familiar, or they didn't do things in familiar ways, or just looked too strange.

DataPerfect

DataPerfect was invented in the 1980's by A. Lewis Bastian, Jr., who became first my boss, and later my good friend. It is a marvel, and while I was hired to work on a follow-up version and didn't need to know how to use it myself, I taught myself how to use it and have used it regularly ever since.

It is wonderful how many people who didn't see themselves as programmers created systems to run their businesses using DataPerfect.  There is a small group of people around the world who still use it even today.

TOOL

TOOL is the object-oriented language that Lew hired me to work on when I joined WordPerfect Corporation, after I left academia to work in industry. I was well qualified because I came with several years of experience working with Smalltalk at the University of Calgary as part of my PhD research.

We were very hopeful that other programmers would see its value and adopt it, but that never happened. All that I have left to show for that work is the dissertation mentioned earlier that was completed in 1995, but sadly never defended.

KRL and picos

Picos are like objects, but so much better. Programs are written for them using a language called (for historical reasons) KRL, which began as an acronym for Kinetic Rule Language, but now is just a word (pronounced by naming the letters in order). This is an invention of Phil Windley, who became first my boss, and later my good friend.

As far as teaching a language goes, this has been more successful with students who are taking a class from Phil (and so are forced to learn it), than with a general population. There are a handful of enthusiasts, and I am definitely one of them.

Retirement

Since January 6, 2025, I am retired, but still use picos every day. I also use spreadsheets every day, and think about DataPerfect and TOOL often.

I am still actively promoting picos, and maintain a website at PicoStack.org which talks about how picos can form a (one layer) stack for writing web applications. At the bottom of the landing page for that website is a subtle invitation to explore more by learning-picostack, intended for homeschoolers.

Notes

"Logo with turtle graphics" for which we used the online Logo Interpreter from the University of Rochester, New York [one of many such, the others of which you can find using your favorite search engine], and Sara worked through programs to draw a square

"I sat down and thought" meaning that I don't really remember, but assume that I was sitting at the time

"just about programming" which is a both an essential subset of Computer Science, but also an important contributor to many other academic areas: if you are a computer scientist you know how to program; if you know how to program you're not necessarily a computer scientist

"VisiCalc" for a brief story watch VisiCalc: The First Electronic Spreadsheet, a five minute video about this remarkable invention; search for others—there are longer ones that go into more detail

"wrote a paper about ... a [spread]sheet ... as a BASIC program" with Charles Jorgenson, which we presented at the CIPS Edmonton Conference in Alberta in 1986

"my PhD research" because object-oriented programming was the topic that I chose after rejecting AI back in the 1980's, as admitted in the previous post, Con without consciousness

"KRL" see Why KRL? by Phil Windley posted in 2011 and Ten Reasons to Use Picos for Your Next Decentralized Programming Project, also by Phil written ten years later in 2021

"a handful of enthusiasts" includes some friends who worked through Hack Day 2022 with me on an interesting project; slide 5 has a table comparing picos to Java, a de facto standard object-oriented programming language in wide use today

"homeschoolers" with whom the one attempted use that I know of failed for lack of detail: several hundred more gentle lessons would be needed to prepare for the last one

The author did not use AI to assist in writing this article—despite the presence of em dashes (each introduced manually by the author using his own fingers (to combine the three keys Shift-option-hyphen)). He confesses to having sometimes taken information directly from Google search's prominently placed AI-generated content at the top of search results (rather that scrolling down and clinking on an actual link (which he strives (but often fails) to always do)).

No comments:

Post a Comment