For the size of its population, Canada has had a disproportionate influence on the field of software design, and to a large extent still does today. For instance, Canadians working on the Arrow fighter plane in the 1950s helped test the first version of Fortran, while those working on early UNIVAC mainframes helped develop the early ideas on Cobol.
Professor John Peck of the University of Calgary helped specify the language ALGOL (ALGebraic Oriented Language) in the 1950s. Also in Alberta, Ken Iverson, a Harvard PhD from Canmore, developed an interesting symbol-based language called APL. Those of us who first heard it described at a Calgary seminar thought initially that it would not take off — it was a stream of mathematical symbols, not particularly well suited to business, but of great help in mathematics. But take off it did — with IBM sponsorship. I was visiting IBM just as the manual was literally hot off the press, receiving one of the very first copies from Iverson, who was with IBM at the time.
Imperial Oil in Calgary had installed an IBM 1410 computer in its Calgary location. Not designed for scientific work, its Fortran compiler was atrocious (its Cobol compiler was not much better — we debugged Cobol applications in machine language after the first compile, which would take hours to complete). With permission from the company I developed for the 1410 what was the first one-pass Fortran compiler in the world, the techniques for which were published in the GUIDE proceedings (GUIDE was an association of IBM business computer users).
As a result of that development I was invited to give the first-ever seminar at the brand new department of Computer Science at the University of Waterloo. Wes Graham, who had invited me, asked if I might help them develop a fast compiler for University students. I was unable to accept his invitation, but Waterloo went on to develop WATFOR, WATFIV, WATBOL and other WAT- compilers used by universities around the world, and by most early students of computer science.
The irony was, at the time, I was invited (but never accepted) to write the compilers for the ATLAS computer in the U.K., a very powerful computer that used a new “pipeline” architecture, where data to be processed was fed non-stop down an electronic pipe, the compiler having to process data until the data ran out rather than being given the data in distinct groupings.
Professor Michael Jenkins at Queen’s University developed another symbolic language called Q’NIAL (Network Interactive Array Language) in the early 1980s, with an associated compiler and run system. His brother, Bill, marketed this but only a limited number of groups purchased it, and it has had a low profile since then.
Alberta, meanwhile, was also the site of an early supercomputer development project. A group in Edmonton formed a company called Myrias, which developed a system in which 1,024 or 2,048 microcomputers could be linked together. Initial funding came from governments in Alberta, Ottawa and the U.S., the first production version going to the latter’s National Security Agency. In order to use the system efficiently the company had to expand the concepts of Fortran so that it could operate in a massively parallel environment, something that is becoming commonplace in today’s supercomputer environment.
Canada’s contributions continue to this day, with a variety of software developments at Microsoft being generated by Canadian graduates, as are many of the special video effects in use by the entertainment industry. Of course, we must not forget the influence of James Gosling, an Albertan from the University of Calgary, who played an influential role in the development of Java.
In my own case, I developed a very compact approach to software development called Genetix. This approach was recently used in the U.K. to develop a very small, high-capability run processor for Java called ORIGIN-J, currently being marketed by ID Data in the U.K. as the smallest full Java system ever to be placed on a smart card.
So why have Canadians been so successful at software development? One reason is that we were in the game very early (usually in IT the early birds generate de facto standards for specific areas), although Albertans might argue for the clean mountain air and the tradition of Albertan entrepreneurship.
Hodson is an Ottawa-based IT industry veteran who has helped develop Canadian computer science programs. Contact him at [email protected]