A Glimpse of Trygve: From Class-oriented Programming to Real OO

By Jim Coplien

Though it’s called "object-oriented," C++ programming tends to be rooted in classes rather than objects. And while you can do OO programming in C++ if you work hard enough, some languages like Java make it almost impossible. While it’s likely that Dahl and Nygaard understood real OO, their Simula 67 language was limited in its expression of those ideas. Alan Kay later made the OO vision more concrete, named it, and even reduced much of it to practice around 1970. However, as Smalltalk evolved it became increasingly class-oriented. At one point Kay said that they should burn all the Smalltalk tapes and move on, but the world had fallen in love with itself and its preoccupation with classes. While a few object-oriented languages like JavaScript survived, most languages took the class direction.

Kay’s Vivarium started to take OO in the direction of emergent system behavior. While suitable for social phenomenæ like the Internet, it gives pause when considering Tony Hoare’s admonition: "I conclude that there are two ways of conntructing a software design: 1. Make it so simple that there are obviously no deficiencies 2. Make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” We’re still stuck with writing programs to deliver to the mental models of businesses and their stakeholders. While Kay took the emergent path, MVC took a human-centric path.

The open sourced trygve language is the world’s first attempt to create a language that faithfully implements the Data-Context-and-Interaction (DCI) paradigm pioneered by Trygve Reenskaug (inventor of MVC, too) and Jim Coplien (who proposed a bit of OO thinking in his Advanced C++ 25 years ago). In this talk we’ll give a glimpse of what OO is all about and talk a bit about how trygve supports it.





Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED


By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED



Settings can be changed at any time from the Cookie Policy page.