Jim Brown, known as the chief architect of IBM's APL2, will be speaking on "APL2: the Early Years: Can you and should you compromise on technical issues?" at the APL Bay Area Users' Group on February 23rd, 2013. This talk was originally given at York University's commemoration of the 50th anniversary of the publication of Ken Iverson's book "A Programming Language".
APL2: the Early Years: Can you and should you compromise on technical issues?
Mathematical decisions are made by providing proofs and there is seldom a need to make arbitrary decisions. Yet Indiana bill #246 in 1897 mandated that the value of pi be set at 3.2 (although three other incorrect values for pi are mentioned in the bill). The bill did not become law but the case points out the folly of people attempting to decide technical issues by consensus.
Scientific matters should be decided by the evidence but often are supported by unproved hypotheses. For example, despite overwhelming scientific evidence of global warming, some choose to deny the validity of the premise.
Programming language design is much less exact. It involves issues of style and elegance that are subject to interpretation and taste.
It has been reported that decisions in the early days of APL were made by what was called "The Quaker Consensus" - decisions were deferred until all the parties agreed. As the APL community grew larger, the Quaker Consensus became impractical.
The technical decisions involved in the extension of APL to what became APL2 involved two sides with strongly held positions. I was responsible for the technical content of APL2 and I attempted to get agreement on as many facilities as possible.
While many of the compromises made in those days served to make APL2 a better notation, this presentation concentrates on compromise decisions that I made which I now regret. Some of these decisions were reversed before the production of the IBM Program product but others were not and remain in the language today.
Jim Brown's Ph.D. thesis contained many of the extensions to APL that put the "2" into IBM's APL2. He was IBM's chief architect for APL2. After retiring from IBM he founded SmartArrays with James Wheeler from STSC/Manugistics/APL2000.