Intended audience: PHP developers
Author: Toyvo Yanski, Feb 21, 2004
Let Us Stop Reinventing the PHP Wheels
Today is Saturday. The sun may rise and go down quietly outside my window completely unnoticed, for it is the monitor that gives me the light. I do not think I am a programmer. My major is in fact marketing, and I do not plan a career in software. But I often prefer spending weekends before the monitor, realizing the ideas I get during the week in small PHP scripts.
I am not alone. Many people do enjoy programming, and many a sleepless weekend has turned out into world-class software. Despite the numerous successes of large software companies, programming still leaves space for amateurs. Most importantly, it is the amateurs who explore the risky areas, and they are therefore the ones who discover the break-through technologies. Unfortunately, each of these rare successes comes at a price of a thousand of failures.
But are all those failures necessary? I don't think so. There in fact exists a very simple way of raising the efficiency and success rate of amateur development.
After developing about 10 different small projects, a typical PHP developer discovers that there are things that keep reappearing. Many projects share the same problems. User management, permissions, and templates are topping the list. This quickly leads the developer to developing his own style, or framework, including his own code libraries, development practices, and assumptions.
Stop for a minute and imagine just how tremendous is this waste.
Thousands of talented amateurs who enjoy programming are prevented from developing leading software in the areas of their professional or academic expertise by having to reinvent the wheel over and over again. Thousands of us spend hours developing a simple permissions module just to replace it in a month with a more complicated rewrite. And as anyone who has ever tried to integrate his projects into an existing system, such as PHPBB ( http://www.phpbb. com), will tell, it is often easier to code everything yourself than to make use of somebody's working but poorly documented solution.
For each of the problems that keep repeating, only one solution is needed. Some things are solved already. For example, the Smarty template engine ( http://smarty.php.net ) has once produced a little revolution in my coding style and principles. But I would argue that this is an exception.
There is therefore a huge demand for a PHP framework that would be simple to use, well-documented, and popular. While the demand comes from amateurs, the framework is so important that it has to be developed professionally – a robust, extensible, preferably object-oriented system. Just as an individual framework, it should not only consist of code libraries ( a great code library for PHP is PEAR, http://pear.php.net , but it is not a development framework), but also include a development philosophy that would improve the quality of the amateurs' contributions and make them compatible.
Maybe I will discover one day that there is no more need of passing the whole day before the monitor. Just a few hours would suffice. And as many more developers will find their labor more fruitful, thousands of great applications will emerge. Is it a dream? I hope it is rather a vision.
Toyvo Yanski
|