Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Presentations Engineering(,) A Path to Science: "I don't want to die in a language I can't understand"

Engineering(,) A Path to Science: "I don't want to die in a language I can't understand"



Richard P. Gabriel expands upon “Mixin-based Inheritance” by G. Bracha and W. Cook, observing that software engineering precedes science and incommensurability can be used to detect paradigm shifts.


Richard P. "Dick" Gabriel overcame a hardscrabble, working-class upbringing in the dreadfully industrialized and famously polluted Merrimack Valley of eastern Massachusetts to become one of the few genuine Renaissance men to emerge from the OO milieu: scholar, scientist, poet, performance artist, entrepreneur, musician, essayist, and yes, hacker...

About the conference

Clojure/West is a new conference bringing the Clojure community together to discuss techniques, tools, and the state of the Clojure ecosystem March 16-17th for three tracks of sessions. Prior to the conference, register for three days of training by the Clojure experts.

Recorded at:

Sep 14, 2012

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Interesting general point - not sure on the specifics

    by Paul Beckford,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Gilads paper was my intro to Mixins and this talk prompted me to go back and take another look:

    To be fair to Gilad and Cook, the criticisms made of the CLOS approach is that you need to know all the Mixins in the hierarchy and how they will be linearised to use the approach reliably. So perhaps it is a modular approach, but it comes with an extensive cognitive load and it does break encapsuation. You need to fully understand the workings of all of the "the system" bits to use it.

    The point about khunian paradigm shifts and incommensurebility is well made however. Who is to judge? Without extensive hands-on experience with these differing approaches who can say which is more reliable or not? To some degree it is subjective.

    Unlike the physical sciences we have no external world to test our hypothesis against. Software creation happens in the mind and what is an effective approach for one person may prove a nightmare for another. Cognitive bias reins supreme!

    You can see this with the recent adoption of dynamic languages. With static language programmers having to gradually overcoming their initial bias.

    Btw. Modern day Mixins in a language like Ruby break encapsulation too, so perhaps Richard has a point :)

    Great content InfoQ. More of this please!!

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p