>>14
I'm actually making bread doing this. And coincidentally, I'm working with another coder.
Perhaps you have assisted to one of Sun's presentations on why is J2EE so productive and maintainable. In Spain we have a proverb: "Tell me what you brag about and I'll tell you what you lack".
>>16
> shitty recursion
Even though most recursive algorithms have a faster iterative implementation, I think there are some improvements in the Zend Engine 2.
not thread safe
It is thread safe (?). You can't do threads though, as of yet. You don't do that for web applications, and you rarely use PHP for desktop applications, though.
PHP is crippled for commercial reasons
Not rly.
No namespaces
Inconsequently named functions
Agreed.
Magic quotes hell
Disable it.
...
Poor performance
Compared it to Perl and was about as fast, and the Zend Engine 2 is getting faster.
PROFIT
Lol commie, gb2/Cuba.
FACE IT REALLY SUCKS
Lol fanboy, gb2/GameFAQs.
>>17
Sometimes, I want a pointer.
So do I, but keep in mind this is a scripted, high level language, not C. References and variable variable/functions will rarely be insufficient.
No idea of namespace. Except maybe for classes, but even then the class definitions aren't namespaced.
Exactly. I want this fixed, too.
No componentization unless you kluge it yourself.
I'm used to, but it would be nice to have something like Perl does.
Desperately wants to be Perl, but desperately doesn't want to be Perl.
Lol, true. But I think this is a good thing. I'd rather say, desperately wants to be as productive and cool as Perl, but desperately doesn't want to be as messy as Perl.
No standard DB interface (well, except ODBC, but blech)
Agreed. Use ADODB or whatever. Coming soon: PHP Data Objects, to fix this.
All PHP community websites are written for non-programmer weinies.
Most surely. Not PHP's fault though.
No chained method calls. Please, someone tell me I'm wrong on this, but I couldn't make PHP understand $foo->bar()->baz().
That's because you're using PHP 4 for what it's not. Use PHP 5 for OO. It does support that.
No globals except by importation
Even though you can use the $GLOBALS superglobal, you shouldn't. Having to declare which globals you are going to use is a very good programming practice. Lots of globals isn't.
register_globals used to bite. At least it's now $_REQUEST, but that bites too.
You should actually use $_GET, $_POST, etc., and no, it doesn't bit, unless you're a really bad programmer, and we already said we're tired of them, right?
Arrays are hashes.
Less syntax, more simplicity, existing code easier to extend. This is actually one of PHP's features over Perl. And even though it's very fast, if you want more performance, use C.
PHP works best when you forget everything you've ever learn about good programming practices.
Not at all. Because of people thinking this, lots of the available PHP code sucks.
include() uses filenames. That's yet another namespacing thing.
Breaking news: You gotta define the final name of the file somewhere! And You can use variables, or whatever you want.
The built-in functions
I agree that they are named inconsistently and should be deprecated in favor of better names.
PEAR just ain't CPAN.
The world was not made in a day.
You can't interpolate array indices in strings.
Not rly?
No 'use strict;'
Once again, it's an scripting language. You're not supposed to do this. Even though I'd like to, myself. I hope next versions of PHP have support for this.
>>18
Holy shit man, you're a serious fanboy, collecting that many complaints. Unfortunately, most are repeated, and I have covered most already. Furthermore, they are outdated. There exist anonymous functions, there are more graphics libraries than GD, including a GUI library that's soon getting better, etc.
Finally, I'll _once again_ remind you all that PHP is a scripting language designed for productive development of web applications, also supporting system scripts. You aren't going to write an operating system with it, and no, it's not fully comparable to Perl because Perl is also suitable for lower level applications. What PHP is aimed at is a subset of Perl's. Then why should you use PHP? Because it's better for what it's intented on doing. Better as in better code, simpler systems (KISS), and shorter life cycles. Blaming PHP for not having, say, threads, is like blaming Perl for not having more direct hardware access and absolutely strict, defined, custom memory handling, or like blaming C for not having variant variables and native hashes.