Oliver Steele observes a significant division among programmers: the Language Mavens vs. the Tool Mavens. I want to reflect upon this distinction, and use it to make a point about the nature of programming. You see, for a long time I was a Language Maven, but now I am a Tool Maven.
Sir – your Nov 25 special report â€œManaging Complexityâ€ asked whether the manifest failures of software can be fixed by giving developers better tools. Some of the tools you discuss, so-called Lifecycle Management, will actually make things worse. Lifecycle Management is an ill-concealed attempt to impose a totalitarian regime upon software development. As such, it will inevitably fail, but only after having first caused much damage. Experience has shown time and again that successful
I discovered the creative exhilaration of programming at a formative age. Yet all along I have also felt stifled by primitive, ill-suited languages and tools. We are still in the Stone Age of programming. My quest is to better understand the creative act of programming, and to help liberate it. Reflection upon my own practice of programming has led me to three general observations:
This Manifesto is deprecated. My views have evolved, and a new version will be released “real soon now”.
Compared to every other field of design and engineering, programming is an embarrassment and a failure. The “software crisis” has dogged us from almost the beginning. We who have made programming our life will no longer tolerate this.