<?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: Jeff Atwood still wrong about PHP</title>
	<atom:link href="http://frankkoehl.com/2009/01/jeff-atwood-still-wrong-about-php/feed/" rel="self" type="application/rss+xml" />
	<link>http://frankkoehl.com/2009/01/jeff-atwood-still-wrong-about-php/</link>
	<description>The more you know, the more you don't know</description>
	<lastBuildDate>Thu, 11 Mar 2010 01:43:04 +0000</lastBuildDate>
	
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
	<item>
		<title>By: dylanmcd</title>
		<link>http://frankkoehl.com/2009/01/jeff-atwood-still-wrong-about-php/comment-page-1/#comment-556</link>
		<dc:creator>dylanmcd</dc:creator>
		<pubDate>Thu, 29 Jan 2009 23:12:10 +0000</pubDate>
		<guid isPermaLink="false">http://frankkoehl.com/?p=324#comment-556</guid>
		<description>Thanks to Paul for pointing out that &quot;easy&quot; IS a feature. Here&#039;s two things that make PHP easy.

1. PHP is very flexible. If you don&#039;t want to mix up all your code (as you shouldn&#039;t), and you don&#039;t want to use one of the myriad of framework options out there, it&#039;s incredibly easy to separate your data logic, controller, and view. Hell, you can practically do it with just file includes. Want to keep your data functions separate? Put your data functions in separate files, and include as needed. Want a front controller instead of having the user hit separate files? Send everything through index.php, and use the $_GET data to load whatever controller you&#039;d like. And for your view? Well, PHP is practically a templating language in itself, so just don&#039;t put non-view logic in your view includes!

2. The crap function naming would actually be a pain in the ass if the manual wasn&#039;t so damn useful. It&#039;s 1 part manual, 1 part cookbook. At least half the time I go looking for a php function to solve a simple problem, someone in the comments has already provided me with something I can use. I can&#039;t say this about any other language.

All in all, I know and like ruby, and I know and like python. I also know that I don&#039;t like C# and Java because they aren&#039;t fun to program in for me, although I do appreciate the niche they fill. But I still choose PHP for web projects, because despite the well thought out and articulated lists of flaws provided, it&#039;s got a ton of perks, it&#039;s very flexible, and it does it&#039;s job admirably.

@florin
I don&#039;t understand what you mean by code attached to the &quot;tag id&quot;. Are you talking about having code represented as tags in your view? PRADO (www.xisc.com) does that, and it&#039;s been around since PHP 5.</description>
		<content:encoded><![CDATA[<p>Thanks to Paul for pointing out that &#8220;easy&#8221; IS a feature. Here&#8217;s two things that make PHP easy.</p>
<p>1. PHP is very flexible. If you don&#8217;t want to mix up all your code (as you shouldn&#8217;t), and you don&#8217;t want to use one of the myriad of framework options out there, it&#8217;s incredibly easy to separate your data logic, controller, and view. Hell, you can practically do it with just file includes. Want to keep your data functions separate? Put your data functions in separate files, and include as needed. Want a front controller instead of having the user hit separate files? Send everything through index.php, and use the $_GET data to load whatever controller you&#8217;d like. And for your view? Well, PHP is practically a templating language in itself, so just don&#8217;t put non-view logic in your view includes!</p>
<p>2. The crap function naming would actually be a pain in the ass if the manual wasn&#8217;t so damn useful. It&#8217;s 1 part manual, 1 part cookbook. At least half the time I go looking for a php function to solve a simple problem, someone in the comments has already provided me with something I can use. I can&#8217;t say this about any other language.</p>
<p>All in all, I know and like ruby, and I know and like python. I also know that I don&#8217;t like C# and Java because they aren&#8217;t fun to program in for me, although I do appreciate the niche they fill. But I still choose PHP for web projects, because despite the well thought out and articulated lists of flaws provided, it&#8217;s got a ton of perks, it&#8217;s very flexible, and it does it&#8217;s job admirably.</p>
<p>@florin<br />
I don&#8217;t understand what you mean by code attached to the &#8220;tag id&#8221;. Are you talking about having code represented as tags in your view? PRADO (www.xisc.com) does that, and it&#8217;s been around since PHP 5.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Frank</title>
		<link>http://frankkoehl.com/2009/01/jeff-atwood-still-wrong-about-php/comment-page-1/#comment-518</link>
		<dc:creator>Frank</dc:creator>
		<pubDate>Tue, 27 Jan 2009 21:36:53 +0000</pubDate>
		<guid isPermaLink="false">http://frankkoehl.com/?p=324#comment-518</guid>
		<description>Welcome to the discussion, Ian! Glad to see I&#039;m not the only one who can put aside the downsides and still see the good.</description>
		<content:encoded><![CDATA[<p>Welcome to the discussion, Ian! Glad to see I&#8217;m not the only one who can put aside the downsides and still see the good.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CHris</title>
		<link>http://frankkoehl.com/2009/01/jeff-atwood-still-wrong-about-php/comment-page-1/#comment-511</link>
		<dc:creator>CHris</dc:creator>
		<pubDate>Tue, 27 Jan 2009 06:39:47 +0000</pubDate>
		<guid isPermaLink="false">http://frankkoehl.com/?p=324#comment-511</guid>
		<description>A hammer is a better tool than a refrigerator.
A wrench makes a better hammer than a mug.
No hammer is as great as the sledge hammer.

These statements are utter gibberish - obviously - for one simple reason.  There is no context.  There is no &quot;when&quot; or &quot;as long as&quot; or &quot;wherever&quot; clause to follow, qualifying when, why, or how, these tools compare to one another.

I see arguments where PHP is a poor (read: horrible) choice for recursion.  You know something, I&#039;d have to agree with that.  My question becomes... why would you use PHP for recursion?  I&#039;ve gotten into a slew of complex algorithms lately, in game design, web crawling, even just automated filesystem maintenance.  All with recursive problems.  All solved iteratively.  To put it simply, given enough time and storage, yes, recursion is one of the most graceful strategies for computation in a dev&#039;s belt.  But we, collectively, never have enough time or storage.  So, we come up with iterative algorithms.  My question, better stated: Why would you use ANY language for recursion?  I&#039;ve never yet seen a recursive algorithm that couldn&#039;t be done iteratively.

And, on top of that pile, what language IS good with recursion?  Oh sure, some languages may make it seem nice and handy, but under the hood, it&#039;s doing the same things.  Pushing and popping mind-boggling numbers of activation records on the runtime stack, quickly ballooning.  Go ahead and try running the classic recursive fibonacci function (recursively) on your best PC.  Do... say... fib( 100 ).  Bet it takes longer than you&#039;d think.  Any language you pick.

I picked on the &quot;PHP is poor for recursion&quot; argument off of that initial list of 11 because it was the easiest to make my point, which is this: You wouldn&#039;t use a roll of duct tape as a hammer, and you wouldn&#039;t use a keyboard as a screwdriver.  You can take any language, and come up with an infinite number of situations where that language is a poor choice.  We can all do that.  The trick, the real trick where the &quot;goodness&quot; of a language, and the skill of a programmer comes into play, is that said programmer knows what tool (language) to use for what job, and do so well.  You can&#039;t solve every problem with a hammer, and you shouldn&#039;t try to, or else I&#039;d recommend finding a good attorney.</description>
		<content:encoded><![CDATA[<p>A hammer is a better tool than a refrigerator.<br />
A wrench makes a better hammer than a mug.<br />
No hammer is as great as the sledge hammer.</p>
<p>These statements are utter gibberish &#8211; obviously &#8211; for one simple reason.  There is no context.  There is no &#8220;when&#8221; or &#8220;as long as&#8221; or &#8220;wherever&#8221; clause to follow, qualifying when, why, or how, these tools compare to one another.</p>
<p>I see arguments where PHP is a poor (read: horrible) choice for recursion.  You know something, I&#8217;d have to agree with that.  My question becomes&#8230; why would you use PHP for recursion?  I&#8217;ve gotten into a slew of complex algorithms lately, in game design, web crawling, even just automated filesystem maintenance.  All with recursive problems.  All solved iteratively.  To put it simply, given enough time and storage, yes, recursion is one of the most graceful strategies for computation in a dev&#8217;s belt.  But we, collectively, never have enough time or storage.  So, we come up with iterative algorithms.  My question, better stated: Why would you use ANY language for recursion?  I&#8217;ve never yet seen a recursive algorithm that couldn&#8217;t be done iteratively.</p>
<p>And, on top of that pile, what language IS good with recursion?  Oh sure, some languages may make it seem nice and handy, but under the hood, it&#8217;s doing the same things.  Pushing and popping mind-boggling numbers of activation records on the runtime stack, quickly ballooning.  Go ahead and try running the classic recursive fibonacci function (recursively) on your best PC.  Do&#8230; say&#8230; fib( 100 ).  Bet it takes longer than you&#8217;d think.  Any language you pick.</p>
<p>I picked on the &#8220;PHP is poor for recursion&#8221; argument off of that initial list of 11 because it was the easiest to make my point, which is this: You wouldn&#8217;t use a roll of duct tape as a hammer, and you wouldn&#8217;t use a keyboard as a screwdriver.  You can take any language, and come up with an infinite number of situations where that language is a poor choice.  We can all do that.  The trick, the real trick where the &#8220;goodness&#8221; of a language, and the skill of a programmer comes into play, is that said programmer knows what tool (language) to use for what job, and do so well.  You can&#8217;t solve every problem with a hammer, and you shouldn&#8217;t try to, or else I&#8217;d recommend finding a good attorney.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Bicking</title>
		<link>http://frankkoehl.com/2009/01/jeff-atwood-still-wrong-about-php/comment-page-1/#comment-509</link>
		<dc:creator>Ian Bicking</dc:creator>
		<pubDate>Tue, 27 Jan 2009 06:21:24 +0000</pubDate>
		<guid isPermaLink="false">http://frankkoehl.com/?p=324#comment-509</guid>
		<description>Since someone linked to my PHP Is A Ghetto post, I thought I&#039;d exemplify the ability to hold two contradictory perspectives in your head at once: http://blog.ianbicking.org/2008/01/12/what-php-deployment-gets-right/</description>
		<content:encoded><![CDATA[<p>Since someone linked to my PHP Is A Ghetto post, I thought I&#8217;d exemplify the ability to hold two contradictory perspectives in your head at once: <a href="http://blog.ianbicking.org/2008/01/12/what-php-deployment-gets-right/" rel="nofollow">http://blog.ianbicking.org/2008/01/12/what-php-deployment-gets-right/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Twylite</title>
		<link>http://frankkoehl.com/2009/01/jeff-atwood-still-wrong-about-php/comment-page-1/#comment-489</link>
		<dc:creator>Twylite</dc:creator>
		<pubDate>Mon, 26 Jan 2009 07:52:31 +0000</pubDate>
		<guid isPermaLink="false">http://frankkoehl.com/?p=324#comment-489</guid>
		<description>PHP&#039;s success comes down to four things:
(1) Ease of parameter handling.  No fiddling with a CGI extension and request parser and all that; the request parameters are magically available as global variables.
(2) Ease of error handling.  You just ignore errors, and usually the program will keep on going and do approximately what you want.  For a lay user or inexperienced developer this lack of complexity is attractive.
(3) Put the code directly in the HTML page.  This reduces the need to deal with program structure and separation of data from presentation, and lets you focus on the short-term reward of building a single page easily.
(4) Adoption by web hosts.  At a time when the alternatives were CGI and CGI/Perl, PHP offered an alternative that was easy for the host to support and easy to developers and non-developers alike to use.

And of course points (1) to (3) also explain why PHP is a poor programming language(*) and prone to security problems - it does magic things, it encourages you to ignore errors, and it discourages separation of concerns.</description>
		<content:encoded><![CDATA[<p>PHP&#8217;s success comes down to four things:<br />
(1) Ease of parameter handling.  No fiddling with a CGI extension and request parser and all that; the request parameters are magically available as global variables.<br />
(2) Ease of error handling.  You just ignore errors, and usually the program will keep on going and do approximately what you want.  For a lay user or inexperienced developer this lack of complexity is attractive.<br />
(3) Put the code directly in the HTML page.  This reduces the need to deal with program structure and separation of data from presentation, and lets you focus on the short-term reward of building a single page easily.<br />
(4) Adoption by web hosts.  At a time when the alternatives were CGI and CGI/Perl, PHP offered an alternative that was easy for the host to support and easy to developers and non-developers alike to use.</p>
<p>And of course points (1) to (3) also explain why PHP is a poor programming language(*) and prone to security problems &#8211; it does magic things, it encourages you to ignore errors, and it discourages separation of concerns.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: BlogReader</title>
		<link>http://frankkoehl.com/2009/01/jeff-atwood-still-wrong-about-php/comment-page-1/#comment-487</link>
		<dc:creator>BlogReader</dc:creator>
		<pubDate>Mon, 26 Jan 2009 02:22:09 +0000</pubDate>
		<guid isPermaLink="false">http://frankkoehl.com/?p=324#comment-487</guid>
		<description>&lt;i&gt;Google pays one of the best software architects, Guido, to maintain it and improve it. &lt;/i&gt;

I&#039;ve heard Guido referred to as many things but &quot;best software architect&quot; hasn&#039;t been one of them.

&lt;i&gt;And about Jeff Atwood, what do you expect from an ASP developer? ASP was the biggest joke in the history of programming languages.&lt;/i&gt;

That&#039;s a cheap shot.  I would almost call it guilt by association but it isn&#039;t even that good.  Its more like guilt by the poster being an idiot.</description>
		<content:encoded><![CDATA[<p><i>Google pays one of the best software architects, Guido, to maintain it and improve it. </i></p>
<p>I&#8217;ve heard Guido referred to as many things but &#8220;best software architect&#8221; hasn&#8217;t been one of them.</p>
<p><i>And about Jeff Atwood, what do you expect from an ASP developer? ASP was the biggest joke in the history of programming languages.</i></p>
<p>That&#8217;s a cheap shot.  I would almost call it guilt by association but it isn&#8217;t even that good.  Its more like guilt by the poster being an idiot.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chucho</title>
		<link>http://frankkoehl.com/2009/01/jeff-atwood-still-wrong-about-php/comment-page-1/#comment-486</link>
		<dc:creator>Chucho</dc:creator>
		<pubDate>Mon, 26 Jan 2009 00:35:09 +0000</pubDate>
		<guid isPermaLink="false">http://frankkoehl.com/?p=324#comment-486</guid>
		<description>THERE ARE 2 TYPE OF LANGUAGES: the ones everybody complains about and the ones nobody uses

- Ruby? No one uses it any more. There are better alternatives, like JRuby.
- Python? Sys admin love it. Hey, it&#039;s much better than shell scripting right?
- PHP? Programmers use it, web developers use it, web designer use it, my mom uses it and even my dog uses it. Why use something else?

Python and Ruby cannot and will never compete with languages like Java and/or C, so stop dreaming about it. They might be able to comete against PHP, it&#039;s the only popular scripting language and has its flwas. But, to compete you need to offer something new or solve a problem that hasn&#039;t already been solved.

The biggest issue with Ruby is that its popularity is fading away and they now have a very small and angry community. The issue with Python is that Linux is supporting it, and therefore sys admins are supporting it. And of course, Google supports it, an because of that, lot of fanboys are supporting it as well. The same fanoboys that go from blog to blog writing rants about Java, C, PHP and Ruby.

For me, Ruby is like Delphi, and PHP like Visual Basic. And you know what, although Delphi is far much superior than VB, no one uses it anymore. And you know why? Because it didn&#039;t bring anything new to the table.

Does Python bring something new? No, it&#039;s just another scripting language. But it&#039;s fast, stable, has a great execution model and Google pays one of the best software architects, Guido, to maintain it and improve it. 

And about Jeff Atwood, what do you expect from an ASP developer? ASP was the biggest joke in the history of programming languages.</description>
		<content:encoded><![CDATA[<p>THERE ARE 2 TYPE OF LANGUAGES: the ones everybody complains about and the ones nobody uses</p>
<p>- Ruby? No one uses it any more. There are better alternatives, like JRuby.<br />
- Python? Sys admin love it. Hey, it&#8217;s much better than shell scripting right?<br />
- PHP? Programmers use it, web developers use it, web designer use it, my mom uses it and even my dog uses it. Why use something else?</p>
<p>Python and Ruby cannot and will never compete with languages like Java and/or C, so stop dreaming about it. They might be able to comete against PHP, it&#8217;s the only popular scripting language and has its flwas. But, to compete you need to offer something new or solve a problem that hasn&#8217;t already been solved.</p>
<p>The biggest issue with Ruby is that its popularity is fading away and they now have a very small and angry community. The issue with Python is that Linux is supporting it, and therefore sys admins are supporting it. And of course, Google supports it, an because of that, lot of fanboys are supporting it as well. The same fanoboys that go from blog to blog writing rants about Java, C, PHP and Ruby.</p>
<p>For me, Ruby is like Delphi, and PHP like Visual Basic. And you know what, although Delphi is far much superior than VB, no one uses it anymore. And you know why? Because it didn&#8217;t bring anything new to the table.</p>
<p>Does Python bring something new? No, it&#8217;s just another scripting language. But it&#8217;s fast, stable, has a great execution model and Google pays one of the best software architects, Guido, to maintain it and improve it. </p>
<p>And about Jeff Atwood, what do you expect from an ASP developer? ASP was the biggest joke in the history of programming languages.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard@Home</title>
		<link>http://frankkoehl.com/2009/01/jeff-atwood-still-wrong-about-php/comment-page-1/#comment-463</link>
		<dc:creator>Richard@Home</dc:creator>
		<pubDate>Sat, 24 Jan 2009 16:39:14 +0000</pubDate>
		<guid isPermaLink="false">http://frankkoehl.com/?p=324#comment-463</guid>
		<description>Meh, let him knock PHP all he wants.

Meanwhile I&#039;ll keep on making good software easily and quickly, and getting paid well to do it while he waits for &#039;the next big thing&#039;.</description>
		<content:encoded><![CDATA[<p>Meh, let him knock PHP all he wants.</p>
<p>Meanwhile I&#8217;ll keep on making good software easily and quickly, and getting paid well to do it while he waits for &#8216;the next big thing&#8217;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mark</title>
		<link>http://frankkoehl.com/2009/01/jeff-atwood-still-wrong-about-php/comment-page-1/#comment-461</link>
		<dc:creator>mark</dc:creator>
		<pubDate>Sat, 24 Jan 2009 15:48:40 +0000</pubDate>
		<guid isPermaLink="false">http://frankkoehl.com/?p=324#comment-461</guid>
		<description>So much has been written about this.

PHP was a success despite being a crap language.

Personally I refuse to use it since several years.

Ruby has replaced it. I can still understand people who use PHP,
but this does not change the fact that PHP as a language is simply horrible,
and I am glad that I no longer need to use it. 

The only thing that makes me sad is that the other languages did not yet dethrone PHP, which shows that dethroning another language is not an easy task.

If 10000000000000 flies eat shit, that doesnt mean that shit tastes any good.</description>
		<content:encoded><![CDATA[<p>So much has been written about this.</p>
<p>PHP was a success despite being a crap language.</p>
<p>Personally I refuse to use it since several years.</p>
<p>Ruby has replaced it. I can still understand people who use PHP,<br />
but this does not change the fact that PHP as a language is simply horrible,<br />
and I am glad that I no longer need to use it. </p>
<p>The only thing that makes me sad is that the other languages did not yet dethrone PHP, which shows that dethroning another language is not an easy task.</p>
<p>If 10000000000000 flies eat shit, that doesnt mean that shit tastes any good.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rubayeet</title>
		<link>http://frankkoehl.com/2009/01/jeff-atwood-still-wrong-about-php/comment-page-1/#comment-455</link>
		<dc:creator>rubayeet</dc:creator>
		<pubDate>Sat, 24 Jan 2009 05:28:15 +0000</pubDate>
		<guid isPermaLink="false">http://frankkoehl.com/?p=324#comment-455</guid>
		<description>Sometimes I think I understand why some people are so detested with PHP.

As a web developer it pains me to see Internet Explorer to be the #1 browser in planet.  But then again, I have to support that crappy thing for the sake of browser compatibility.  Why you guys are so pissed off for?

PHP is and will be one of the most popular languages in the web arena.

Accept the fact and suck it up.</description>
		<content:encoded><![CDATA[<p>Sometimes I think I understand why some people are so detested with PHP.</p>
<p>As a web developer it pains me to see Internet Explorer to be the #1 browser in planet.  But then again, I have to support that crappy thing for the sake of browser compatibility.  Why you guys are so pissed off for?</p>
<p>PHP is and will be one of the most popular languages in the web arena.</p>
<p>Accept the fact and suck it up.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
