Give us a CLU: Object Oriented Programming pioneer arrives on GitHub
No, not the 1980s TV show where Lionel Blair attempted to mime data abstraction to Una Stubbs
Retro fans, rejoice! A bit of digital archaeology has turned up a working early version of the CLU programming language and the files needed to create it uploaded to GitHub.
Unearthed by Lars Brinkhof, the implementation (with files mostly from 1976-1978) is an intriguing insight into the Object Oriented Programming concepts and other ideas that found favour in later programming languages.
In a history of the language [FTP PostScript file] its creator, Turing award winner and MIT professor Barbara Liskov, noted it was "the first implemented programming language to provide direct linguistic support for data abstraction."
"A data abstraction," explained Liskov, "is a set of objects and operations." Programs that accessed the objects did so via operations that gave a means to observe and modify the object's state.
The data abstract was implemented by a "cluster", which held both description and implementation of the operations. Hence the name "CLU" (rather than the Codified Likeness Utility of Disney's 1982 film Tron).
Liskov – who is responsible for the Liskov substitution principle and is also lauded for her work on chess programming's killer heuristic – reckoned that around 14 person years were spent on CLU from the early designs in 1973 through to the production compiler in 1980, with most of the work undertaken by herself and her students until 1978. It has been said that CLU laid the groundwork for languages like Java and C#.
- Imagine a world where Apple shacked up with Xerox in the '80s: How might it look today?
- Mac OS X at 20: A rocky start, but it got the fundamentals right for a macOS future
- Trail of Bits security peeps emit tool to weaponize Python's insecure pickle files to hopefully now get everyone's attention
- The evolution of C#: Lead designer describes modernization journey, breaks it down about getting func-y
However, despite its innovation, the language was not the roaring success it perhaps should have been. Liskov cited a focus on performance over portability that made it hard to move the language to other hardware. It wasn't promoted or handed on to a vendor for productisation and "we made a number of decisions that followed from our view of CLU as a research vehicle but that made it highly unlikely for CLU to succeed in the marketplace."
Still, we're delighted to see the compiler put in an appearance thanks to Brinkhoff, although you'll need a PDP-10 (or most likely an emulator) to run it up.
Brinkhoff told The Register: "For me, this is part of my ongoing interest in restoring and reviving ITS – MIT's fabled Incompatible Timesharing System.
"As a youngling I was deeply imprinted by reading Hacker's Dictionary, a book by ITS hacker, Lisp guru, and programming language designer Guy Steele. My research eventually lead me to MIT's archive of PDP-10 tapes called 'ToTS' – Tapes of Tech Square. It's not open to the public, but MIT graciously allowed me access. From time to time, I will suggest to MIT staff various interesting filesets to make public."
"I find it fascinating," he added, "that ancient programs can be unearthed and run perfectly fine even today.
"Maybe someday future historians will find it useful to examine these old artifacts."
Or perhaps those in the present. There are plenty of lessons for the designers of the languages of today to be gleaned from work done decades previously. ®