<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Programmer&#039;s Paradox &#187; Languages</title>
	<atom:link href="http://www.programmersparadox.com/category/languages/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.programmersparadox.com</link>
	<description>Is anything I write real?</description>
	<lastBuildDate>Wed, 28 Jul 2010 21:50:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Language Design Philosophies</title>
		<link>http://www.programmersparadox.com/2009/06/21/language-design-philosophies/</link>
		<comments>http://www.programmersparadox.com/2009/06/21/language-design-philosophies/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 22:05:27 +0000</pubDate>
		<dc:creator>Mark Mzyk</dc:creator>
				<category><![CDATA[Languages]]></category>
		<category><![CDATA[design philosophies]]></category>
		<category><![CDATA[programming languages]]></category>

		<guid isPermaLink="false">http://www.programmersparadox.com/?p=884</guid>
		<description><![CDATA[In a conversation with a coworker, we distilled several programming languages&#8217; design philosophies down to a single sentence. Here&#8217;s what we came up with: Java: Protect the Developer From Themselves Ruby: Be the Developer&#8217;s Language Python: There is One True Way PHP: eh Do you agree? Disagree? What are the one sentence philosophies behind other [...]<p><br/><br/><a href="http://www.programmersparadox.com/2009/06/21/language-design-philosophies/">Language Design Philosophies</a></p>
]]></description>
			<content:encoded><![CDATA[<p>In a conversation with a coworker, we distilled several programming languages&#8217; design philosophies down to a single sentence.</p>
<p>Here&#8217;s what we came up with:</p>
<p><strong>Java</strong>: Protect the Developer From Themselves</p>
<p><strong>Ruby</strong>: Be the Developer&#8217;s Language</p>
<p><strong>Python</strong>: There is One True Way</p>
<p><strong>PHP</strong>: eh</p>
<p>Do you agree? Disagree?  What are the one sentence philosophies behind other languages that we didn&#8217;t touch on?</p>
<p><br/><br/><a href="http://www.programmersparadox.com/2009/06/21/language-design-philosophies/">Language Design Philosophies</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersparadox.com/2009/06/21/language-design-philosophies/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>NPR on the Sapir-Whorf Hypothesis</title>
		<link>http://www.programmersparadox.com/2009/04/12/npr-on-the-sapir-whorf-hypothesis/</link>
		<comments>http://www.programmersparadox.com/2009/04/12/npr-on-the-sapir-whorf-hypothesis/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 01:27:02 +0000</pubDate>
		<dc:creator>Mark Mzyk</dc:creator>
				<category><![CDATA[Languages]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[knowing and doing]]></category>
		<category><![CDATA[npr]]></category>
		<category><![CDATA[sapir-whorf]]></category>
		<category><![CDATA[shakespeare]]></category>

		<guid isPermaLink="false">http://www.programmersparadox.com/?p=726</guid>
		<description><![CDATA[A while back I wrote about the Sapir-Whorf hypothesis.  In a serendipitous coincidence, NPR ran a story recently that directly relates to the Sapir-Whorf hypothesis: Shakespeare Had Roses All Wrong.  While the Sapir-Whorf hypothesis isn&#8217;t mentioned, it clearly is involved. The story touches on languages and how gender in languages affects thinking.  It is highlighted [...]<p><br/><br/><a href="http://www.programmersparadox.com/2009/04/12/npr-on-the-sapir-whorf-hypothesis/">NPR on the Sapir-Whorf Hypothesis</a></p>
]]></description>
			<content:encoded><![CDATA[<p>A while back I wrote about the <a href="http://www.programmersparadox.com/2009/02/27/sapir-whorf-hypothesis/">Sapir-Whorf hypothesis</a>.  In a serendipitous coincidence, NPR ran a story recently that directly relates to the Sapir-Whorf hypothesis: <a href="http://www.npr.org/templates/story/story.php?storyId=102518565">Shakespeare Had Roses All Wrong</a>.  While the Sapir-Whorf hypothesis isn&#8217;t mentioned, it clearly is involved.</p>
<p>The story touches on languages and how gender in languages affects thinking.  It is highlighted that Spanish speakers and Germany speakers pick different adjectives to describe a bridge, based on the fact that in one language a bridge is male, in the other, female.</p>
<p>The story goes on to talk about how scientists set up an experiment to determine if it was language that the differences could be attributed to.  They determined it is language and that you can shift people&#8217;s thinking by teaching them a language that uses different gender constructs.</p>
<p>The story then goes on to talk about Shakespeare&#8217;s famous line: A rose by any other name would smell as sweet.</p>
<p>Here&#8217;s the actual, full quote:</p>
<blockquote><p>What&#8217;s in a name? that which we call a rose<br />
By any other name would smell as sweet<br />
-<a href="http://www.bartleby.com/70/3822.html">Act II, Scene II. Romeo and Juliet</a></p></blockquote>
<p>It&#8217;s a very interesting story and well worth the seven minutes it takes to listen to.</p>
<p>As an added bonus, <a href="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2009-04.html#e2009-04-12T18_46_21.htm">Knowing and Doing just posted a post titled Language Driven Programming</a>, which tackles many of the same themes and applies them to programming languages.</p>
<p><br/><br/><a href="http://www.programmersparadox.com/2009/04/12/npr-on-the-sapir-whorf-hypothesis/">NPR on the Sapir-Whorf Hypothesis</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersparadox.com/2009/04/12/npr-on-the-sapir-whorf-hypothesis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Java.beyond</title>
		<link>http://www.programmersparadox.com/2008/09/14/javabeyond/</link>
		<comments>http://www.programmersparadox.com/2008/09/14/javabeyond/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 21:45:42 +0000</pubDate>
		<dc:creator>Mark Mzyk</dc:creator>
				<category><![CDATA[Languages]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Java.next]]></category>
		<category><![CDATA[Stuart Halloway]]></category>

		<guid isPermaLink="false">http://www.programmersparadox.com/?p=309</guid>
		<description><![CDATA[Today&#8217;s title is a play off of Stuart Halloway&#8217;s current series of blog posts titled Java.next.  Stuart is focusing his series on the set of languages that run on the JVM and are looking to replace (or if not replace, then gain dominance alongside) Java. In the third part of the series, Dispatch, Stuart writes [...]<p><br/><br/><a href="http://www.programmersparadox.com/2008/09/14/javabeyond/">Java.beyond</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s title is a play off of Stuart Halloway&#8217;s <a href="http://blog.thinkrelevance.com/2008/8/4/java-next-common-ground">current series of blog posts titled Java.next</a>.  Stuart is focusing his series on the set of languages that <em>run on the JVM</em> and are looking to replace (or if not replace, then gain dominance alongside) Java.</p>
<p>In the third part of the series, <a href="http://blog.thinkrelevance.com/2008/8/26/java-next-3-dispatch-2">Dispatch</a>, Stuart writes about ways the Java.next languages dynamically choose behavior, one such way being with the switch statement.  Stuart provides examples in Ruby (technically he should have used JRuby), Groovy, Clojure, and Scala.  Stuart explores further than just the switch statement, but it was the switch statement example that caught my eye.</p>
<p>The example for each language is a simple piece of code that takes a grade (either numeric or letter) and returns the letter equivalent.  If passed a 95, the code returns A.  If passed 55, it returns F.  If passed B, it returns B.  If passed something that doesn&#8217;t equate to a valid grade, it throws an error.</p>
<p>I couldn&#8217;t resist coding it in Erlang.</p>
<p>Here is what I came up with:</p>
<p><code> </code></p>
<pre>-module(grades).
-export([grades/1]).

grades(N) -&gt;
  case N of
    N when is_integer(N), N &gt;= 90 -&gt; "A";
    N when is_integer(N), N &gt;= 80 -&gt; "B";
    N when is_integer(N), N &gt;= 70 -&gt; "C";
    N when is_integer(N), N &gt;= 60 -&gt; "D";
    N when is_integer(N), N &gt;= 0  -&gt; "F";
    "A" -&gt; "A";
    "a" -&gt; "A";
    "B" -&gt; "B";
    "b" -&gt; "B";
    "C" -&gt; "C";
    "c" -&gt; "C";
    "D" -&gt; "D";
    "d" -&gt; "D";
    "F" -&gt; "F";
    "f" -&gt; "F";
    N when true -&gt; throw("Not a valid grade")
 end.</pre>
<p>Now for the embarrassing admission: this code took me way longer to complete than it should have.  I couldn&#8217;t remember the proper syntax for anything and I kept attempting to code Erlang like I was coding Python.  I&#8217;m sure it&#8217;s not done the Erlang way and that I&#8217;ve missed someway to make it more compact.  However, the code does work.</p>
<p>If you have a better solution, please submit it in the comments.  If something can be improved, I always welcome knowing how.</p>
<p><br/><br/><a href="http://www.programmersparadox.com/2008/09/14/javabeyond/">Java.beyond</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersparadox.com/2008/09/14/javabeyond/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>PHP REPL</title>
		<link>http://www.programmersparadox.com/2008/08/26/php-repl/</link>
		<comments>http://www.programmersparadox.com/2008/08/26/php-repl/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 16:44:31 +0000</pubDate>
		<dc:creator>Mark Mzyk</dc:creator>
				<category><![CDATA[Languages]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[repl]]></category>

		<guid isPermaLink="false">http://www.programmersparadox.com/?p=241</guid>
		<description><![CDATA[I&#8217;ve mentioned before that I think programming languages should have a REPL (Read-Eval-Print-Loop). Unfortunately, PHP does not have one natively.  However, I just discovered that Facebook has opened sourced a REPL for PHP &#8211; so now you can test out your PHP code without needing to write and run a script. Working in Python, I&#8217;ve [...]<p><br/><br/><a href="http://www.programmersparadox.com/2008/08/26/php-repl/">PHP REPL</a></p>
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve mentioned before that <a href="http://www.programmersparadox.com/2008/01/22/your-first-programming-language-needs-a-repl/">I think programming languages should have a REPL</a> (Read-Eval-Print-Loop).</p>
<p>Unfortunately, PHP does not have one natively.  However, I just discovered that <a href="http://www.phpsh.org/">Facebook has opened sourced a REPL for PHP</a> &#8211; so now you can test out your PHP code without needing to write and run a script.</p>
<p>Working in Python, I&#8217;ve found Python&#8217;s REPL highly convenient, so I&#8217;m going to start using Facebook&#8217;s PHP REPL for when I have to work in PHP.</p>
<p>Ironically, Facebook&#8217;s PHP REPL is implement in Python. I can commiserate: given the choice between Python and PHP, I&#8217;d go with Python.</p>
<p><br/><br/><a href="http://www.programmersparadox.com/2008/08/26/php-repl/">PHP REPL</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersparadox.com/2008/08/26/php-repl/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PHP Insanity X</title>
		<link>http://www.programmersparadox.com/2008/05/16/php-insanity-x/</link>
		<comments>http://www.programmersparadox.com/2008/05/16/php-insanity-x/#comments</comments>
		<pubDate>Fri, 16 May 2008 11:33:25 +0000</pubDate>
		<dc:creator>Mark Mzyk</dc:creator>
				<category><![CDATA[Languages]]></category>
		<category><![CDATA[define]]></category>
		<category><![CDATA[defines]]></category>
		<category><![CDATA[insanity]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[type checking]]></category>

		<guid isPermaLink="false">http://www.programmersparadox.com/?p=103</guid>
		<description><![CDATA[I’ll keep this insanity short and sweet. In PHP, if you have a define that you forget to actually define, it will default to true, not false. Why is this?  Because in evaluating the define, if PHP cannot find anything else to evaluate it to, it will evaluate it to a string literal, which always [...]<p><br/><br/><a href="http://www.programmersparadox.com/2008/05/16/php-insanity-x/">PHP Insanity X</a></p>
]]></description>
			<content:encoded><![CDATA[<p>I’ll keep this insanity short and sweet.</p>
<p>In PHP, if you have a define that you forget to actually define, it will default to true, not false.</p>
<p>Why is this?  Because in evaluating the define, if PHP cannot find anything else to evaluate it to, it will evaluate it to a string literal, which always evaluates to true.</p>
<p>This behavior necessitates that all defines be strictly checked by type equality (===) or else your code might go down the opposite path you intended.  Or you can just make sure you always define any defines.  But you&#8217;re human like me, and mistakes will happen, so this behavior will likely affect you.</p>
<p>It’d be nice if PHP could reverse this behavior.  If a define isn’t defined, it’s false.  That seems like the logical thing to do.</p>
<p><br/><br/><a href="http://www.programmersparadox.com/2008/05/16/php-insanity-x/">PHP Insanity X</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersparadox.com/2008/05/16/php-insanity-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Insanity IX</title>
		<link>http://www.programmersparadox.com/2008/05/08/php-insanity-ix/</link>
		<comments>http://www.programmersparadox.com/2008/05/08/php-insanity-ix/#comments</comments>
		<pubDate>Thu, 08 May 2008 13:33:04 +0000</pubDate>
		<dc:creator>Mark Mzyk</dc:creator>
				<category><![CDATA[Languages]]></category>
		<category><![CDATA[fade]]></category>
		<category><![CDATA[inconsistency]]></category>
		<category><![CDATA[insanity]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ternary operator]]></category>

		<guid isPermaLink="false">http://www.programmersparadox.com/?p=102</guid>
		<description><![CDATA[Recently, on Hacker News, this question was asked: What do hackers think of PHP? If you’re thinking about PHP, I suggest you read the comments.  You’ll notice there is a constant refrain: You can use PHP, but you had better have discipline. Sure, you can use PHP or any language, but of course you need [...]<p><br/><br/><a href="http://www.programmersparadox.com/2008/05/08/php-insanity-ix/">PHP Insanity IX</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Recently, on Hacker News, this question was asked:</p>
<p><a href="http://news.ycombinator.com/item?id=181513">What do hackers think of PHP?</a></p>
<p>If you’re thinking about PHP, I suggest you read the comments.  You’ll notice there is a constant refrain:</p>
<p>You can use PHP, but you had better have discipline.</p>
<p>Sure, you can use PHP or any language, but of course you need discipline.  That isn’t unique to PHP.  It just has to be stressed more often with PHP, because PHP requires extra diligence.  You have to be disciplined in understanding the core language, because it is inconsistent.</p>
<p>Following that discipline, I needed to use the <a href="http://en.wikipedia.org/wiki/%3F:">ternary operator today</a>, but I, for whatever reason, always forget the syntax.  So I turned to Wikipedia.  Today I was a bit more curious than usual, and I started reading the rest of the article.</p>
<p>The final section is titled <a href="http://en.wikipedia.org/wiki/%3F:#Inconsistency_of_implementations">Inconsistency of Implementations</a>.  It contains this text:</p>
<blockquote><p>Due to an unfortunate error in the language grammar, the implementation of ?: in the PHP language uses the incorrect associativity when compared to other languages, and given a value of T for arg, the PHP equivalent of the above example would yield the value horse instead of train as one would expect. To avoid this, nested parenthesis are needed…</p></blockquote>
<p>It’s clear that PHP has lots of these unfortunate errors.  PHP has lagged in fixing them, and I think it has been eclipsed by the likes of Ruby and Python.  As these languages gain traction, I think PHP will slowly fade away.</p>
<p>It will take awhile, certainly.  PHP has an advantage in how easy it is to set up and get a page running, but that only gets it so far.  To fix all the errors and inconsistencies of PHP would be a full time job.  I’m not sure it can be done, unless PHP committed to a rewrite and broke backwards compatibility, but that’s a catch-22.  While PHP fixes itself, the other languages take over its share.  But if PHP doesn’t fix itself, the other languages still take over its share.</p>
<p>It doesn’t look good for PHP.</p>
<p><br/><br/><a href="http://www.programmersparadox.com/2008/05/08/php-insanity-ix/">PHP Insanity IX</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersparadox.com/2008/05/08/php-insanity-ix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Insanity VIII</title>
		<link>http://www.programmersparadox.com/2008/05/01/php-insanity-viii/</link>
		<comments>http://www.programmersparadox.com/2008/05/01/php-insanity-viii/#comments</comments>
		<pubDate>Fri, 02 May 2008 03:58:41 +0000</pubDate>
		<dc:creator>Mark Mzyk</dc:creator>
				<category><![CDATA[Languages]]></category>
		<category><![CDATA[error_log]]></category>
		<category><![CDATA[insanity]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.programmersparadox.com/?p=95</guid>
		<description><![CDATA[If you&#8217;d rather not read what I have to say about today&#8217;s PHP Insanity, you can attempt to find it for yourself on the php.net error_log man page. In my daily work, I use the error_log function often.  It was shown to me by a coworker and I&#8217;ve found it handy ever since.  However, my [...]<p><br/><br/><a href="http://www.programmersparadox.com/2008/05/01/php-insanity-viii/">PHP Insanity VIII</a></p>
]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;d rather not read what I have to say about today&#8217;s PHP Insanity, you can attempt to find it for yourself on the php.net <a href="http://us2.php.net/manual/en/function.error-log.php">error_log man page</a>.</p>
<p>In my daily work, I use the error_log function often.  It was shown to me by a coworker and I&#8217;ve found it handy ever since.  However, my coworker, in showing me how to use it, showed me his default way of using it, which included always passing one of the argument as the int 3.  With the argument being the int 3, it was clear that there must be more options available.</p>
<p>Several months have passed, and it wasn&#8217;t until the other day that I became curious enough to look up what other options there were.  Here is the list of the int arguments that can be passed to error_log, just in case you didn&#8217;t go to the man page to look them up for yourself:</p>
<ul>
<li>0:  	 message  is sent to PHP&#8217;s system logger, using the Operating System&#8217;s system logging mechanism or a file, depending on what the error_log  configuration directive is set to. This is the default option.</li>
<li>1: 	message is sent by email to the address in the destination parameter. This is the only message type where the fourth parameter, extra_headers is used.</li>
<li>2: 	No longer an option.</li>
<li>3: 	message is appended to the file destination . A newline is not automatically added to the end of the message string.</li>
</ul>
<p>Did you notice which one of those wasn&#8217;t like the others?</p>
<p>I don&#8217;t know what caused 2 to be removed, but I love the gaping hole that was left in its place.  Why couldn&#8217;t 2 have been changed so that it was an alias for 3, instead of just leaving it open?  Now, should someone pick 2, wondering what it does, anything could happen.  Hopefully PHP fatals, but I haven&#8217;t tried it, so I&#8217;m not sure how PHP behaves.</p>
<p>PHP has taught me not to trust it, and the more examples like this that I find, the more I realize that I&#8217;m right not to trust it.  The next project at work might have me using Python.  I&#8217;m looking forward to the change of scenery.</p>
<p><br/><br/><a href="http://www.programmersparadox.com/2008/05/01/php-insanity-viii/">PHP Insanity VIII</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersparadox.com/2008/05/01/php-insanity-viii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Insanity VII</title>
		<link>http://www.programmersparadox.com/2008/04/14/php-insanity-vii/</link>
		<comments>http://www.programmersparadox.com/2008/04/14/php-insanity-vii/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 17:44:55 +0000</pubDate>
		<dc:creator>Mark Mzyk</dc:creator>
				<category><![CDATA[Languages]]></category>
		<category><![CDATA[argument]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[functions]]></category>
		<category><![CDATA[insanity]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.programmersparadox.com/?p=91</guid>
		<description><![CDATA[I discovered an interesting bit of insanity in PHP while at work the other day. Define a function in PHP and make sure it has at least one argument, but that argument should not have a default. So the function should be something like: public function foo( $bar ) Not: public function foo( $bar=fubar ) [...]<p><br/><br/><a href="http://www.programmersparadox.com/2008/04/14/php-insanity-vii/">PHP Insanity VII</a></p>
]]></description>
			<content:encoded><![CDATA[<p>I discovered an interesting bit of insanity in PHP while at work the other day.</p>
<p>Define a function in PHP and make sure it has at least one argument, but that argument should not have a default.</p>
<p>So the function should be something like:</p>
<p>public function foo( $bar )</p>
<p>Not:</p>
<p>public function foo( $bar=fubar )</p>
<p>Now call your function, but leave out the argument.</p>
<p>$foo( );</p>
<p><strong>PHP will only throw a warning about the missing argument.</strong></p>
<p><em>What PHP should do is throw a fatal error.</em></p>
<p>If your code somehow manages to run to completion in that state, there is no telling what the potential consequences to your application might be.</p>
<p>Now, you could claim that if the argument is left out that your code should eventually encounter an error and therefore you discover your mistake.  But I shouldn’t have to rely on that bit of happenstance.  Clearly when writing the code I intended for the argument to be there, so when it is left out, PHP should convulse violently, like it’s having withdrawal from crack.</p>
<p>Throwing a fatal is a prevention mechanism that stops me from making an error that humans are prone to make all the time.  We often forget the small things, and in this case PHP should let me know and let me know forcefully.  Not with a puny warning I’m likely to miss.</p>
<p>Otherwise, I might end up losing my sanity.</p>
<p><br/><br/><a href="http://www.programmersparadox.com/2008/04/14/php-insanity-vii/">PHP Insanity VII</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersparadox.com/2008/04/14/php-insanity-vii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Erlang Garbage Collection</title>
		<link>http://www.programmersparadox.com/2008/03/30/erlang-garbage-collection/</link>
		<comments>http://www.programmersparadox.com/2008/03/30/erlang-garbage-collection/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 04:36:48 +0000</pubDate>
		<dc:creator>Mark Mzyk</dc:creator>
				<category><![CDATA[Languages]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[garbage collection]]></category>
		<category><![CDATA[programming in the 21st century]]></category>

		<guid isPermaLink="false">http://www.programmersparadox.com/2008/03/30/erlang-garbage-collection/</guid>
		<description><![CDATA[When I asked the question about how Erlang Garbage Collection works, I expected that because of Erlang&#8217;s focus on concurrency its garbage collection algorithm would be incredibly complicated. I was wrong.  Turns out, it&#8217;s rather simple as far as garbage collection algorithms go, thanks in large part to how Erlang uses processes. Erlang Garbage Collection<p><br/><br/><a href="http://www.programmersparadox.com/2008/03/30/erlang-garbage-collection/">Erlang Garbage Collection</a></p>
]]></description>
			<content:encoded><![CDATA[<p>When I <a href="http://www.nabble.com/Erlang-Garbage-Collection-to16193960.html#a16193960">asked the question about how Erlang Garbage Collection works</a>, I expected that because of Erlang&#8217;s focus on concurrency its garbage collection algorithm would be incredibly complicated.</p>
<p>I was wrong.  Turns out,<a href="http://prog21.dadgum.com/16.html"> it&#8217;s rather simple as far as garbage collection algorithms go</a>, thanks in large part to how Erlang uses processes.</p>
<p><br/><br/><a href="http://www.programmersparadox.com/2008/03/30/erlang-garbage-collection/">Erlang Garbage Collection</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersparadox.com/2008/03/30/erlang-garbage-collection/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP Insanity VI</title>
		<link>http://www.programmersparadox.com/2008/03/21/php-insanity-vi/</link>
		<comments>http://www.programmersparadox.com/2008/03/21/php-insanity-vi/#comments</comments>
		<pubDate>Fri, 21 Mar 2008 15:14:16 +0000</pubDate>
		<dc:creator>Mark Mzyk</dc:creator>
				<category><![CDATA[Languages]]></category>
		<category><![CDATA[coffeeghost.net]]></category>
		<category><![CDATA[insanity]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.programmersparadox.com/2008/03/21/php-insanity-vi/</guid>
		<description><![CDATA[Today&#8217;s quote comes from CoffeeGhost.net: PHP is simple to set up for web apps and easy to learn. Nearly all web hosts support it and there are many easy to install applications (like, for example, WordPress). But it has a lot of quirks and inconsistencies (too long to go into here) that it doesn’t need [...]<p><br/><br/><a href="http://www.programmersparadox.com/2008/03/21/php-insanity-vi/">PHP Insanity VI</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s quote comes from <a href="http://coffeeghost.net/">CoffeeGhost.net</a>:</p>
<blockquote><p>PHP is simple to set up for web apps and easy to learn. Nearly all web hosts support it and there are many easy to install applications (like, for example, WordPress). But it has a lot of quirks and inconsistencies (too long to go into here) that it doesn’t need to have. These weren’t design trade-offs, they were just the result of poor planning. Hence the need for programming language theory.</p></blockquote>
<p>This quote appears <a href="http://coffeeghost.net/2008/03/19/your-ignorance-does-not-make-a-programming-language-suck/">as part of a longer article </a>that is a great read on the reasons you should and shouldn&#8217;t criticize a language.</p>
<p><br/><br/><a href="http://www.programmersparadox.com/2008/03/21/php-insanity-vi/">PHP Insanity VI</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersparadox.com/2008/03/21/php-insanity-vi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
