Re:What programming language should I start with?
by SwellJoe on Tuesday August 21, 2007 @04:07PM
(#44942)
"There is a well-worn path for beginners in PHP, with baby steps and encouragement all along the way."
Down that path lies madness. I've seen the newbie-focused tutorials for PHP, and it explains a lot of the garbage that passes for software in the PHP world. It is entirely possible to write good software in PHP (I'm reasonably impressed by the Dokuwiki and Flyspray code, for example), but you have to learn the language at least twice to get to that point. You learn it as a newbie, and learn horrible practices from the vast collection of misguided "help" in the Internet. You produce lots of code with those horrible practices...like no DB abstraction, inappropriate or no use of objects and encapsulation, and "gradually mix PHP into your HTML" design. And then you realize you've built an unmaintainable mess and start rewriting it with all of the better practices that have since been bolted on to PHP.
Of course, despite all of that I still recommend PHP for a large classes of application because it is pervasive, hard to make pathologically slow (whereas Ruby and Python can be made pathologically slow even by really good developers--see Plone for an example), and has a pretty large selection of libraries (some are so bad as to be counter-productive, but many are good). But as a newbie language it's rather toxic.
Down that path lies madness. I've seen the newbie-focused tutorials for PHP, and it explains a lot of the garbage that passes for software in the PHP world. It is entirely possible to write good software in PHP (I'm reasonably impressed by the Dokuwiki and Flyspray code, for example), but you have to learn the language at least twice to get to that point. You learn it as a newbie, and learn horrible practices from the vast collection of misguided "help" in the Internet. You produce lots of code with those horrible practices...like no DB abstraction, inappropriate or no use of objects and encapsulation, and "gradually mix PHP into your HTML" design. And then you realize you've built an unmaintainable mess and start rewriting it with all of the better practices that have since been bolted on to PHP.
Of course, despite all of that I still recommend PHP for a large classes of application because it is pervasive, hard to make pathologically slow (whereas Ruby and Python can be made pathologically slow even by really good developers--see Plone for an example), and has a pretty large selection of libraries (some are so bad as to be counter-productive, but many are good). But as a newbie language it's rather toxic.