What PHP represents 16849
I'm not trying to propogate a flame war - I think this kind of debate is good and educational.
I must disagree though about the aspersions being flung about here. There was some very well-argued debate regarding typing on the list recently. Some poeple like strong typing, some like dynamic typing, some liked other flavours. Most agreed that the approach taken by PHP wasn't instrinsically flawed in any way - but some felt more at home with other approaches to the issue.
I think PHP would benefit from changes to the things Chris explicitly mentions - i.e. case sensitivity in function names and some way of better managing the namespace. And the change to object references, and the try...catch construct in PHP 5 is very welcome. But beyond that, I can't think of anything within PHP which I think is poorly designed - I don't feel like I'm making a compromise by developing in PHP rather than Perl or Java or C.
If you think differently tell us why.
If you get it stable, don't change it. Or you are hosed
I have come to the realization that if you ever get linux working, don't change a thing. I ran Xandros 3.0 yesterday. It was all starting to work great. Took me 6...
I've already mentioned there are some fundamental things which changed from 4 to 5. But IMHO PHP is a lot more 'stable' in this regard than a lot of other tools. Admittedly Perl, Java and C have seen little change in recent times but can the same be said of *anything* out of Redmond? Have you started migrating to Apache 2 yet? What about Linux - its had 3 different firewall tools in the last 4 major revisions - and the process and I-O schedulers keep changing too.
What I keep coming back to is this: PHP doesn't define architecture, it doesn't define the rules by which you build applications - should it? Even using a different set of tools, you need to integrate development with testing. Both unit testing and integration testing (preferably continious integration). PHP allows these structures to evolve - because I don't think they are mature yet for any platform.
Consider this example - suppose we have a function like strtok() - i.e. splits up a string 'subject' using a string 'div'. It doesn't matter if the typing of the language is strict and static, if it is compiled or interpreted, the language can't spot the difference between: mysplit(subject, div) and mysplit(div. subject)
I wouldn't. There are a lot of things that need to be learnt about how to use PHP but for the PHP developers to take responisibility for this may lead to the language being restructured to fit in with the 'rules' when the 'rules' themselves may be flawed. I also think PHP has got the balance right between simplicity and functionality.
I try to stick to the PEAR style guidelines - but mostly I don't use PEAR clbuttes in my programs. I use PHPDoc and phpunit. But I know why those tools are important. To say to a new developer - you must write your code this way, using these tools and practices just creates boundaries to participation.
Linux Advocacy Newsgroups