Enable JavaScript.

Byte Magazine cover, 1981, by Robert Tinny

1983-1988: DDM & Smalltalk

"Contamination Warning!" That's what the contract said to the IBM lawyers who studied the fine print before the purchase could be approved. "Not over our dead bodies!" was their collective response. Over a year of effort came crashing down on my head. Two lumbering giants had collided, and neither had given an inch. I felt like I was the loser, but I knew that the real losers were the giants, themselves. The most important software technology since the development of the FORTRAN language was being thwarted by lawyers.

In 1983, I developed a plan for efficiently and economically implementing IBM's

(DDM) architecture for the variety of file systems provided on IBM computers. It was true that each file system had unique interfaces and features to account for, but it was also true that much of the programming that would be needed on all systems would be the same. So I had looked for a way to write this common code once and have it be easily ported to all systems where it was needed. This was in stark contrast with existing IBM practice of having each operating system develop all of its own code.

What I wanted was a programming language that could be efficiently interpreted by virtual machines in each system. This was an old idea that had been used by number of programming languages, such as Pascal. The only problem with it was that interpreted languages were well known to be less efficient than those compiled directly to machine code. A reasonable compromise was to compile the program to an intermediate, or virtual machine, code that could be optimized for efficient execution.

I had chosen Smalltalk as the best programming language for my purposes because of its portability and also because of its support for object-oriented programming. The DDM protocols and data streams were based on the ideas of objects, classes and messages that I had learned from studying the articles and books that Xerox had published about Smalltalk.

However, the use of Smalltalk was met with endless skepticism by people who understood neither efficient interpretation nor object-oriented programming. Seeing this, John Bondy asked me to present the idea to Jim Gray, an IBM Fellow and IBM's chief telecommunications guru. His response was that he didn't think Smalltalk was a very impressive language and recommended that I adopt one of the dialects of the PL/I language that was then in vogue in the IBM programming labs. Jim had completely missed the point about Smalltalk. The minimalist syntax of Smalltalk is a mark of its elegance. Unlike PL/I, which has special purpose statements for each function supported by the language, the syntax of Smalltalk is more like that of English in that a simple grammar is used to carry a wide and ever growing vocabulary of words.

I explained this to John and that I still wanted to pursue using Smalltalk. Once again, he had me walk him through my logic, to explain why Smalltalk was the best choice for DDM development. His respect for Jim Gray's opinions was deep, but he could also see the depth of my commitment to the Smalltalk approach. "So how are you going to convince everyone else that this is the right way to go?" he asked.

"We'll show them." I answered. "We'll buy a copy of Smalltalk from Xerox, build the DDM code, and show what can be done with it."

John agreed with this, but blanched when he learned that Xerox was the only Smalltalk supplier at that time, and that we'd have to buy a Xerox workstation called the Dolphin for $64,000. and pay another $5,000. for their Smalltalk license. At that level of expense, it would take a Vice President's approval. Nevertheless, he helped me to sell the idea and get the necessary approvals and funding.

Everything was copacetic until the License Agreement for Smalltalk arrived from Xerox. Generously sprinkled throughout the license were words like "Xerox Confidential" and "Proprietary." And those were nothing but warning flags to IBM's attorneys.

The general rule was that IBM employees actively engaged in product development were not to be allowed access to the confidential or proprietary technical information of other companies less they be contaminated by this knowledge. IBM wanted exclusive ownership of all ideas and technologies embodied in its products, with the sole exception of licensed patents. The Federal Antitrust suit of the Carter Administration had just been dismissed and IBM executives still feared even the appearance of being predatory.

I argued that IBM and Xerox could cooperate on this project to their mutual benefit, while still remaining competitors in other areas, but that argument fell on deaf ears among the IBM attorneys in Rochester. So I went over their heads and contacted IBM's procurement lawyers in Armonk. This was the beginning of nearly a year's back and forth negotiations between IBM's lawyers in Armonk and Xerox's lawyers, twenty miles away in Stamford, CT.

The Xerox lawyers would not give up on any aspect of their product's propriatariness, and IBM's lawyers would not accept it other than on the terms under which they purchased software from other vendors. Eventually, I was forced to give up. The IBM system products working with me on DDM had decided to do separate implementations.

Shortly thereafter, David N. Smith from IBM's Watson Research Center took an interest in Smalltalk. He had heard about my legal battles and wisely bypassed the lawyers by working directly with the Xerox researchers who had developed Smalltalk. Approximately a year later he had a signed agreement with Xerox that allowed Smalltalk to be purchased by IBM Research. It would be run on IBM's new RS/6000 workstations on a virtual machine developed by IBM. The only problem was that Xerox wanted $20,000 for five licenses, and Dave couldn't come up with that much money. He called and asked if I still wanted a license. Together, we put together a consortium of four different groups in IBM who all wanted a single license and were each willing to chip in $5000. I got Dave an interplant cash transfer for Rochester's share, but one of the other group's failed to come through, and this effort also failed to bear fruit. I never learned what happened to Rochester's $5000.

The tragedy of all this is that Smalltalk was the single most important development in programming technology since the design of FORTRAN in the 1950's. Even though it remains little known, Smalltalk is the basis of virtually all important advances in programming technology since the late 1970's: object-orientation, interactive development environments, integrated debuggers, frameworks, refractoring code browsers, automatic garbage collection, and much more. It could have become a major factor in IBM systems in the mid-80's by greatly enhancing programmer productivity, but this kind of technology jump could not be made in the atmosphere of fear that resulted from the Federal Antitrust suit.

It wasn't until 1995 that a version of Smalltalk became available on IBM systems. This generated excitement for a short period of time, but another programming language, Java, had come on the scene and soon dominated IBM's programming efforts. With major support from its developer, Sun Microsystems, plus IBM, Java stole the show. The irony in all this is that the best features of Java were poorly conceived rip-offs from Smalltalk. However, it had retained the popular syntax of the C language and that, plus superb marketing, made all the difference.

In a special issue of SIGS Publications, Dave Thomas, the CEO of Object Technology International, Inc., provided a history of the first 25 years of Smalltalk. In it, he noted that "It was IBM's investment and push that gave major credibility to Smalltalk in the eyes of the business community." Among the IBMers that "saw the potential in the technology and worked to introduce Smalltalk as a vehicle for understanding OOP [object-oriented programming]," I was prominently mentioned.

1983-1988: DDM & Smalltalk

 

Désolé, pas encore traduit.


Cover of a magazine celebrating 25 years of Smalltalk