There’s no success like commercial success
Posted by: Edward in: Edward's CnC > Our Daily Prolog
There was sunshine earlier today, after days and days and days of rain. It was so nice but my caregiver had to stay indoors because she is sick. Hmmm… come to think of it, when it comes to the caregiver employment contract, I seem to be the one doing much of the care-giving, and my caregiver doing much of the care-taking!

Anyway, it started to rain again this evening, and so I just continued on with my reading of Clocksin and Mellish’s “Programming in Prolog.” Thanks to my caregiver’s old BBS friend, who was here a few weeks ago.
However, he didn’t pay much attention to me. Must be a cat-lover.
The preface to the first edition starts off with “The computer programming language Prolog is quickly gaining popularity throughout the world.” (The thing about these nerdy books is that they make programming sound like puppy diapers with floral-scented absorbent gel!
) And it is because of this popularity (and the increasing use of Prolog in undergraduate and postgraduate studies) that the authors of “Programming in Prolog” decided to write a book with the aim of teaching Prolog as a practical programming language (1981). While Prolog has its best known applications in symbolic computation (1970s), the book attempts to show how useful programs can be written using Prolog.
Which reminds me, just a few days ago, my caregiver has been emailing a friend of hers about practical programming languages, particularly about a running debate at lwn.net on Perl and Python. It appears that the most “successful” programming languages are those that offer the most for use, such as libraries and programming tools. Although of course one has to ask, what and when does “successful” mean?
For example, if we were talking about the 60s and 70s, then computers would still be found only in large scientific and academic research institutions rather than in medium to small scale businesses, schools in the primary to tertiary levels, and people’s homes like we have now. This would mean that the driving force behind computer programming language use and popularity in the early 60s and 70s would be research, experimentation, and innovation whereas the driving force for computer programming beginning the 80’s and most especially into the 90s would be very practical applications such as system administration, documentation, information management, and the like.
So, no matter how much Perl (for example) reads like “line noise” (as Alan Gauld described it in his “Learning to Program” web tutorial), it is still currently considered a very powerful and useful programming language, and as such, programmers will learn to read and write “line noise” because they have to; whereas the more elegant and ‘beautiful’ languages such as Lisp/Scheme, Prolog, standard Pascal) continue to have their fans within the teaching, experimental and perhaps aesthetic domains.
BUT of course, there is the underlying reason why programmers will learn to read “line noise”: survival in terms of the continued viability of their own employment/market value since much of the most commercially popular systems are already running with (bundled with) the development environment needed by such programming languages.
So, when Clocksin and Mellish said (in 1981) that Prolog was “quickly gaining popularity throughout the world”, I can imagine that this meant the popularity of Prolog primarily within teaching as, since the 70s, its usefulness flowed over into applications such as mathematical logic, design automation, biochemical structure analysis, and artificial intelligence. But beginning in the mid-80’s when desktop computers (user-friendly consumer systems!
) came to the market and the Internet (and World Wide Web) burst out in the mid-90’s, things drastically changed, although such changes can be seen as logcal consequences of the race for market dominance as early as the 60’s, as we shall see …
To look more closely at the genesis and time-line of this change, we can take an example Niklaus Wirth’s Pascal programming language (which was based on ALGOL beginning with his Algol-W based on the ALGOL 60), and how it was standardized (in 1983) and later how it evolved, adopted, and its variants developed (i.e. Extended Pascal (Turbo Pascal) and Object Pascal (Delphi), etc.).
I thought Standard Pascal would make a good example because it seemed to sit between the ‘useless’ languages and the ‘useful’ languages, and presents a good view of what is meant by a programming language that has “success” or “commercial success.”
Firstly, while ALGOL 58 (developed jointly by a committee of European and American computer scientists in a meeting in 1958 at ETH Zurich) was unsuccessful with regards to commercial applications because of the absence of standard input/output facilities in its description, it was used by research computer scientists in the US and in Europe, and (by ALGOL 60) laid the foundation for a standard for the publication of algorithms (and therefore the standard on future language development). (More on this standard later).
By ALGOL 68, the I/O lack has been addressed thru an extensive library of “transput” (ALGOL 68 parlance for Input/Output) facilities. However, by then (1968), the various members of the US-European committee, particularly the ALGOL 60 committee in Paris, had already seen quite clearly the commercial potential beyond ALGOL 58. I believe that Wirth’s Algol W, originally intended as the next generation ALGOL (but the ALGOL 60 committee decided other things), was predecessor of one of them, in this case his own Pascal programming language, which did become a commercial success. (It appears that Wirth did not serve anymore in the ALGOL 60 committee).
Still, at the ALGOL 60 level (I/O lack has been addressed only by ALGOL 68), there was lack of interest in the language by large computer vendors, but implementations were already being developed for specific computing systems (for example: National-Elliott 803 & the Elliott 503, the English Electric KDF9, the UNIVAC 1107, the LGP-30, the MINSK family of computers, and the Data General family of computers).
From these systems, one can already deduce the anatomy of commercial success and consequently, the anatomy of commercial/academic exploitation vis-a-vis programming language development and use!
But that too will be for later. For now we are looking only at Wirth’s Pascal.
So, after ALGOL 68, Wirth had already completed work on Pascal (1970) and the first compiler was designed in Zurich for a series of computers by Control Data Corporation (CDC6000 series operational also in 1970), then two years afterwards, for the PDP-11, a series of 16-bit minicomputers sold by Digital Equipment Corporation (DEC) from the 70s to the 80s.
And, as we all know by now, most of the market for these minicomputers would be taken over by “personal computers” (i.e. IBM PC, Apple II, and the Sun Microsystems workstations). In fact, “By the late 1990s, not only DEC but most of the New England computer industry which was built around minicomputers like the PDP-11 also collapsed in the face of microcomputer-based UNIX and Windows servers.” (From the Wikipedia entry)
Even as DEC managed to address the inability of PDP software to use large amounts of memory (32-bit computing in the 80’s were already supported by chips such as the Motorola 68000 and Intel 80386 processors) overrunning the restricted 16-bit virtual address space with only 64K bytes of memory), the large-scale production of the Intel and Motorola chips eventually eliminated any cost advantage for the PDP-11. DEC eventually got bought by Compaq in 1998, and then merged with Hewlett-Packard in 2002.
CDC folded up too, with histories similar to that of DEC. Anyway, by the time the Pascal compiler was developed for the CDC6000 series, CDC was already producing a machine faster than the rival IBM, later ensuing an antitrust lawsuit that CDC won:
It was after the delivery of the 6600 that IBM took notice of the new company. At the time Thomas J. Watson, Jr. asked (paraphrased) How is it that this tiny company of 34 people—including the janitor—can be beating us when we have thousands of people?, to which Cray reportedly quipped You just answered your own question. In 1965 IBM started an effort to build their own machine that would be even faster than the 6600, the ACS. Two hundred people were assembled on the West Coast to work on the project away from corporate prodding, in an attempt to mirror Cray’s offsite lab. The project produced interesting architecture and technology, but was not compatible with IBM’s very successful System/360 line. It was redirected to be System/360-compatible, but this compromised performance, and ACS was eventually canceled in 1969 after producing no product. Many of the engineers left the company rather than return back east, leading to a brain-drain in IBM’s high-performance department.
In the short term IBM also went ahead and announced a new version of the famed System/360 that would be just as fast as the 6600, the Model 92. This machine did not exist, but that did not stop sales of the 6600 from drying up while people waited for its release (a tactic known today as fear, uncertainty and doubt (FUD)). Norris did not take this lying down, and a year later filed an antitrust suit against IBM, eventually winning over 600 million dollars and picking up the Service Bureau Corporation, an IBM subsidiary that ran computer processing for other corporations on SBC’s computers. SBC fit nicely into CDC’s existing service bureau offerings. - From the Wikipedia entry
At this point, I have a number of questions criss-crossing my little “kapok brain” (as that darn cat Fortun would call it).
First, How important was the early I/O problem (and its solutions) in the future of language development?
Second, What is the difference between the intelligence and skills of the people (engineers, mathematicians, etc.) working on such projects as CDC’s computers, DEC’s PDPs, and the intelligence and skills of people working on projects such as Microsoft’s Windows Vista? What the implications with regards to education in the fields of computer science, engineering, mathematics?
Third, What were the East German scientists and mathematicians doing at that time in the 50s and 60s while US and allied Europe were scrambling to build the most powerful computer?
Fourth, Why was the MINSK discontinued for an IBM clone (the ES EVM)? What was the role of the COMECON (Council for Mutual Economic Assistance, formed in 1949, as an economic organization of communist states) in this, if any?
Fifth, what were the true implications of the Sofia Principle (adopted by the COMECON in Bulgaria in 1949) - that is, if it benefitted the less industrialized COMECON countries, how could it “discourage new research” as Robert Bideleux and Ian Jeffries claims in “A History of Eastern Europe: Crisis and Change” (1998, Routeledge)? Could the weakening of the Sofia Principle because it “discourage new research” actually be due to the deterioration of conditions in some countries in the communist bloc during the Brezhnev era and the period of détente which initially brought some prosperity but afterwards corruption and poverty since most Comecon countries ended up indebted to the West when capital flows died, and adapted licensed western technologies that did not fit with the local conditions? What are the implications of these with regards to current views on Intellectual Property Rights and innovation?
And Sixth, what is the role (presumably rather crucial) of “service bureaus”, particularly the IBM subsidiary, SBC, in the question: how does one achieve success?
But now, I am getting hungry! So we will continue this later. I am especially interested in the early history and implications of I/O. In the meantime, I need more I than O! Dinner!
