The problem with the defense of PHP as a harmless beginner's tool is that often once people become familiar with it they go on using it! And so we find ourselves grinding away countless hours dealing with large codebases in a language pretty much everybody admits is fundamentally badly designed. I suppose I don't mind that much because I would never take a job working in PHP myself but we certainly don't tolerate this kind of professional laziness in medicine or science or proper engineering. Maybe that's why people don't accord programmers the same respect?
Listening to PHP apologists defend PHP is like listening to real estate developers boast about all the houses they've built and sold despite using cut rate materials and labor. Bully for you if you're getting away with it but I certainly wouldn't boast about it.
Remind me again which percentage of websites runs PHP. (Hint: it's the majority.)
But beyond popularity, there have been a lot of nice improvements over the past few versions (PHP 5.6 is definitely better than PHP 5.2) with even more to come in PHP 7.
To boot:
* register_globals is finally dead
* magic_quotes, as well
* PDO does a lot of the work cleaning up SQLi (I wrote
a class that does even more)
* hash_equals() makes securing OAuth implementations
against HMAC comparison timing attacks a trivial
undertaking
* session_id() uses /dev/urandom
* opcache (5.5+) helps to make PHP app more performant
* [ $array, $syntax, $that, $doesnt, $suck ]
* You can now use \Proper\Namespaces; and autoload class
dependencies!
Not to mention some of the community innovations:
* Composer, while still trapped in curl | php hell (I'm
working to fix this), makes dependency management
simple so you can get on with your day.
* Twig brings Django-esque templates to PHP-land, which
is _awesome_ if you need to work with a designer who
is only used to working with Django and its derivatives.
* HTMLPurifier is probably the sexiest thing the PHP
community offers that I have not seen produced in
another language (the HTMLPurifier port to Obj-C
notwithstanding)
If one were to judge PHP 5.6 by a PHP 4.3 understanding, they would almost certainly be wrong.
PHP 7 allows us the opportunity to break BC. If you dislike something about PHP 5.6, let it be known so it can be fixed in 7.
Also, the irony of a thread whose title is to not denigrate what beginners are learning has turned into "let's bash PHP". Y'know, because no developers are currently learning PHP and might one day read this discussion.