<?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: 10 PHP Myths Dispelled</title>
	<atom:link href="http://jaybill.com/2008/01/02/10-php-myths-dispelled/feed/" rel="self" type="application/rss+xml" />
	<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/</link>
	<description>Jaybill McCarthy&#039;s blog.</description>
	<lastBuildDate>Mon, 01 Mar 2010 20:39:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Jaybill McCarthy</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-330</link>
		<dc:creator>Jaybill McCarthy</dc:creator>
		<pubDate>Wed, 04 Feb 2009 15:54:28 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-330</guid>
		<description>@aristarkhos Thanks for writing! PHP security expert &lt;a href=&quot;http://shiflett.org&quot; rel=&quot;nofollow&quot;&gt;Chris Shiflett&lt;/a&gt; has actually written a great book on the subject. It&#039;s called &lt;a href=&quot;http://phpsecurity.org&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Essential PHP Security&lt;/em&gt;&lt;/a&gt; and it&#039;s published by &lt;a href=&quot;http://oreilly.com&quot; rel=&quot;nofollow&quot;&gt;O&#039;Reilly&lt;/a&gt;. It&#039;s a very quick read, if that&#039;s any indication. :) I also find it amusing that there are people touting how secure JSP is. A poorly written JSP application is just as insecure as a poorly written application in anything else.

As for the productivity part, I think for the most part you hit it right on the head. PHP to JSP isn&#039;t really an apples to apples comparison, but depending on what you want to do, PHP could greatly reduce the amount of code you have to write to accomplish the same task.</description>
		<content:encoded><![CDATA[<p>@aristarkhos Thanks for writing! PHP security expert <a href="http://shiflett.org" rel="nofollow">Chris Shiflett</a> has actually written a great book on the subject. It&#8217;s called <a href="http://phpsecurity.org" rel="nofollow"><em>Essential PHP Security</em></a> and it&#8217;s published by <a href="http://oreilly.com" rel="nofollow">O&#8217;Reilly</a>. It&#8217;s a very quick read, if that&#8217;s any indication. :) I also find it amusing that there are people touting how secure JSP is. A poorly written JSP application is just as insecure as a poorly written application in anything else.</p>
<p>As for the productivity part, I think for the most part you hit it right on the head. PHP to JSP isn&#8217;t really an apples to apples comparison, but depending on what you want to do, PHP could greatly reduce the amount of code you have to write to accomplish the same task.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: aristarkhos</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-329</link>
		<dc:creator>aristarkhos</dc:creator>
		<pubDate>Wed, 04 Feb 2009 11:17:04 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-329</guid>
		<description>i wish someone would throw some more light on the security aspect. the only reason our IT guys refuse to move from JSP is because they think PHP is insecure. which i refuse to believe.
from what i have read...it probably takes more time to get work done with jsp. though that is also dependent on proficiency.</description>
		<content:encoded><![CDATA[<p>i wish someone would throw some more light on the security aspect. the only reason our IT guys refuse to move from JSP is because they think PHP is insecure. which i refuse to believe.<br />
from what i have read&#8230;it probably takes more time to get work done with jsp. though that is also dependent on proficiency.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: PHP Myths &#171; Nurul Islam</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-299</link>
		<dc:creator>PHP Myths &#171; Nurul Islam</dc:creator>
		<pubDate>Wed, 26 Nov 2008 07:03:49 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-299</guid>
		<description>[...] So here’s Jaybill McCarthy&#8217;s Blog: 10 PHP Myth [...]</description>
		<content:encoded><![CDATA[<p>[...] So here’s Jaybill McCarthy&#8217;s Blog: 10 PHP Myth [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CRR</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-238</link>
		<dc:creator>CRR</dc:creator>
		<pubDate>Thu, 29 May 2008 19:35:39 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-238</guid>
		<description>Great points, all. The only valid issue I&#039;ve seen is that PHP completely lacks a threading model. There are hacks available, but they&#039;re just hacks. I&#039;ve been able to accomplish some amazing non-Web things with it, but without threads, I always hit a wall. 

It&#039;s still my favorite language, but if I was really going to write a stand-alone app this one is a show-stopper for me. I think this factor is an important reason why Ruby and Python are so popular.</description>
		<content:encoded><![CDATA[<p>Great points, all. The only valid issue I&#8217;ve seen is that PHP completely lacks a threading model. There are hacks available, but they&#8217;re just hacks. I&#8217;ve been able to accomplish some amazing non-Web things with it, but without threads, I always hit a wall. </p>
<p>It&#8217;s still my favorite language, but if I was really going to write a stand-alone app this one is a show-stopper for me. I think this factor is an important reason why Ruby and Python are so popular.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Suburban Chicago PHP &#187; Blog Archive &#187; 10 PHP Myths Dispelled</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-173</link>
		<dc:creator>Suburban Chicago PHP &#187; Blog Archive &#187; 10 PHP Myths Dispelled</dc:creator>
		<pubDate>Thu, 17 Jan 2008 06:20:16 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-173</guid>
		<description>[...] 10 PHP Myths Dispelled [...]</description>
		<content:encoded><![CDATA[<p>[...] 10 PHP Myths Dispelled [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CiT</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-170</link>
		<dc:creator>CiT</dc:creator>
		<pubDate>Wed, 16 Jan 2008 11:32:47 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-170</guid>
		<description>Nice post, i think the same way ...</description>
		<content:encoded><![CDATA[<p>Nice post, i think the same way &#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anonymous</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-168</link>
		<dc:creator>anonymous</dc:creator>
		<pubDate>Mon, 14 Jan 2008 00:31:07 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-168</guid>
		<description>&gt; PHP-bashing is a bunch of hype &gt; and BS from Java fanboys. Java &gt; has a huge learning curve 
&gt; because of its bloated verbose &gt; libraries, and Java fans want &gt; to justify all that time they &gt; wasted. Ignore them.
huge learning curve for you. Please learn to write true object oriented code and stop kidding.</description>
		<content:encoded><![CDATA[<p>&gt; PHP-bashing is a bunch of hype &gt; and BS from Java fanboys. Java &gt; has a huge learning curve<br />
&gt; because of its bloated verbose &gt; libraries, and Java fans want &gt; to justify all that time they &gt; wasted. Ignore them.<br />
huge learning curve for you. Please learn to write true object oriented code and stop kidding.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: peterpan</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-167</link>
		<dc:creator>peterpan</dc:creator>
		<pubDate>Sat, 12 Jan 2008 14:32:49 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-167</guid>
		<description>&quot;abstract objects&quot;? 

Sure it&#039;s not supposed to be abstract *classes*?</description>
		<content:encoded><![CDATA[<p>&#8220;abstract objects&#8221;? </p>
<p>Sure it&#8217;s not supposed to be abstract *classes*?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: High Quality PHP Code? Really?! &#8212; www.topicobserver.com</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-166</link>
		<dc:creator>High Quality PHP Code? Really?! &#8212; www.topicobserver.com</dc:creator>
		<pubDate>Sat, 12 Jan 2008 14:17:15 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-166</guid>
		<description>[...] I don&#8217;t take it personally enough to go on a rant about it, I want to point to this article: 10 PHP Myths Dispelled. Simply because I hear this kind of joke way too often. And way too often, people seem to think [...]</description>
		<content:encoded><![CDATA[<p>[...] I don&#8217;t take it personally enough to go on a rant about it, I want to point to this article: 10 PHP Myths Dispelled. Simply because I hear this kind of joke way too often. And way too often, people seem to think [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cooom</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-163</link>
		<dc:creator>cooom</dc:creator>
		<pubDate>Fri, 11 Jan 2008 09:36:02 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-163</guid>
		<description>From my perspective the endless discussion about which language is better or worse is a cultural thing. 

Many people without formal training use PHP because the ease of getting things running - no matter how ugly the implemntation is.

Java on the other hand is so daunting at first encounter that the developers unsing it tend to be quite experienced. Once they cut their path trough, they tend to overuse the features and frameworks provided and overcomplicate things.

The path to enlightment the combination of both ways. The pragmatic approach of the prototypic PHP coder applied with the knowlege how to write proper code of the prototypic Java programmer, realized with the language which suits the task at hand best.</description>
		<content:encoded><![CDATA[<p>From my perspective the endless discussion about which language is better or worse is a cultural thing. </p>
<p>Many people without formal training use PHP because the ease of getting things running &#8211; no matter how ugly the implemntation is.</p>
<p>Java on the other hand is so daunting at first encounter that the developers unsing it tend to be quite experienced. Once they cut their path trough, they tend to overuse the features and frameworks provided and overcomplicate things.</p>
<p>The path to enlightment the combination of both ways. The pragmatic approach of the prototypic PHP coder applied with the knowlege how to write proper code of the prototypic Java programmer, realized with the language which suits the task at hand best.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fender Borton</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-162</link>
		<dc:creator>Fender Borton</dc:creator>
		<pubDate>Fri, 11 Jan 2008 04:39:27 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-162</guid>
		<description>PHP-bashing is a bunch of hype and BS from Java fanboys. Java has a huge learning curve because of its bloated verbose libraries, and Java fans want to justify all that time they wasted. Ignore them.</description>
		<content:encoded><![CDATA[<p>PHP-bashing is a bunch of hype and BS from Java fanboys. Java has a huge learning curve because of its bloated verbose libraries, and Java fans want to justify all that time they wasted. Ignore them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Manuel&#8217;s Blog &#187; Blog Archiv &#187; 10 Mythen Ã¼ber PHP</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-161</link>
		<dc:creator>Manuel&#8217;s Blog &#187; Blog Archiv &#187; 10 Mythen Ã¼ber PHP</dc:creator>
		<pubDate>Wed, 09 Jan 2008 07:04:53 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-161</guid>
		<description>[...] seinem Beitrag geht er auf 10 Mythen zu PHP [...]</description>
		<content:encoded><![CDATA[<p>[...] seinem Beitrag geht er auf 10 Mythen zu PHP [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lucas Carlson</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-160</link>
		<dc:creator>Lucas Carlson</dc:creator>
		<pubDate>Tue, 08 Jan 2008 18:31:57 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-160</guid>
		<description>Just because a language contains a feature, like the ability to write object oriented code, absolutely does not make it an object oriented language. You can and always do write functional code in Ruby with blocks, yet Ruby is not a functional language. PHP lets you write object oriented code, but it is not a truly object oriented language. To classify a language, you can&#039;t just ignore its core and standard libraries.

&quot;The mere fact that you can write purely procedural PHP code doesnâ€™t mean that PHP isnâ€™t OO capable&quot;

And the mere fact that you can write purely OO PHP code doesn&#039;t mean that the language is OO.</description>
		<content:encoded><![CDATA[<p>Just because a language contains a feature, like the ability to write object oriented code, absolutely does not make it an object oriented language. You can and always do write functional code in Ruby with blocks, yet Ruby is not a functional language. PHP lets you write object oriented code, but it is not a truly object oriented language. To classify a language, you can&#8217;t just ignore its core and standard libraries.</p>
<p>&#8220;The mere fact that you can write purely procedural PHP code doesnâ€™t mean that PHP isnâ€™t OO capable&#8221;</p>
<p>And the mere fact that you can write purely OO PHP code doesn&#8217;t mean that the language is OO.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thomas Fritz</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-159</link>
		<dc:creator>Thomas Fritz</dc:creator>
		<pubDate>Tue, 08 Jan 2008 08:54:15 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-159</guid>
		<description>I think most people who are speaking about PHP in negative way, think PHP is at the same profession as PHP/FI. And yes, unfortunately, PHPs reputation is (mostly) negative because of many PHP-&quot;Developers&quot;.</description>
		<content:encoded><![CDATA[<p>I think most people who are speaking about PHP in negative way, think PHP is at the same profession as PHP/FI. And yes, unfortunately, PHPs reputation is (mostly) negative because of many PHP-&#8221;Developers&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jaybill McCarthy</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-158</link>
		<dc:creator>Jaybill McCarthy</dc:creator>
		<pubDate>Tue, 08 Jan 2008 05:32:25 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-158</guid>
		<description>@31 Joscha Feth: You&#039;re right! That&#039;s a big one. The same could be said of any dynamically typed language, but PHP seems to bear the brunt of this somewhat dubious criticism. If you ever want to send those same people running away screaming, here&#039;s something else you can share with them. Marcus Boerger (of PDO fame - http://www.php.net/credits.php) told me over a beer at ZendCon  that declaring types (as opposed to just letting the interpreter figure out what you&#039;re trying to do) negatively impacts performance because of the additional overhead! Crazy!</description>
		<content:encoded><![CDATA[<p>@31 Joscha Feth: You&#8217;re right! That&#8217;s a big one. The same could be said of any dynamically typed language, but PHP seems to bear the brunt of this somewhat dubious criticism. If you ever want to send those same people running away screaming, here&#8217;s something else you can share with them. Marcus Boerger (of PDO fame &#8211; <a href="http://www.php.net/credits.php)" rel="nofollow">http://www.php.net/credits.php)</a> told me over a beer at ZendCon  that declaring types (as opposed to just letting the interpreter figure out what you&#8217;re trying to do) negatively impacts performance because of the additional overhead! Crazy!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joscha Feth</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-157</link>
		<dc:creator>Joscha Feth</dc:creator>
		<pubDate>Mon, 07 Jan 2008 23:38:28 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-157</guid>
		<description>You forgot the classic:

Someone: &quot;PHP does not even have types! How can you program seriously with that?&quot;
Me: &quot;PHP does have types, what you mean is type-safety!&quot;
Someone: &quot;Whatever - besides, what&#039;s the difference?&quot;

:-S</description>
		<content:encoded><![CDATA[<p>You forgot the classic:</p>
<p>Someone: &#8220;PHP does not even have types! How can you program seriously with that?&#8221;<br />
Me: &#8220;PHP does have types, what you mean is type-safety!&#8221;<br />
Someone: &#8220;Whatever &#8211; besides, what&#8217;s the difference?&#8221;</p>
<p>:-S</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Erhard</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-156</link>
		<dc:creator>Michael Erhard</dc:creator>
		<pubDate>Mon, 07 Jan 2008 22:27:10 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-156</guid>
		<description>PHP as a language clearly has its weaknesses, and most of them are named here.
For me the bigest issue is the codbase you find in the net, and the   bad code level many developers deliver usually.
Don&#039;t interpret me wrong, I practicly develop PHP applications on a daily basis since 10 Years. And after a short training every serious PHP developer can produce quality code. And it is much more easy to find &quot;cheap&quot; PHP developers than Java or C/C++ developer</description>
		<content:encoded><![CDATA[<p>PHP as a language clearly has its weaknesses, and most of them are named here.<br />
For me the bigest issue is the codbase you find in the net, and the   bad code level many developers deliver usually.<br />
Don&#8217;t interpret me wrong, I practicly develop PHP applications on a daily basis since 10 Years. And after a short training every serious PHP developer can produce quality code. And it is much more easy to find &#8220;cheap&#8221; PHP developers than Java or C/C++ developer</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Finn Higgins</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-155</link>
		<dc:creator>Finn Higgins</dc:creator>
		<pubDate>Mon, 07 Jan 2008 05:18:09 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-155</guid>
		<description>Jaybill - thanks for the response!  I&#039;m writing this from the perspective of somebody with a few years of PHP experience and including a few projects into tens of thousands of lines of code in active deployment, so I obviously don&#039;t completely hate the language.  It&#039;s certainly a more enjoyable experience than Java or .NET, but I have to admit that since learning Python and Ruby I&#039;ve got a much lower tolerance for working in PHP.

My impression of people leaving PHP for Python or Ruby (which was what I said, rather than Rails specifically) is really only based on first-hand knowledge of friends and colleagues.  Both Python and Ruby have a lot more to love about them as languages.  PHP does have merits, but the language syntax and core libraries aren&#039;t included in those.

Unit testing - you&#039;re right, it&#039;s not the responsibility of the language.  If we were talking about C or another general-purpose language I&#039;d be agreeing with you in a heartbeat.  But on the other hand, MySQL support, integration with GD, encryption, output buffering or any of the other myriad specialised functions in the PHP core API aren&#039;t the responsibility of the language either, but PHP gives you them.  PHP is a language that has built its userbase on providing a suite of commonly used tools for web development - a &quot;batteries included&quot; approach, if you will.  But for some reason, PHP seems to feel that automated testing is less of a core language feature than, say, spell-checking support, PostScript or SWF library support.  As such few beginning PHP developers even know what unit testing is, let alone that they actually *need to be doing it* if they&#039;re writing production code in a dynamically-typed interpreted language.  That&#039;s what I mean about PHP and its encouragement of poor code - it provides lots of powerful tools for implementing *features* in web applications, but very limited support for the development of robust, stable, well-engineered software.  That&#039;s not to say that the tools to do this aren&#039;t out there.  But honestly, if you had to pick one of these statements then which would ring more true:

&quot;PHP&#039;s core API is dedicated to making it easy for inexperienced developers to build feature-rich web applications&quot;

vs

&quot;PHP&#039;s core API is dedicated to providing the tools developers need to produce robust, high-quality web applications&quot;

...?

To me the answer to that is pretty obvious.  A low barrier for entry on a language can be an advantage; but doing that at the expense of much-needed features to support actually developing stable software is not, because it results in a wealth of developers who&#039;ve never tested a line of code in their lives. 

I&#039;m glad we&#039;re on the same page on the terse thing, and I agree with you on the Java/.NET ExtremelyExcessivelyLongNamesThing.  But the ugliness in PHP comes from the heavy use of totally worthless non-semantic characters like $ and -&gt; where they&#039;re actually totally unnecessary.  Having to prefix completely vanilla variables (!!!) with a shift-key-requiring modifier is just crazy.  I mean damn... does anybody do much programming without variables?

Getting onto deployment.. I wasn&#039;t actually entirely thinking of Rails here.  PHP has it the easiest because mod_php is a thing of beauty and just works.  mod_python is OK, but I&#039;ve had issues and had to resort to FastCGI at times - something I&#039;ve never had to even be aware of in PHP.  mod_ruby is a turd and nobody uses it, with most deployment happening behind Ruby web server clusters and proxy balancers.

I haven&#039;t experienced any of your problems with Rails though.  It&#039;s certainly resource-hungry, but given reasonable resources I&#039;ve had no issues with it in production apart from ActiveRecord hitting the database too hard if you fail to pay attention and scope your queries properly.  And hey, if you want to do Ruby development with most of the advantages of Rails but with better performance metrics then there&#039;s always Merb.</description>
		<content:encoded><![CDATA[<p>Jaybill &#8211; thanks for the response!  I&#8217;m writing this from the perspective of somebody with a few years of PHP experience and including a few projects into tens of thousands of lines of code in active deployment, so I obviously don&#8217;t completely hate the language.  It&#8217;s certainly a more enjoyable experience than Java or .NET, but I have to admit that since learning Python and Ruby I&#8217;ve got a much lower tolerance for working in PHP.</p>
<p>My impression of people leaving PHP for Python or Ruby (which was what I said, rather than Rails specifically) is really only based on first-hand knowledge of friends and colleagues.  Both Python and Ruby have a lot more to love about them as languages.  PHP does have merits, but the language syntax and core libraries aren&#8217;t included in those.</p>
<p>Unit testing &#8211; you&#8217;re right, it&#8217;s not the responsibility of the language.  If we were talking about C or another general-purpose language I&#8217;d be agreeing with you in a heartbeat.  But on the other hand, MySQL support, integration with GD, encryption, output buffering or any of the other myriad specialised functions in the PHP core API aren&#8217;t the responsibility of the language either, but PHP gives you them.  PHP is a language that has built its userbase on providing a suite of commonly used tools for web development &#8211; a &#8220;batteries included&#8221; approach, if you will.  But for some reason, PHP seems to feel that automated testing is less of a core language feature than, say, spell-checking support, PostScript or SWF library support.  As such few beginning PHP developers even know what unit testing is, let alone that they actually *need to be doing it* if they&#8217;re writing production code in a dynamically-typed interpreted language.  That&#8217;s what I mean about PHP and its encouragement of poor code &#8211; it provides lots of powerful tools for implementing *features* in web applications, but very limited support for the development of robust, stable, well-engineered software.  That&#8217;s not to say that the tools to do this aren&#8217;t out there.  But honestly, if you had to pick one of these statements then which would ring more true:</p>
<p>&#8220;PHP&#8217;s core API is dedicated to making it easy for inexperienced developers to build feature-rich web applications&#8221;</p>
<p>vs</p>
<p>&#8220;PHP&#8217;s core API is dedicated to providing the tools developers need to produce robust, high-quality web applications&#8221;</p>
<p>&#8230;?</p>
<p>To me the answer to that is pretty obvious.  A low barrier for entry on a language can be an advantage; but doing that at the expense of much-needed features to support actually developing stable software is not, because it results in a wealth of developers who&#8217;ve never tested a line of code in their lives. </p>
<p>I&#8217;m glad we&#8217;re on the same page on the terse thing, and I agree with you on the Java/.NET ExtremelyExcessivelyLongNamesThing.  But the ugliness in PHP comes from the heavy use of totally worthless non-semantic characters like $ and -&gt; where they&#8217;re actually totally unnecessary.  Having to prefix completely vanilla variables (!!!) with a shift-key-requiring modifier is just crazy.  I mean damn&#8230; does anybody do much programming without variables?</p>
<p>Getting onto deployment.. I wasn&#8217;t actually entirely thinking of Rails here.  PHP has it the easiest because mod_php is a thing of beauty and just works.  mod_python is OK, but I&#8217;ve had issues and had to resort to FastCGI at times &#8211; something I&#8217;ve never had to even be aware of in PHP.  mod_ruby is a turd and nobody uses it, with most deployment happening behind Ruby web server clusters and proxy balancers.</p>
<p>I haven&#8217;t experienced any of your problems with Rails though.  It&#8217;s certainly resource-hungry, but given reasonable resources I&#8217;ve had no issues with it in production apart from ActiveRecord hitting the database too hard if you fail to pay attention and scope your queries properly.  And hey, if you want to do Ruby development with most of the advantages of Rails but with better performance metrics then there&#8217;s always Merb.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sudhanshu</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-154</link>
		<dc:creator>Sudhanshu</dc:creator>
		<pubDate>Mon, 07 Jan 2008 00:51:26 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-154</guid>
		<description>#3 is funny. You shouldn&#039;t be talking to people like that about programming. Your fault. heh..

About #5, I think PHP is the best because you don&#039;t really need IDEs as much as you require them in Java. Vi is perfect in most of the cases that I&#039;ve seen. Ofcourse, most of the java people don&#039;t understand that you can code well without an IDE.</description>
		<content:encoded><![CDATA[<p>#3 is funny. You shouldn&#8217;t be talking to people like that about programming. Your fault. heh..</p>
<p>About #5, I think PHP is the best because you don&#8217;t really need IDEs as much as you require them in Java. Vi is perfect in most of the cases that I&#8217;ve seen. Ofcourse, most of the java people don&#8217;t understand that you can code well without an IDE.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anonymous</title>
		<link>http://jaybill.com/2008/01/02/10-php-myths-dispelled/comment-page-1/#comment-153</link>
		<dc:creator>anonymous</dc:creator>
		<pubDate>Sun, 06 Jan 2008 23:46:16 +0000</pubDate>
		<guid isPermaLink="false">http://jaybill.com/2008/01/02/10-php-myths-dispelled/#comment-153</guid>
		<description>@Jaybill McCarthy 
1. get a random PHP&#039;s ChangeLog: there are several items for insecure *core* functions (check stephan esser blog&#039;s please) 

3 - introducing a namespace is a NOT a trivial thing</description>
		<content:encoded><![CDATA[<p>@Jaybill McCarthy<br />
1. get a random PHP&#8217;s ChangeLog: there are several items for insecure *core* functions (check stephan esser blog&#8217;s please) </p>
<p>3 &#8211; introducing a namespace is a NOT a trivial thing</p>
]]></content:encoded>
	</item>
</channel>
</rss>
