<?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>Endlessly Curious &#187; php</title>
	<atom:link href="http://www.endlesslycurious.com/category/programming/php-programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.endlesslycurious.com</link>
	<description>by Daniel Brown</description>
	<lastBuildDate>Thu, 03 Jun 2010 16:53:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Web Development Frameworks</title>
		<link>http://www.endlesslycurious.com/2008/11/13/web-development-frameworks/</link>
		<comments>http://www.endlesslycurious.com/2008/11/13/web-development-frameworks/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 08:00:47 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Web Dev]]></category>

		<guid isPermaLink="false">http://www.endlesslycurious.com/?p=738</guid>
		<description><![CDATA[When I created my first website back in 1998 it was purely static HTML that I created with Adobe&#8217;s DreamWeaver application.  Next I discovered dynamic websites built using php and MySQL databases, so my next few sites were all written in php and accessing a MySQL database for the content.  I have to confess that [...]]]></description>
			<content:encoded><![CDATA[<p>When I created my first website back in 1998 it was purely static <a href="http://en.wikipedia.org/wiki/HTML">HTML</a> that I created with Adobe&#8217;s <a href="http://www.adobe.com/products/dreamweaver/">DreamWeaver</a> application.  Next I discovered dynamic websites built using <a href="http://www.php.net/">php</a> and <a href="http://www.mysql.com/">MySQL</a> databases, so my next few sites were all written in php and accessing a MySQL database for the content.  I have to confess that these initial dynamic sites were written in the worst style possible: inline php in the HTML and spaghetti php, all things that <a href="http://www.tbray.org/ongoing/When/200x/2006/02/17/PHP">invoke</a> <a href="http://www.codinghorror.com/blog/archives/001119.html">horror</a> in other programmers.</p>
<p>It was not until I started helping out with <a href="http://www.rockclimbing.com/">RockClimbing.com</a> for a brief period which exposed me to a large scale php project supporting many thousands of users.  With its advanced language usage, separation of code, content and layout with <a href="http://www.smarty.net/">smarty</a> templates, advanced caching and high performance database queries (one of the developers ended up working for MySQL iirc) it was beyond anything I had seen before.  All this opened my eyes to how to architect a site in php correctly and that it could be a truly elegant language to work with and I am not alone in this <a href="http://www.sitepoint.com/blogs/2006/02/21/a-pro-php-rant/">feeling</a>.  Then for a period of several years my personal site fell into disuse as I was distracted by work and life from doing any active web development.</p>
<p>This year I decided to start this blog on a new domain name and start writing about software engineering and programming.  My choice of blog engine?  <a href="http://wordpress.org/">WordPress</a>: which is a php based blogging engine which runs with MySQL as its database.  I found myself tweaking my WordPress installation almost immediately and I found it easy enough to do as php was already familiar to me.  In fact I&#8217;ve been tweaking so much that I&#8217;ve now set-up a Perforce server at home so I can track, audit and keep a log of my changes.  As I&#8217;ve explored the WordPress code base over the months, I&#8217;ve noticed that it is not the prettiest of code in place and again I&#8217;m <a href="http://mgeisler.net/2005/05/wordpress-code-quality/">not</a> <a href="http://www.codinghorror.com/blog/archives/001105.html">alone</a> <a href="http://codeutopia.net/blog/2008/01/26/impressions-on-wordpress/">in</a> <a href="http://twitter.com/codinghorror/statuses/994018417">noticing</a> <a href="http://talideon.com/weblog/2006/06/bad-wordpress.cfm">this</a>.</p>
<p>Please don&#8217;t misunderstand me, I like WordPress <em>a lot</em>, it has made setting up and running this blog <em>trivial</em>, especially when compared with writing my own blog engine from scratch. I&#8217;m simply commenting on my perception of the quality of the underlying source code, something I think all programmers do especially with things they&#8217;ve written (although I did not write WordPress, I just modified it).  It would be nice to see a code tidy up and the introduction of templates and caching to the core engine, but that is a big job to undertake and I don&#8217;t think I have the required amount of spare time to achieve it myself.</p>
<p>All this has got me thinking about the recent(ish) upsurge in the number of web development frameworks that are embracing things like <a href="http://en.wikipedia.org/wiki/Object-relational_mapping">Object Relational Mapping</a> (ORM) and development models like the <a href="http://en.wikipedia.org/wiki/Model_View_Controller">Model-View-Controller</a> (MVC) pattern.  The two programming languages that seem to be leading this charge are <a href="http://www.python.org/">Python</a> with <a href="http://www.djangoproject.com/">DJango</a> and <a href="http://www.ruby-lang.org/en/">Ruby</a> with its <a href="http://www.rubyonrails.org/">Rails</a> framework, no doubt there are other frameworks in other languages too (e.g. <a href="http://www.asp.net/mvc/">ASP MVC</a>, php&#8217;s <a href="http://www.symfony-project.org/">symfony</a> framework).  The increase in popularity of these frameworks with built in template engines and abstraction of content from layout and logic via MVC are making me consider setting out on the path of writing my own personal blog engine again.</p>
<p>Mostly writing my own blog engine is a way to learn and embrace these new technologies and concepts and also a chance to see what all the fuss is about.  This would mean leaving the cosy comfort of my WordPress armchair, so most likely this experiment will become something I initially develop in a test <a href="http://en.wikipedia.org/wiki/Sandbox_(software_development)">sandbox</a> at home until I have something that is worthy of publishing online.  My decision now is what language and framework to use.  Do I stick to php with Smarty and MySQL or do I try something new like Python&#8217;s Django or Ruby on Rails?  Right now I&#8217;m tempted by either Python or Ruby for reasons I will talk about in a post tomorrow.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.endlesslycurious.com/2008/11/13/web-development-frameworks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
