As I’ve said before, and the folks from lesscode.org continue to prove, simplicity really has come full circle from perjorative to virtue – technologically speaking, anyway. But the interesting thing is that simplicity is not an end state, it is rather a moving and very dynamic target.
Following my talk last week, a very polite gentleman from Microsoft (I won’t name him, but if he wanders across this he should feel free to identity himself) approached me and asked a very simple question: how many products was I aware of that managed to maintain their simple approach over a sustained period of time? It was a great question, and frankly one that I still can’t answer all that well. Google maybe – though one could argue the point with the introduction of Google Fusion, I suppose, and Linux perhaps. Craigslist also has preserved much of its original simplicity.
But irrespective of how many examples I could come up with, the point is well taken. Simplicity is relatively easily accomplished at the beginning of any project lifecycle, but gets progressively harder over time. In an industry that prizes innovation and new features, a dedication to simplicity can be seen as stagnation or a disturbing lack of energy. More problematic for the technologies, simplicity can be seen as the antithesis of growth – the single metric by which most if not all commercial entities are judged.
So it is that we see a couple of key members of the LAMP stack adding features that answer needs yes, but may also impact complexity. PHP’s evolving from its scripting roots to a more object oriented approach, while MySQL is adding in features such as triggers and stored procedures that it lacked previously. In short, both are becoming more functional which may be good, at the expense of simplicity, which could be less so. In both cases we’ll have to see what if any impact this product evolution has on the overall simplicity, as that’s been a major selling point for MySQL and PHP in my experience.
This discussion is by no means limited to MySQL and PHP, of course; the balance between simplicity and complexity is something that most technology providers will continue to face as they evolve to meet customer and partner needs. While I regrettably don’t have any hard and fast rules to hand over as guidance, I’d just remind vendors first that listening to your customers (me, Joel) can be both good and bad, and second that whatever path they choose – try and get there with less code.