Eric Raymond has popularized the Ghandi quote (“First they ignore you. Then they laugh at you. Then they fight you. Then you win.”) in the context of the open source movement. Danny O’Brien had a great keynote at OSCON on this topic.
I was thinking about the parallels of the open source movement to the object-oriented movement in the 80’s. In the beginning, there was Smalltalk (with all deference to the Simula roots — that was the ignoring part) which was the “pure” object-orientation. Then came Objective-C which was the “evolutionary hybrid”. I sat through the obligatory “What is Object-Orientation” slide (1. Encapsulation. 2. Polymorphism. 3. Inheritance) thousands of times. That was the laughing part.
Then came the fighting part. Object orientation ceased being a binary (is or ain’t) discussion — they were all “hybrids”. C++ and Java. Perl and Python. PHP. We got object oriented COBOL. And object oriented Fortran. And, of course, object oriented Basic.
When every programming language is object-oriented (for some definition of object-oriented), one has reached the “then you win” stage. Then what happens? We have no guidance from Gandhi.
In a similar vein, following the ignoring phase, we got Linux (which arguably began the laughing phase) and the thousands of “What is Open Source” slides (1. Run 2. Study 3. Distribute 4. Modify) — followed by the hybrids in the fighting phase. And then, one sees the Microsoft Windows XP release notes (KB306819). From which I quote:
Copyright 1985, 1988 Regents of the University of California. All rights reserved.
Copyright 1998-1999 Greg Roelofs. All rights reserved.
which presumably refers to an open source implementation of PNG. There are more such copyright statements embedded therein. So, for some definition of “open source”, Microsoft Windows XP is open source. That is to say, it contains open source components — it is “hybrid open source”. I guess that marks the “then you win” phase.
Then what happens? Well, in Gandhi’s case, one needs politicians, and the work of governing must go on, but the work of the revolutionary is done. In the object-oriented (and open source) case, there is implementation work related to specific technologies, products, and industries — but the work of evangelism is done. You can still attend OOPSLA — but the “What is Object-Orientation” presentations are gone.
Different people will define victory differently. But, given that you think you’ve won, then what do you do?
You do something else.