<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Stop Hating On PHP And Learn To Code Better</title>
	<atom:link href="http://www.webdevelopment2.com/php-sucks-boy-am-i-tired-of-hearing-this/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webdevelopment2.com/php-sucks-boy-am-i-tired-of-hearing-this/</link>
	<description>Quick and Dirty Web Development for Web 2.0: CakePHP, Prototype, JQuery, and lots more.</description>
	<lastBuildDate>Mon, 15 Mar 2010 04:27:24 -0600</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: The developer carnival - November 20, 2008 &#171; Developer Carnival</title>
		<link>http://www.webdevelopment2.com/php-sucks-boy-am-i-tired-of-hearing-this/comment-page-1/#comment-27579</link>
		<dc:creator>The developer carnival - November 20, 2008 &#171; Developer Carnival</dc:creator>
		<pubDate>Thu, 20 Nov 2008 20:55:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.webdevelopment2.com/?p=311#comment-27579</guid>
		<description>[...] Old presents Stop Hating On PHP And Learn To Code Better posted at Web Development 2.0: Web Design, CakePHP, Web [...]</description>
		<content:encoded><![CDATA[<p>[...] Old presents Stop Hating On PHP And Learn To Code Better posted at Web Development 2.0: Web Design, CakePHP, Web [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: deltawing</title>
		<link>http://www.webdevelopment2.com/php-sucks-boy-am-i-tired-of-hearing-this/comment-page-1/#comment-27529</link>
		<dc:creator>deltawing</dc:creator>
		<pubDate>Fri, 13 Jun 2008 01:17:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.webdevelopment2.com/?p=311#comment-27529</guid>
		<description>I have a question.

What part of &quot;pick the tool that fits the job&quot; do some people tend not to understand? :-)

And it&#039;s not all about the technology itself. You need to take into issues such as knowledge gaps, skills gaps, time, money, extensibility, and more ...</description>
		<content:encoded><![CDATA[<p>I have a question.</p>
<p>What part of &#8220;pick the tool that fits the job&#8221; do some people tend not to understand? <img src='http://www.webdevelopment2.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>And it&#8217;s not all about the technology itself. You need to take into issues such as knowledge gaps, skills gaps, time, money, extensibility, and more &#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Baz L</title>
		<link>http://www.webdevelopment2.com/php-sucks-boy-am-i-tired-of-hearing-this/comment-page-1/#comment-27516</link>
		<dc:creator>Baz L</dc:creator>
		<pubDate>Mon, 02 Jun 2008 19:44:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.webdevelopment2.com/?p=311#comment-27516</guid>
		<description>OFL!
I canâ€™t help but smile. You made a lot of very good points. And please understand, by not means am I a PHP evangelist. In this very post, Iâ€™ve mentioned my interest in Ruby on Rails.

But you seem to be missing the point: For what it does (which is getting a website out of the door with a minimum of fuss and muss) PHP is pretty well suited for itâ€™s task.

A problem that a LOT of developers have is not realizing when their projects have reached the limits of PHP (at least with no framework attached). They keep on plugging away and then complain about PHPâ€™s limitations.

@Eevee: Clearly, from your vast list of problems, you have come to a point where PHP no longer suits what youâ€™re trying to do. And thatâ€™s fine, but ot say that it isnâ€™t suited for â€œanything more complicated than a page counterâ€ is exactly the type of whining and complaining Iâ€™m talking about.

Man used to hunt with a rock. Just because we now have guns, doesnâ€™t mean a rock still canâ€™t bash someoneâ€™s head in.</description>
		<content:encoded><![CDATA[<p>OFL!<br />
I canâ€™t help but smile. You made a lot of very good points. And please understand, by not means am I a PHP evangelist. In this very post, Iâ€™ve mentioned my interest in Ruby on Rails.</p>
<p>But you seem to be missing the point: For what it does (which is getting a website out of the door with a minimum of fuss and muss) PHP is pretty well suited for itâ€™s task.</p>
<p>A problem that a LOT of developers have is not realizing when their projects have reached the limits of PHP (at least with no framework attached). They keep on plugging away and then complain about PHPâ€™s limitations.</p>
<p>@Eevee: Clearly, from your vast list of problems, you have come to a point where PHP no longer suits what youâ€™re trying to do. And thatâ€™s fine, but ot say that it isnâ€™t suited for â€œanything more complicated than a page counterâ€ is exactly the type of whining and complaining Iâ€™m talking about.</p>
<p>Man used to hunt with a rock. Just because we now have guns, doesnâ€™t mean a rock still canâ€™t bash someoneâ€™s head in.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eevee</title>
		<link>http://www.webdevelopment2.com/php-sucks-boy-am-i-tired-of-hearing-this/comment-page-1/#comment-27513</link>
		<dc:creator>Eevee</dc:creator>
		<pubDate>Fri, 30 May 2008 20:30:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.webdevelopment2.com/?p=311#comment-27513</guid>
		<description>It doesn&#039;t have problems that make it fundamentally unusable; just problems that make it not as good a solution as other tools.  A lot of large sites presumably use it because it is popular, and it is popular because embedding extremely lax source code within HTML let a lot of nonprogrammers get their foot in the door.  Popular things do not become popular necessarily because they are good; they become popular because they are good *at getting popular*.

I&#039;ve never heard ORM used as an argument about PHP before I read this post, and I&#039;m not using it as one myself.  I&#039;m just pointing out that ORM use seems to be unusually uncommon within the PHP world, which may explain the complaints *you* have heard.  Personally, I would blame this on what I perceive to be a disproportionately large number of amateurs within the PHP community.

It has PLENTY of issues, and there is nothing about it that makes it significantly better than other languages.  I can name plenty of issues I have with Perl or Python, too, but they are mostly design disagreements or backwards compatibility.  PHP&#039;s are more fundamental problems with consistency, unexpected side effects (often in the name of being &quot;easy&quot;), disorganization, missing/broken features, and all manner of other such roadblocks that make PHP take far more effort to work with than should ever be necessary.

Lack of closures alone is almost a deal-breaker; they are an odd feature but have left me with much simpler and cleaner code on numerous occasions.  Functions aren&#039;t first-class objects at all, so there are no function pointers.  The cavalier attitude with errors or warnings (essentially &quot;never ever break no matter how absurd the alternative&quot;) makes it harder to find problems and doesn&#039;t yield results much better than an error page.  The function library is useless unless I look through the thousand-function manual every time I want to do something -- and make sure I pick the right one out of two dozen alternatives.  Substitution with eval is completely broken.  Database access is STILL a mess; SQL injection is rife in PHP code as the manual still doesn&#039;t even advise using prepared statements, so a lot of wild code is full of mysql_real_escape_string and magic_quotes and whatever other manner of layers of hacks to work around a problem that was solved a decade ago in every other language.  The object system is a joke; there are no friends, static methods don&#039;t know what class they&#039;re being called on, constructors can&#039;t be variadic, equality can&#039;t be overloaded..  There&#039;s no module handling or versioning.  There&#039;s nothing to hold a torch to CPAN; there&#039;s PEAR, but it seems oft-neglected, so the common case is to just use the myriad of builtin functions and roll your own if you need anything else.  Since everything is built in, if you need a module your host hasn&#039;t compiled support for, you&#039;re screwed -- whereas installing any version of any module locally in Perl or Python or Ruby is easy.  Unicode is a joke.  Arrays and hashes are intermingled, giving a very ambiguous sense of when I&#039;m using which (what if I want a hash with numeric keys?  I&#039;ve done this half a dozen times, but needed an ordered hash only once in my life) and leading to yet more cognitive overhead; array functions also become far more complicated than they should be, as they have to account for any sort of combination of the two.  References aren&#039;t really references, and there are no weak references, which makes avoiding circular references a lot more convoluted in some cases.  Embedding code within HTML is, again, a terrible idea.  Strings and numbers are the same sort of variable, but there is neither real typing nor different operators for comparing each, so there&#039;s more for me to worry about even when comparing values.  Array access syntax is broken; I can&#039;t write something_that_returns_an_array()[$i].  Reflection is a pain and inconsistent with the rest of the language anyway (suddenly OO?), but the lack of first-class functions doesn&#039;t help.  The sigils ($) don&#039;t even have any reason to exist, unlike in Perl where they denote variable dimensions, but they permeate the language anyway.

High-level languages are supposed to be a tool, to do work for me that I shouldn&#039;t have to worry about.  PHP might as well be the assembly language of Web programming: a large mass of functions but little functionality outside of that.  Little things like comparing numbers to strings might seem trivial, but when you have some quirk or side effect to worry about on every other line, it becomes a monumental distraction from just writing code and makes avoiding bugs that much harder.

The other languages are richly-featured and well-designed.  Even Perl 5, suffering from more or less backwards-compatibility with Perl 4, manages to remain powerful, flexible, and mostly consistent.  They all have built-in and simple reflection, functional programming constructs for when they make sense, fully-featured CGI libraries and rich sets of other third-party libraries (all in their own central packaging systems and loaded by real module support), rich OO support, and very simple standard libraries that do a small set of operations well.

I have never heard a compelling reason to use PHP for anything more complicated than a page counter.  Even the Web-targeted features in PHP are ones that tend to be avoided in larger projects, where more organization is needed and frameworks should be taking over.  It works, sure, but that is a trivial milestone to pass, and there is nothing about it that makes it work better than another scripting language.</description>
		<content:encoded><![CDATA[<p>It doesn&#8217;t have problems that make it fundamentally unusable; just problems that make it not as good a solution as other tools.  A lot of large sites presumably use it because it is popular, and it is popular because embedding extremely lax source code within HTML let a lot of nonprogrammers get their foot in the door.  Popular things do not become popular necessarily because they are good; they become popular because they are good *at getting popular*.</p>
<p>I&#8217;ve never heard ORM used as an argument about PHP before I read this post, and I&#8217;m not using it as one myself.  I&#8217;m just pointing out that ORM use seems to be unusually uncommon within the PHP world, which may explain the complaints *you* have heard.  Personally, I would blame this on what I perceive to be a disproportionately large number of amateurs within the PHP community.</p>
<p>It has PLENTY of issues, and there is nothing about it that makes it significantly better than other languages.  I can name plenty of issues I have with Perl or Python, too, but they are mostly design disagreements or backwards compatibility.  PHP&#8217;s are more fundamental problems with consistency, unexpected side effects (often in the name of being &#8220;easy&#8221;), disorganization, missing/broken features, and all manner of other such roadblocks that make PHP take far more effort to work with than should ever be necessary.</p>
<p>Lack of closures alone is almost a deal-breaker; they are an odd feature but have left me with much simpler and cleaner code on numerous occasions.  Functions aren&#8217;t first-class objects at all, so there are no function pointers.  The cavalier attitude with errors or warnings (essentially &#8220;never ever break no matter how absurd the alternative&#8221;) makes it harder to find problems and doesn&#8217;t yield results much better than an error page.  The function library is useless unless I look through the thousand-function manual every time I want to do something &#8212; and make sure I pick the right one out of two dozen alternatives.  Substitution with eval is completely broken.  Database access is STILL a mess; SQL injection is rife in PHP code as the manual still doesn&#8217;t even advise using prepared statements, so a lot of wild code is full of mysql_real_escape_string and magic_quotes and whatever other manner of layers of hacks to work around a problem that was solved a decade ago in every other language.  The object system is a joke; there are no friends, static methods don&#8217;t know what class they&#8217;re being called on, constructors can&#8217;t be variadic, equality can&#8217;t be overloaded..  There&#8217;s no module handling or versioning.  There&#8217;s nothing to hold a torch to CPAN; there&#8217;s PEAR, but it seems oft-neglected, so the common case is to just use the myriad of builtin functions and roll your own if you need anything else.  Since everything is built in, if you need a module your host hasn&#8217;t compiled support for, you&#8217;re screwed &#8212; whereas installing any version of any module locally in Perl or Python or Ruby is easy.  Unicode is a joke.  Arrays and hashes are intermingled, giving a very ambiguous sense of when I&#8217;m using which (what if I want a hash with numeric keys?  I&#8217;ve done this half a dozen times, but needed an ordered hash only once in my life) and leading to yet more cognitive overhead; array functions also become far more complicated than they should be, as they have to account for any sort of combination of the two.  References aren&#8217;t really references, and there are no weak references, which makes avoiding circular references a lot more convoluted in some cases.  Embedding code within HTML is, again, a terrible idea.  Strings and numbers are the same sort of variable, but there is neither real typing nor different operators for comparing each, so there&#8217;s more for me to worry about even when comparing values.  Array access syntax is broken; I can&#8217;t write something_that_returns_an_array()[$i].  Reflection is a pain and inconsistent with the rest of the language anyway (suddenly OO?), but the lack of first-class functions doesn&#8217;t help.  The sigils ($) don&#8217;t even have any reason to exist, unlike in Perl where they denote variable dimensions, but they permeate the language anyway.</p>
<p>High-level languages are supposed to be a tool, to do work for me that I shouldn&#8217;t have to worry about.  PHP might as well be the assembly language of Web programming: a large mass of functions but little functionality outside of that.  Little things like comparing numbers to strings might seem trivial, but when you have some quirk or side effect to worry about on every other line, it becomes a monumental distraction from just writing code and makes avoiding bugs that much harder.</p>
<p>The other languages are richly-featured and well-designed.  Even Perl 5, suffering from more or less backwards-compatibility with Perl 4, manages to remain powerful, flexible, and mostly consistent.  They all have built-in and simple reflection, functional programming constructs for when they make sense, fully-featured CGI libraries and rich sets of other third-party libraries (all in their own central packaging systems and loaded by real module support), rich OO support, and very simple standard libraries that do a small set of operations well.</p>
<p>I have never heard a compelling reason to use PHP for anything more complicated than a page counter.  Even the Web-targeted features in PHP are ones that tend to be avoided in larger projects, where more organization is needed and frameworks should be taking over.  It works, sure, but that is a trivial milestone to pass, and there is nothing about it that makes it work better than another scripting language.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Baz L</title>
		<link>http://www.webdevelopment2.com/php-sucks-boy-am-i-tired-of-hearing-this/comment-page-1/#comment-27512</link>
		<dc:creator>Baz L</dc:creator>
		<pubDate>Fri, 30 May 2008 19:49:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.webdevelopment2.com/?p=311#comment-27512</guid>
		<description>@Eevee: But you are illustrating my point. If PHP had problems, which made it fundamentally unusable, then why are there so many large sites that use it? There has to be a reason, and that is my point. PHP just works!I am not arguing that it&#039;s the best tool for every web job, I&#039;m not saying it isn&#039;t disorganized, I&#039;m not saying the PHP code is OO, because frankly I don&#039;t care. I don&#039;t care if there are &quot;THOUSANDS of built in functions&quot; as long as the 20-30 I need work like they are supposed to.Now on to your point of ORM libraries. This is the classic argument that people give about PHP. And to this I say: &quot;come up with something else&quot;. I&#039;m sure about the others, but &quot;Ruby&quot; does not have an ORM library; ActiveRecord is a part of Rails, which is a huge framework by itself. PHP actually does have such libraries: (&lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software#PHP&quot; rel=&quot;nofollow&quot;&gt;List of object-relational mapping software&lt;/a&gt;) [Never heard of or used any of them, though]. But you are falling into the same boat as everyone else who compares PHP to Ruby On Rails.PHP has it&#039;s issues, but it has proven itself a good work horse at cranking out web applications.</description>
		<content:encoded><![CDATA[<p>@Eevee: But you are illustrating my point. If PHP had problems, which made it fundamentally unusable, then why are there so many large sites that use it? There has to be a reason, and that is my point. PHP just works!I am not arguing that it&#8217;s the best tool for every web job, I&#8217;m not saying it isn&#8217;t disorganized, I&#8217;m not saying the PHP code is OO, because frankly I don&#8217;t care. I don&#8217;t care if there are &#8220;THOUSANDS of built in functions&#8221; as long as the 20-30 I need work like they are supposed to.Now on to your point of ORM libraries. This is the classic argument that people give about PHP. And to this I say: &#8220;come up with something else&#8221;. I&#8217;m sure about the others, but &#8220;Ruby&#8221; does not have an ORM library; ActiveRecord is a part of Rails, which is a huge framework by itself. PHP actually does have such libraries: (<a href="http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software#PHP" rel="nofollow">List of object-relational mapping software</a>) [Never heard of or used any of them, though]. But you are falling into the same boat as everyone else who compares PHP to Ruby On Rails.PHP has it&#8217;s issues, but it has proven itself a good work horse at cranking out web applications.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Baz L</title>
		<link>http://www.webdevelopment2.com/php-sucks-boy-am-i-tired-of-hearing-this/comment-page-1/#comment-27511</link>
		<dc:creator>Baz L</dc:creator>
		<pubDate>Fri, 30 May 2008 19:39:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.webdevelopment2.com/?p=311#comment-27511</guid>
		<description>@Luis Larrea: Yep, there are always going to be complainers. I say, if something else works for you, use it. Shoot, I&#039;m currently looking into Ruby on Rails just to see what it has to offer me. Every language/framework/tool/etc is going to have it&#039;s good and bad.

But you cannot deny that PHP just works!</description>
		<content:encoded><![CDATA[<p>@Luis Larrea: Yep, there are always going to be complainers. I say, if something else works for you, use it. Shoot, I&#8217;m currently looking into Ruby on Rails just to see what it has to offer me. Every language/framework/tool/etc is going to have it&#8217;s good and bad.</p>
<p>But you cannot deny that PHP just works!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eevee</title>
		<link>http://www.webdevelopment2.com/php-sucks-boy-am-i-tired-of-hearing-this/comment-page-1/#comment-27507</link>
		<dc:creator>Eevee</dc:creator>
		<pubDate>Thu, 29 May 2008 21:32:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.webdevelopment2.com/?p=311#comment-27507</guid>
		<description>The sizes of sites that PHP powers don&#039;t mean a lot; MySpace was originally written in ColdFusion, of all things.

The function library is not problematic because of size, but because of organization.  When you have THOUSANDS of builtin functions and neither a real package system nor namespaces, organization is kinda important.  But instead of builtins being object-oriented -- which would then make the LANGUAGE, in actual practical use, also be so -- there&#039;s just a myriad of functions that each take some object or handle as a first parameter.  Of course most PHP code isn&#039;t going to be OO: nothing in PHP&#039;s core is!  Worse, they&#039;re inconsistently named at best, a lot are duplicated with very similar functionality (there are some 23 functions for finding one string in another), there are messes like mysql_real_escape_string (instead of mysql_fake_escape_string!), etc.

Presumably the SQL complaints are about PHP&#039;s lack of an ORM library with a lot of mindshare?  Ruby has ActiveRecord, Perl has DBIx::Class, Python has SQLAlchemy.  I&#039;ve never seen one used with PHP at all.

Most of PHP is a patched-together mess, yes, and I don&#039;t know of a single advantage it has over the other open-source scripting languages.</description>
		<content:encoded><![CDATA[<p>The sizes of sites that PHP powers don&#8217;t mean a lot; MySpace was originally written in ColdFusion, of all things.</p>
<p>The function library is not problematic because of size, but because of organization.  When you have THOUSANDS of builtin functions and neither a real package system nor namespaces, organization is kinda important.  But instead of builtins being object-oriented &#8212; which would then make the LANGUAGE, in actual practical use, also be so &#8212; there&#8217;s just a myriad of functions that each take some object or handle as a first parameter.  Of course most PHP code isn&#8217;t going to be OO: nothing in PHP&#8217;s core is!  Worse, they&#8217;re inconsistently named at best, a lot are duplicated with very similar functionality (there are some 23 functions for finding one string in another), there are messes like mysql_real_escape_string (instead of mysql_fake_escape_string!), etc.</p>
<p>Presumably the SQL complaints are about PHP&#8217;s lack of an ORM library with a lot of mindshare?  Ruby has ActiveRecord, Perl has DBIx::Class, Python has SQLAlchemy.  I&#8217;ve never seen one used with PHP at all.</p>
<p>Most of PHP is a patched-together mess, yes, and I don&#8217;t know of a single advantage it has over the other open-source scripting languages.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Luis Larrea</title>
		<link>http://www.webdevelopment2.com/php-sucks-boy-am-i-tired-of-hearing-this/comment-page-1/#comment-27506</link>
		<dc:creator>Luis Larrea</dc:creator>
		<pubDate>Wed, 28 May 2008 14:53:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.webdevelopment2.com/?p=311#comment-27506</guid>
		<description>I wasn&#039;t aware ppl were complaining about PHP. I&#039;m not sure what&#039;s driving this but you&#039;ll find complaints to any OOP language. Look up Actionscript 3. There&#039;s hardcore moaners complaining about it since there&#039;s such a sharp contrast in scope between it and it&#039;s predecessor.</description>
		<content:encoded><![CDATA[<p>I wasn&#8217;t aware ppl were complaining about PHP. I&#8217;m not sure what&#8217;s driving this but you&#8217;ll find complaints to any OOP language. Look up Actionscript 3. There&#8217;s hardcore moaners complaining about it since there&#8217;s such a sharp contrast in scope between it and it&#8217;s predecessor.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
