<?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: What I want: Features as a first class programming concept</title>
	<atom:link href="http://www.youell.com/matt/writing/?feed=rss2&#038;p=27" rel="self" type="application/rss+xml" />
	<link>http://www.youell.com/matt/writing/?p=27</link>
	<description>simplify</description>
	<lastBuildDate>Wed, 31 Oct 2018 04:08:37 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: matt</title>
		<link>http://www.youell.com/matt/writing/?p=27&#038;cpage=1#comment-371</link>
		<dc:creator>matt</dc:creator>
		<pubDate>Mon, 27 Sep 2010 15:48:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=27#comment-371</guid>
		<description>@Richard - Thanks for the link. I may have seen that before but I&#039;m not sure. I used to follow Martin&#039;s writing more closely. You might be interested in Wheeler, the language I am inching toward release: http://www.youell.com/matt/writing/?p=659. It definitely lives in this event/feature space.</description>
		<content:encoded><![CDATA[<p>@Richard &#8211; Thanks for the link. I may have seen that before but I&#8217;m not sure. I used to follow Martin&#8217;s writing more closely. You might be interested in Wheeler, the language I am inching toward release: <a href="http://www.youell.com/matt/writing/?p=659" rel="nofollow">http://www.youell.com/matt/writing/?p=659</a>. It definitely lives in this event/feature space.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard</title>
		<link>http://www.youell.com/matt/writing/?p=27&#038;cpage=1#comment-370</link>
		<dc:creator>Richard</dc:creator>
		<pubDate>Thu, 23 Sep 2010 00:34:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=27#comment-370</guid>
		<description>I was at a talk by Martin Fowler last week on this very topic. He was advocating Event Driven Design as a solution to your very problem (I think he actually calls it Event Sourcing).

The general idea is that every change to the system state is an event. This includes data changes, business logic changes etc. 

We then have a long list of every event that has happened to the system. This means we can roll back and forward at runtime etc. We add a &#039;feature&#039; event, if later on we want to remove it we simply roll back the event stream to that point, remove it and roll forward again.

Have a look at http://martinfowler.com/eaaDev/EventNarrative.html for more details. 

The big drawbacks he mentioned were that it takes a lot of work to do, and that it is really, really hard to do it with traditional relational databases because of their fixed schema.</description>
		<content:encoded><![CDATA[<p>I was at a talk by Martin Fowler last week on this very topic. He was advocating Event Driven Design as a solution to your very problem (I think he actually calls it Event Sourcing).</p>
<p>The general idea is that every change to the system state is an event. This includes data changes, business logic changes etc. </p>
<p>We then have a long list of every event that has happened to the system. This means we can roll back and forward at runtime etc. We add a &#8216;feature&#8217; event, if later on we want to remove it we simply roll back the event stream to that point, remove it and roll forward again.</p>
<p>Have a look at <a href="http://martinfowler.com/eaaDev/EventNarrative.html" rel="nofollow">http://martinfowler.com/eaaDev/EventNarrative.html</a> for more details. </p>
<p>The big drawbacks he mentioned were that it takes a lot of work to do, and that it is really, really hard to do it with traditional relational databases because of their fixed schema.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: matt</title>
		<link>http://www.youell.com/matt/writing/?p=27&#038;cpage=1#comment-56</link>
		<dc:creator>matt</dc:creator>
		<pubDate>Tue, 16 Sep 2008 07:10:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=27#comment-56</guid>
		<description>@jgarrido Frameworks don&#039;t go far enough. I probably haven&#039;t explained what I&#039;m aiming for very well. A framework doesn&#039;t provide to you with the abstract concept of a Feature. I want to be able to declare a Feature much in the same way as I would declare a Class or a Function or a Namespace. Also, you list some web CMSes but this is a problem that cuts across all kinds of programming, not just stitching things together on the web. I do a variety of different types of software development and I would love to have this capability in just about every programming situation I find myself. For example, I originally started thinking about Features like this while working on a Windows desktop app.</description>
		<content:encoded><![CDATA[<p>@jgarrido Frameworks don&#8217;t go far enough. I probably haven&#8217;t explained what I&#8217;m aiming for very well. A framework doesn&#8217;t provide to you with the abstract concept of a Feature. I want to be able to declare a Feature much in the same way as I would declare a Class or a Function or a Namespace. Also, you list some web CMSes but this is a problem that cuts across all kinds of programming, not just stitching things together on the web. I do a variety of different types of software development and I would love to have this capability in just about every programming situation I find myself. For example, I originally started thinking about Features like this while working on a Windows desktop app.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: JGarrido</title>
		<link>http://www.youell.com/matt/writing/?p=27&#038;cpage=1#comment-55</link>
		<dc:creator>JGarrido</dc:creator>
		<pubDate>Tue, 16 Sep 2008 04:30:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=27#comment-55</guid>
		<description>It really sounds like what you want is Drupal/Joomla/WordPress — Something that is built off of a framework, and is component or module-based.</description>
		<content:encoded><![CDATA[<p>It really sounds like what you want is Drupal/Joomla/WordPress — Something that is built off of a framework, and is component or module-based.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
