The Feyerabend Project
An Invitation to Redefine Computing
Presented to you by Richard P. Gabriel
Fifty years into the First Computing Era some of us in the computing arena have come to realize we’ve made a false start that can’t be fixed, and for us to finally be able to produce lasting, correct, beautiful, usable, scalable, enjoyable software that stands the tests of time and moral human endeavor, we need to start over. Perhaps we’ll be able to salvage some of what we’ve learned from the First Era, but I expect almost everything except the most mathematical fundamentals to be brushed aside.
I am putting together the most diverse group of 75 people possible in a remote but subtly beautiful locale, facilitated by MG Taylor to reinvent computing. The result of the 2-week event will be the first steps for a roadmap for massive rebuilding of computing - both as a theoretical endeavor and as a practice - and for the plan to accomplish it. The reinvented New Hillside Group will form the core of the rebuilding effort.
The year 2000 is a particularly fertile grey zone - it is the year that some firmly believe is in the 20th century and others believe is in the 21st; some place it in the second millennium, others in the third. It is not clearly in either century or millennium - and it is a time out of time, a place without place, whose inescapable imperatives can wander beyond fixed prior thinking. It is a time in which we can stand apart and that will never be fixed as one place or as one time.
Polemic in Support of the Proposed Effort
In recent years some have come to realize that the following basic assumptions and historical accidents behind today’s computing theory and practice have created harm beyond repair:
- Computing theory was first developed as a branch of computability theory based on a particularly inexpressive set of mathematical constructs. The proof of their universality under certain assumptions and equivalences to other mathematical constructs under others have irreparably boxed us into a realm of almost blinding inexpressiveness.
- Early computing evolved under the assumption that the only uses for computers were for military, scientific, and engineering computations, along with some need for building tools to support such activities. We can characterize these computational loads as numeric, and the resulting computational requirements as Fortran-like. Early attempts to expand the realm of computing - such as John McCarthy’s valiant attempt at Lisp and AI, Kristen Nygaard’s similar attempt with Simula, Alan Kay’s later attempt with Smalltalk, and David Warren’s attempt with Prolog - were rebuked, and the very architecture of almost every computer today is designed to optimize the performance of Fortran programs or its operating-system-level sister C. Further, attempts to consider neuron-based, genetic, or other types of nonstandard computational models were soundly rejected and snubbed until the middle of the 3rd decade of the First Era.
- Programming languages have moved not one scintilla off the designs in the first few years of computing. All significant programming languages are expressively equivalent and as humanly degrading as Fortran and assembly language - the direct descendants of Turing computability based on Von Neuman machines. Programming today is the intellectual equivalent of picking cotton, with the same overtones of class structure. For example, it is currently not permitted for a developer to refuse to implement a faulty or unsafe program unless he or she is willing to be fired for insubordination. Lawyers are provided more avenues for ethical and moral behavior than programmers.
- Software development methodologies evolved under a mythical belief in master planning. Such beliefs were rooted either in an elementary-school-level fiction that all great masterpieces in every discipline were planned, or as a by-product of physicists shovelling menial and rote coding tasks to their inferiors in the computing department. Christopher Alexander has run into the same set of beliefs in the building trades, and this uniquely Cartesian view of the world is currently setting back progress at an alarming pace.
- High-octane capitalism has created a nightmare scenario in which it is literally impossible to teach and develop extraordinary software designers, architects, and builders. The effect of ownership imperatives has caused there to be absolutely no body of software as literature. It is as if all writers had their own private "companies" and only people in the Melville company could read Moby-Dick and those in Hemingway’s could read The Sun Also Rises. Can you imagine developing a rich literature under these circumstances? There could be neither a curriculum in literature nor a way of teaching writing under such conditions. And we expect people to learn to program in exactly this context?
- Distributed systems - the gold standard of computing today - requires that vastly diverse, dispersed, and different-minded people - and massive numbers of them - contribute to each large software system. Each such system never goes down, it can’t be recompiled from scratch, it can never be in total version coherence, it must have parts that depend on everything that has ever been developed. Even in a monolithic system we find the same thing. For every major operating system, there are people who absolutely demand and rationally require the newest backwardly incompatible features, and others who absolutely and rationally require the oldest features to remain as they are forever. Every single programming language we have is predicated on the physicists’ model of figure it out, code it up, compile it, run it, throw it away. All our computing education is based on this, all our methodologies, all our languages, environments, tools, attitudes, mathematics, prejudices, and principles are based as solidly and firmly on this rock as Gibraltar is based on the stone it rests on. Many if not most development headaches come from precisely this problem, one that programming language theorists ridicule. Every attempt to define a language to handle this or a computing device to make it simpler is met with laughter and rejection. And all this in the face of the fact that the reality of programming must be based on precisely the opposite assumptions: Everything changes, every version is necessary, evolution happens.
- Computing practice and theory is based on the very hidden and hard-to-reveal assumption that engineers, mathematicians, and computer scientists are the only ones who will write a program or contribute to a software system. When computing started, no one but scientists and the military even remotely conceived of the utility of programs and programming. Today, almost every business and human pursuit is built on computing and digital technology. Artists, craftspeople, writers, fishermen, farmers, tightrope walkers, bankers, children, carpenters, singers, dentists, and even some animals depend on computing, and most of the people I mentioned want to have a say in how such software works, looks, and behaves. Many of them would program if it were possible. The current situation might feel fine to some of you, but suppose all computing were based on the needs of tightrope walkers? Hard to imagine. What we’ve created is hard to imagine for them.
- Computing is based on utility, performance, efficiency, and cleverness. Where are beauty, compassion, humanity, morality, the human spirit, and creativity?
Program of Effort
Seventy-five people will be chosen from all walks of life and human endeavor. Some individuals in the group will be brilliant, others less so. The handicapped, hopeful, and full in heart will be invited. Prospective members of the New Hillside Group will be invited. This combined group will meet for 2 weeks in early August 2000 in Kamchatka near the Valley of Geysers. Under the guidance of Matt and Gail Taylor, we will lay out the requirements and directions for computing in the Second Era. Every aspect of computing will be wiped off the table and we’ll start fresh. The disturbingly different and challenging backdrop of Kamchatka will be our muse along with the deepest parts of the human spirit. Days will be unbearably long, and the stakes frightening. Reinvention of this order has never been done before.
For one year after the event, the prospective members of the New Hillside Group will create a narrative that will guide the emergence of the Second Era. Though every part of it may fall by the wayside as its creation unfolds - indeed as those parts must fall away by the needs of that very document - this narrative will remain the masterpiece of human creation for the next 100 years.
Who will become the founding members of the New Hillside Group?
The Invitation, Plainly Stated
I have chosen you; please join us.