| Sure, it scales. But it isn't a very good language. (The word "blub" comes to mind.) Here are features I like to have (in no particular order): * lexically-scoped variables (and closures)
* lambdas
* continuations
* macros
* an object system with a MOP (PHP and Java fail miserably here)
* powerful regex engine (can be added via libraries, so not too critical)
* extensive module library
* flexibility (I want to write code my way, not the way someone else thinks I should write it; bye bye, Python.)
Things that are nice to have: * multiple dispatch OO
* partial evaluation
* laziness
PHP has none of these features. That's why I don't use it and don't recommend it. And oh yeah... PHP is a templating system too. I would rather get that as a library, not a core feature. (But I won't count that against them.)So what language does have all these features? None :) But, Lisp and Perl are good compromises. CL does everything except continuations and having a decent module library; Perl does everything except have pretty syntax and macros. Sadly neither of those languages has (by default) the "optional features", which is a shame. I ranted about this on my blog: http://blog.jrock.us/articles/Syntax%20and%20features.pod Anyway, PHP is junk in terms of a programming language. It's fine if you don't know how to program, don't know what abstraction is, and don't like using libraries. |