August 9 2005
This piece landed in my inbox twice today, and immediately caught my attention. It's well written, and makes some excellent points that I think are exactly on the mark. Paul Graham has elaborated on a similar theme of the pointy haired boss in Revenge of the Nerds, but where Kragen really nails it is in explaining that "enterprise software" doesn't need to work...
In this light, it's interesting to consider why Rails appears cleaner, more productive, and more intuitive than the leading enterprise frameworks right now. Could it be because it needs to work, having been forged under the pressure of some fairly dynamic requirements, and has remained a work in progress, evolving to match the speed, and changing needs of it's users and contributors. Instead of letting social and technical demands clash together, somehow the culture and community of Ruby has managed to successfully exploit this dynamic, and the benefits can be seen, not only in getting people flocking to the Ruby platform, but more importantly, promoting functional programming techniques and domain specific languages in general, and an overall emphasis on simplicity and elegance. These are all sound and significant ideas that have been proven to work time and time again over the past 30 or so years, so why does it seem the majority of working programmers know nothing about them? Thinking about this, it's easy to see just how dominant certain cultural and social assumptions and norms can be, even in a technical arena supposedly dominated by rational analysis and logic.
In fact, social assumptions are exactly what Ruby is doing right - so much more right than any of the other scripting languages at the moment it seems - orienting the language in a completely humanistic context first and foremost by focusing on the "joy of programming". That's more than just a nice ideal, it's what I would describe as fundamentally important. People will never be creative or productive if they can't enjoy what they're doing as a craft, and by realising this on a wider level, the open source movement has a tremendous opportunity to deal final crushing blows to the clumsy and oppressive enterprise software currently masquerading as "best in breed" products.
I studied sociology for some time, and still continue researching and reading within the discipline, and I've also worked with various enterprise applications that would definitely slot straight in to the model as vividly described, so not much of this is news to me. It's just great to see the growing recognition of just how deeply social the so-called "technical" decisions of managers really are and the growing reaction to this mediocrity.
This Note
Asides