3 ms·
I disagree. PHP is objectively worse than Ruby, Python or Perl in practically every regard with the exception of ease of deployment. A language that loses sourc
by Daishiman 17y ago
I disagree. PHP is objectively worse than Ruby, Python or Perl in practically every regard with the exception of ease of deployment. A language that loses source compatibility in point releases, has no consistent syntax or conventions, crappy toolset, half-assed object orientation and worthless functional aspects, is neither expressive nor terse... I could go on and on.
I have yet to see a fraemwork built on PHP that can match Django or ROR in terms of features or ease of use, starting from the fact that the language makes development of adequate template parsers or ORMs much more difficult given the lack of metaprogramming facilities. Oh, and while having fewer features it's also slower than the other language's reference implementations.
The only advantage PHP has is the preponderance of available developers and libraries (and those libraries allow to shoot yourself in the foot much more easily than the alternative languages by virtue of being just plain worse. Wake me up when there's something comparable to SQLAlquemy or Beautiful Soup on PHP). They're actually very significant advantages, but speak more about its legacy and inertia rather than any technical advantages.
- mpf62 17y ago"... with the exception of ease of deployment" Sometimes, this actually is a significant (technical) advantage. Of course, PHP is not perfect, but which language is? Sometimes, even the old VB(A/S) can be the best choice to solve a given problem. In my opinion, languages aren't the end in itself - they're just tools. I've get to know programmers that use "kiss-ass" technologies but cannot solve (business) problems. Again, an example I've mentioned before: I you have no idea what the "De Casteljau"-algorithm is about, how could you implement a adequate solution for a given problem with any technology? But if you do, there's not so much difference implementing it with Canvas/JavaScript, SVG, VML, Whatever.