Following thread of PHP6 Wish List? started by Rasmus at
http://marc.theaimsgroup.com/?l=php-dev&m=112386891931477&w=2 outline the vision on PHP6 development.
Recently The Register publicated an article about Evans Data Corp
http://www.theregister.co.uk/2005/08/04/php_evans/ asking if PHP is loosing popularity among developers. I'll try to reproduce my vision on the problem with the help of ideas gathered from some boards and mailing lists. It is only my IMHO, but I hope it will be no less valuable, than an IMHO of some corporation.
For me the main problem with PHP is a OO big mistake. Not the weak OO concept support in PHP4, but overburden PHP5 alternative and accent put in this direction. PHP was easy-to-start, easy-to-learn and easy-to-develop. While the language grows up, the complexity increases and now it is not the same PHP as before. Let me outline three key elements of former PHP success:
1. PHP philosophy: RAD, convenience through simplicity, transparency (of types and data operations – i.e. intuitive API) and extensibility to get clear API from obscure libraries
2. Documentation, user notes and easy looking bugtracker (read – full feedback)
3. Neutrality to all zombie-minded licensioning issues from GPL to software patents
I remember my experience as new user of PHP having some programming experience before. After my first freaky HTML page I've read PHP tutorial, because I wanted to add something dynamic to the process. I was imagined by xCHM doc design and then just pressed next->next->next to get another idea of how simple can be programming. Constant problems with memory pointers and burdened string operations gone away while in C they made me spent hours staring at letters and symbols instead of application logic. Associative arrays are the greatest invention in PHP. Even now I feel pain studying. NET framework and writing long-long sentences just to execute the query and make some operations on the data, making exception handler for every query! Disaster.
I do not need OO PHP like Java – I already have Java. I don't need PHP with strong typing – I already have C#. I need PHP with it's compact, intuitive and useful function library and language concepts to connect this functionality rapidly.
..that's all for now.. to be continued.. next time I get enough resources and inspiration..
[ cut savegame ]
Phrase invoking method doesn't reflect the things, that you do every day to solve the problem, actions that you make on your way. While you indeed operating on the object, the main point is that you need to do something. And you need to get_something_done – not WhoActions(Something:Anything->Get(.Done()).ForME()).theWayILIke(). I prefer to have PHP and PHP OO separated.
I do not feel like I need OO stuff to formalize my brains to operate with objects and methods. Even if the world is consisting of objects what you do in programming is managing information flows. For me object is not a thing with properties and methods, but a collection of inputs and outputs. For the purposes of get_something_done you need to chain these blackboxes and not to mess with these inheritances, polymorphism and other complications. Although OO has it pluses, I think one should first make it clear – what tasks are better to solve with OO and when it would be better to design framework-like naming conventions and manage operations without «class stuff {" wrappings