<?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: Defending PHP (or not)</title>
	<atom:link href="http://devplant.net/2008/01/25/defending-php-or-not/feed/" rel="self" type="application/rss+xml" />
	<link>http://devplant.net/2008/01/25/defending-php-or-not/</link>
	<description>Plant for developers or developement plant</description>
	<lastBuildDate>Sat, 05 May 2012 15:59:34 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
	<item>
		<title>By: Anonymous</title>
		<link>http://devplant.net/2008/01/25/defending-php-or-not/comment-page-1/#comment-31</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Wed, 30 Jan 2008 18:41:29 +0000</pubDate>
		<guid isPermaLink="false">http://devplant.net/2008/01/25/defending-php-or-not/#comment-31</guid>
		<description>I think, php is cool with all the troubles it has. but it works and your right about keep things simple. and for all the noobs out there you need to understand how php works and the trobles it has to avoid them and do what you like the most... programming and phping. 

:D have fun guys</description>
		<content:encoded><![CDATA[<p>I think, php is cool with all the troubles it has. but it works and your right about keep things simple. and for all the noobs out there you need to understand how php works and the trobles it has to avoid them and do what you like the most&#8230; programming and phping. </p>
<p>:D have fun guys</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rick</title>
		<link>http://devplant.net/2008/01/25/defending-php-or-not/comment-page-1/#comment-28</link>
		<dc:creator>Rick</dc:creator>
		<pubDate>Mon, 28 Jan 2008 10:57:22 +0000</pubDate>
		<guid isPermaLink="false">http://devplant.net/2008/01/25/defending-php-or-not/#comment-28</guid>
		<description>I disagree with the notion of N-tier/MVC being overkill for small projects. That is, taken as individual one-off projects it might be overkill, but in a lot of cases we&#039;re talking about multiple small projects being developed and modified over time by various developers (for instance in the average webdev-shop).

In that case, using a consistent approach that might be overkill for a single project offers huge advantages over time in terms of maintenance, portability, extendibility, re-use etcetera.  Most teams I&#039;ve worked with have found out the hard way that the attitude &quot;it isn&#039;t worth it for this small project we can code with our eyes closed&quot; comes back to bite them in the ass.

There is rarely an excuse not to use well structured solutions that stands the test of time.</description>
		<content:encoded><![CDATA[<p>I disagree with the notion of N-tier/MVC being overkill for small projects. That is, taken as individual one-off projects it might be overkill, but in a lot of cases we&#8217;re talking about multiple small projects being developed and modified over time by various developers (for instance in the average webdev-shop).</p>
<p>In that case, using a consistent approach that might be overkill for a single project offers huge advantages over time in terms of maintenance, portability, extendibility, re-use etcetera.  Most teams I&#8217;ve worked with have found out the hard way that the attitude &#8220;it isn&#8217;t worth it for this small project we can code with our eyes closed&#8221; comes back to bite them in the ass.</p>
<p>There is rarely an excuse not to use well structured solutions that stands the test of time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Freek</title>
		<link>http://devplant.net/2008/01/25/defending-php-or-not/comment-page-1/#comment-27</link>
		<dc:creator>Freek</dc:creator>
		<pubDate>Mon, 28 Jan 2008 08:12:00 +0000</pubDate>
		<guid isPermaLink="false">http://devplant.net/2008/01/25/defending-php-or-not/#comment-27</guid>
		<description>That, i totally agree on :D</description>
		<content:encoded><![CDATA[<p>That, i totally agree on :D</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: leafnode</title>
		<link>http://devplant.net/2008/01/25/defending-php-or-not/comment-page-1/#comment-26</link>
		<dc:creator>leafnode</dc:creator>
		<pubDate>Sun, 27 Jan 2008 20:51:20 +0000</pubDate>
		<guid isPermaLink="false">http://devplant.net/2008/01/25/defending-php-or-not/#comment-26</guid>
		<description>I&#039;ve tried to balance my article between criticizing stupidity in PHP design and defending it for no need to be too complicated :-)

Namespaces are surely useful. I don&#039;t thing that lack of it is a major problem, but it&#039;d be nice to have them - especially for those experienced programmers, used to have them in Java or C  .

PHP allows ugliness, and it&#039;s OK as far as you know what&#039;s ugly :)</description>
		<content:encoded><![CDATA[<p>I&#8217;ve tried to balance my article between criticizing stupidity in PHP design and defending it for no need to be too complicated :-)</p>
<p>Namespaces are surely useful. I don&#8217;t thing that lack of it is a major problem, but it&#8217;d be nice to have them &#8211; especially for those experienced programmers, used to have them in Java or C  .</p>
<p>PHP allows ugliness, and it&#8217;s OK as far as you know what&#8217;s ugly :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Freek</title>
		<link>http://devplant.net/2008/01/25/defending-php-or-not/comment-page-1/#comment-25</link>
		<dc:creator>Freek</dc:creator>
		<pubDate>Sun, 27 Jan 2008 13:06:09 +0000</pubDate>
		<guid isPermaLink="false">http://devplant.net/2008/01/25/defending-php-or-not/#comment-25</guid>
		<description>I&#039;ve read a number of articles concerning this topic already and I think most of them, either in favor or against PHP to generalize them, almost always gloss over the fact that PHP might allow for errors to be made because its so loosely structured, but that it is not a must too structure your application loosely. 

As you already mention yourself, a lot of PHP&#039;ers are new to programming, and for them it is just great that PHP allows some degree of ugliness :D Then again, not saying i&#039;m a top-of-the-notch PHP programmer, i would be a fool not to check input which enters an API on DBmail for instance, and make sure that when i expect an integer I truly get an integer (or a string containing that - and only that - integer, its php we&#039;re talking about :D  ).

Namespaces are missed you say. I partly agree and luckily they will be introduced in PHP, but the other side of the coin is that you should name things for what they are. A class conflict should - theoretically - not occur based on name. Finally I agree the naming conventions seem to be totally non-existing, but i don&#039;t think it damages the language PHP, its at most inconveniant.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve read a number of articles concerning this topic already and I think most of them, either in favor or against PHP to generalize them, almost always gloss over the fact that PHP might allow for errors to be made because its so loosely structured, but that it is not a must too structure your application loosely. </p>
<p>As you already mention yourself, a lot of PHP&#8217;ers are new to programming, and for them it is just great that PHP allows some degree of ugliness :D Then again, not saying i&#8217;m a top-of-the-notch PHP programmer, i would be a fool not to check input which enters an API on DBmail for instance, and make sure that when i expect an integer I truly get an integer (or a string containing that &#8211; and only that &#8211; integer, its php we&#8217;re talking about :D  ).</p>
<p>Namespaces are missed you say. I partly agree and luckily they will be introduced in PHP, but the other side of the coin is that you should name things for what they are. A class conflict should &#8211; theoretically &#8211; not occur based on name. Finally I agree the naming conventions seem to be totally non-existing, but i don&#8217;t think it damages the language PHP, its at most inconveniant.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: leafnode</title>
		<link>http://devplant.net/2008/01/25/defending-php-or-not/comment-page-1/#comment-24</link>
		<dc:creator>leafnode</dc:creator>
		<pubDate>Sat, 26 Jan 2008 19:46:19 +0000</pubDate>
		<guid isPermaLink="false">http://devplant.net/2008/01/25/defending-php-or-not/#comment-24</guid>
		<description>I&#039;ve fixed paragraph about 3-tier apps, because it made people jump to wrong conclusions about my mental capability of understanding elementary design concepts ;)</description>
		<content:encoded><![CDATA[<p>I&#8217;ve fixed paragraph about 3-tier apps, because it made people jump to wrong conclusions about my mental capability of understanding elementary design concepts ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: leafnode</title>
		<link>http://devplant.net/2008/01/25/defending-php-or-not/comment-page-1/#comment-23</link>
		<dc:creator>leafnode</dc:creator>
		<pubDate>Sat, 26 Jan 2008 19:44:23 +0000</pubDate>
		<guid isPermaLink="false">http://devplant.net/2008/01/25/defending-php-or-not/#comment-23</guid>
		<description>Well, everything depends on meaning of the word &quot;ugly&quot;. To me, difference between ugly and beautiful is between writing structural code and using hi-tech ( ;) ) inventions like design patterns (I&#039;ve written about it above). In most cases I don&#039;t have to engineer every bit of it - I have my template, pre-setup libraries etc, I&#039;m only filling connections between database library and template library.

I&#039;m not saying ugly about code with no documentation, no indentation etc. These things are programmer&#039;s concern and has nothing to do with language and criticizing PHP for this is stupidity.

I&#039;ve written that MVC is overkill for most projects, not big projects. I love MVC, and I use it, but not with PHP, because with bigger projects I have bigger influence on things like server OS and configuration, so I can use there other solutions, like Python for instance, which I prefer for more complex solutions.

You&#039;ve mentioned Wordpress. I&#039;ve been hacking it for a while for myself, and I would love to see it&#039;s libraries in byte-compiled form, because it breaks my heard when I&#039;m thinking that my server is parsing all those files on each request :)

Thank you for your comment. I hope that I&#039;ve explained my way of thinking :)</description>
		<content:encoded><![CDATA[<p>Well, everything depends on meaning of the word &#8220;ugly&#8221;. To me, difference between ugly and beautiful is between writing structural code and using hi-tech ( ;) ) inventions like design patterns (I&#8217;ve written about it above). In most cases I don&#8217;t have to engineer every bit of it &#8211; I have my template, pre-setup libraries etc, I&#8217;m only filling connections between database library and template library.</p>
<p>I&#8217;m not saying ugly about code with no documentation, no indentation etc. These things are programmer&#8217;s concern and has nothing to do with language and criticizing PHP for this is stupidity.</p>
<p>I&#8217;ve written that MVC is overkill for most projects, not big projects. I love MVC, and I use it, but not with PHP, because with bigger projects I have bigger influence on things like server OS and configuration, so I can use there other solutions, like Python for instance, which I prefer for more complex solutions.</p>
<p>You&#8217;ve mentioned WordPress. I&#8217;ve been hacking it for a while for myself, and I would love to see it&#8217;s libraries in byte-compiled form, because it breaks my heard when I&#8217;m thinking that my server is parsing all those files on each request :)</p>
<p>Thank you for your comment. I hope that I&#8217;ve explained my way of thinking :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian Reich</title>
		<link>http://devplant.net/2008/01/25/defending-php-or-not/comment-page-1/#comment-22</link>
		<dc:creator>Brian Reich</dc:creator>
		<pubDate>Sat, 26 Jan 2008 18:55:59 +0000</pubDate>
		<guid isPermaLink="false">http://devplant.net/2008/01/25/defending-php-or-not/#comment-22</guid>
		<description>If you&#039;ve been using PHP since 1999 and are still writing &quot;ugly code,&quot; I don&#039;t think you can blame PHP :)  One can write ugly or elegant code in any language

I thought PHP was sloppy when I started learning, and I still think a lot of sloppy (but fantastic) code exists, such as the source for Wordpress.  But that has everything to do with coding style and nothing to do with PHP.  If someone had the time to rewrite Wordpress, for example, it could be done elegantly and effectively.  I&#039;m a big advocate of MVC, and I think the argument that it is &quot;overkill for big projects&quot; is hogwash.  If you don&#039;t use it for small projects, it&#039;s going to perplex you when you go to use it on a big project.

I do use a couple of tools to keep my code clean.  I use the Zend Framework simply because it&#039;s easy to set up and makes separation of concerns a snap.  I use PHPDocumenter to document all my libraries.  I test with PHPUnit and use it combined with XDebug to find dead code in large projects.  And finally, a run through the Pear package PHPCS helps you keep your code in conformity with some existing coding standards, like Pear or Zend.

Hopefully someone finds my criticisms useful. Fantastic article though, if I was overly critical I meant nothing by it.</description>
		<content:encoded><![CDATA[<p>If you&#8217;ve been using PHP since 1999 and are still writing &#8220;ugly code,&#8221; I don&#8217;t think you can blame PHP :)  One can write ugly or elegant code in any language</p>
<p>I thought PHP was sloppy when I started learning, and I still think a lot of sloppy (but fantastic) code exists, such as the source for WordPress.  But that has everything to do with coding style and nothing to do with PHP.  If someone had the time to rewrite WordPress, for example, it could be done elegantly and effectively.  I&#8217;m a big advocate of MVC, and I think the argument that it is &#8220;overkill for big projects&#8221; is hogwash.  If you don&#8217;t use it for small projects, it&#8217;s going to perplex you when you go to use it on a big project.</p>
<p>I do use a couple of tools to keep my code clean.  I use the Zend Framework simply because it&#8217;s easy to set up and makes separation of concerns a snap.  I use PHPDocumenter to document all my libraries.  I test with PHPUnit and use it combined with XDebug to find dead code in large projects.  And finally, a run through the Pear package PHPCS helps you keep your code in conformity with some existing coding standards, like Pear or Zend.</p>
<p>Hopefully someone finds my criticisms useful. Fantastic article though, if I was overly critical I meant nothing by it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Holland</title>
		<link>http://devplant.net/2008/01/25/defending-php-or-not/comment-page-1/#comment-20</link>
		<dc:creator>Jonathan Holland</dc:creator>
		<pubDate>Sat, 26 Jan 2008 18:10:29 +0000</pubDate>
		<guid isPermaLink="false">http://devplant.net/2008/01/25/defending-php-or-not/#comment-20</guid>
		<description>You said: Building web sites is generally linear problem (in 3-tier layout: parse input data, load template, load data from database, put data into template, display template - it’s how 99% of page code looks like), so there’s no place for impressive OOP.

Its like you try to understand N-Tier design, but failed (obviously, since your description is nothing like real 3-tier design), so you right it off as irrelevant.</description>
		<content:encoded><![CDATA[<p>You said: Building web sites is generally linear problem (in 3-tier layout: parse input data, load template, load data from database, put data into template, display template &#8211; it’s how 99% of page code looks like), so there’s no place for impressive OOP.</p>
<p>Its like you try to understand N-Tier design, but failed (obviously, since your description is nothing like real 3-tier design), so you right it off as irrelevant.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Maciek Pasternacki</title>
		<link>http://devplant.net/2008/01/25/defending-php-or-not/comment-page-1/#comment-17</link>
		<dc:creator>Maciek Pasternacki</dc:creator>
		<pubDate>Fri, 25 Jan 2008 11:51:39 +0000</pubDate>
		<guid isPermaLink="false">http://devplant.net/2008/01/25/defending-php-or-not/#comment-17</guid>
		<description>Great article, clear and level-minded, which is rare when someone touches such flamebaity topic.  Just a nitpick: what you say about typing, is not exactly about static vs dynamic typing, but strong vs weak typing.  It&#039;s not dynamic typing that is annoying and counter-intuitive in PHP, but weak typing.  There are weakly typed languages that are not as annoying (say Tcl), but it&#039;s far more intuitive to have dynamic strong typing, like in Python or Common Lisp.  Coupled with good type inference we can have both convenience of weak typing, and intuitiveness of strong typing.</description>
		<content:encoded><![CDATA[<p>Great article, clear and level-minded, which is rare when someone touches such flamebaity topic.  Just a nitpick: what you say about typing, is not exactly about static vs dynamic typing, but strong vs weak typing.  It&#8217;s not dynamic typing that is annoying and counter-intuitive in PHP, but weak typing.  There are weakly typed languages that are not as annoying (say Tcl), but it&#8217;s far more intuitive to have dynamic strong typing, like in Python or Common Lisp.  Coupled with good type inference we can have both convenience of weak typing, and intuitiveness of strong typing.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

