<?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: The pragmatic .NET developer</title>
	<atom:link href="http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer/feed" rel="self" type="application/rss+xml" />
	<link>http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=pragmatic-dotnet-developer</link>
	<description>A .NET developer in silicon valley</description>
	<lastBuildDate>Sun, 25 Dec 2011 15:10:30 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: steve</title>
		<link>http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6057</link>
		<dc:creator>steve</dc:creator>
		<pubDate>Fri, 01 Feb 2008 10:14:58 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6057</guid>
		<description>It&#039;s true, but I do think that it&#039;s possible to concentrate too much on purely ground-zero implementation and not enough on direction &amp; strategy. As much as we all need to get our heads down and *implement*, it is a good idea to poke our heads up once in a while and check our direction - that&#039;s one of the benefits of things like the GSDF I think.

In an ideal setup it&#039;s the job of programmers to do most of the coal-face delivery of code, analysts to figure out what business features are needed, designers to make sure the implementation is good, and architects to focus on technical direction. In smaller projects / teams it&#039;s of course common for one person to be doing all of these roles, which means it&#039;s very hard to get as much focus and inevitably, results win and things like analysis &amp; strategy tend to get glossed over, in my experience. As you say, it can easily be a full-time job to keep on top of everything - which is precisely why the good architects (the real ones, not the ones who just like to use the title) spend most of their time doing exactly this. We used to have access to these kinds of people and it was really very useful - they&#039;d not only do their own small-scale tests but they had access to tens of real-sized projects in the last 12 months, each feeding back practical experiences from their design / senior programming teams on what worked well, what could be done better. It&#039;s not easy to get hold of the good ones, because they&#039;re in demand, but I learned a lot from the time I spent with them.

I accept that most of this is idealistic in Guernsey where you&#039;re lucky if your team is bigger than you can count on one hand. One of teams I worked in was considered small by the standards of the people I was working with, but it had 2-4 analysts, 2-3 designers, an architect (part time, needed less as time went on), 12 programmers, 5 system testers, and a couple of managers. I operated mostly in the designer and programmer roles, and ended up being a local manager and occasional architect. I tried to learn as much as I could from the others while I had the opportunity. &#039;Large&#039; teams have their own problems of course, not least communication, organisation and agility to change, but once you&#039;ve experienced that kind of full-cycle process it&#039;s hard not to want to at least pull the best aspects of it into your normal working practice, and one of those is really trying to keep an open mind about what&#039;s out there. It&#039;s why I&#039;ll happily listen to .Net presentations even though I doubt I&#039;ll use it in the near future, given my particular needs, and why I enjoy debating issues like this. It&#039;s all good, experience-building stuff and I&#039;m sure it&#039;ll all come in handy some day.</description>
		<content:encoded><![CDATA[<p>It&#8217;s true, but I do think that it&#8217;s possible to concentrate too much on purely ground-zero implementation and not enough on direction &amp; strategy. As much as we all need to get our heads down and *implement*, it is a good idea to poke our heads up once in a while and check our direction &#8211; that&#8217;s one of the benefits of things like the GSDF I think.</p>
<p>In an ideal setup it&#8217;s the job of programmers to do most of the coal-face delivery of code, analysts to figure out what business features are needed, designers to make sure the implementation is good, and architects to focus on technical direction. In smaller projects / teams it&#8217;s of course common for one person to be doing all of these roles, which means it&#8217;s very hard to get as much focus and inevitably, results win and things like analysis &amp; strategy tend to get glossed over, in my experience. As you say, it can easily be a full-time job to keep on top of everything &#8211; which is precisely why the good architects (the real ones, not the ones who just like to use the title) spend most of their time doing exactly this. We used to have access to these kinds of people and it was really very useful &#8211; they&#8217;d not only do their own small-scale tests but they had access to tens of real-sized projects in the last 12 months, each feeding back practical experiences from their design / senior programming teams on what worked well, what could be done better. It&#8217;s not easy to get hold of the good ones, because they&#8217;re in demand, but I learned a lot from the time I spent with them.</p>
<p>I accept that most of this is idealistic in Guernsey where you&#8217;re lucky if your team is bigger than you can count on one hand. One of teams I worked in was considered small by the standards of the people I was working with, but it had 2-4 analysts, 2-3 designers, an architect (part time, needed less as time went on), 12 programmers, 5 system testers, and a couple of managers. I operated mostly in the designer and programmer roles, and ended up being a local manager and occasional architect. I tried to learn as much as I could from the others while I had the opportunity. &#8216;Large&#8217; teams have their own problems of course, not least communication, organisation and agility to change, but once you&#8217;ve experienced that kind of full-cycle process it&#8217;s hard not to want to at least pull the best aspects of it into your normal working practice, and one of those is really trying to keep an open mind about what&#8217;s out there. It&#8217;s why I&#8217;ll happily listen to .Net presentations even though I doubt I&#8217;ll use it in the near future, given my particular needs, and why I enjoy debating issues like this. It&#8217;s all good, experience-building stuff and I&#8217;m sure it&#8217;ll all come in handy some day.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Damien Guard</title>
		<link>http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6047</link>
		<dc:creator>Damien Guard</dc:creator>
		<pubDate>Thu, 31 Jan 2008 21:32:02 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6047</guid>
		<description>With the sheer number of combinations of new and exciting things out there following and evaluating them all is a full time job - with or without other people&#039;s opinions.

At the end of the day I need to deliver functionality because that&#039;s what they&#039;re paying for.

The search for the holy grail combination of frameworks and architecture isn&#039;t what they ordered.

[)amien</description>
		<content:encoded><![CDATA[<p>With the sheer number of combinations of new and exciting things out there following and evaluating them all is a full time job &#8211; with or without other people&#8217;s opinions.</p>
<p>At the end of the day I need to deliver functionality because that&#8217;s what they&#8217;re paying for.</p>
<p>The search for the holy grail combination of frameworks and architecture isn&#8217;t what they ordered.</p>
<p>[)amien</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: steve</title>
		<link>http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6046</link>
		<dc:creator>steve</dc:creator>
		<pubDate>Thu, 31 Jan 2008 18:11:10 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6046</guid>
		<description>A project that&#039;s not getting many updates anymore but does what it says on the tin is often a perfectly good choice. The user population is usually the best thing to go by - successful projects probably have a 1:10000 or more ratio between contributors and users. If a few books have been written about them, esepcially if they&#039;re getting into their second editions or later, that&#039;s also a good sign. Maturity isn&#039;t that hard to judge, you just have to look beyond release frequency - it&#039;s perfectly normal for there to be several very healthy projects in the same area. 


&quot;You&#039;ll need some guidance and whoever gives it will be recommending either what they are invested in or what they think is the latest and greatest unproven technology depending on their persona.&quot;

How is that any different to .Net? Some people will recommend VB.Net, some will prefer C#, some (like you) will push the bleeding edge features like LINQ, others will stick with older tech.

&quot;Even 5 solutions to a single problem is too much when you are starting out. It has been described as The Tyranny of Too Much Choice and piecing together software...&quot;

That might apply to juniors, but as experienced engineers / consultants it&#039;s our job to make sure we know the landscape a little better than most and to be able to make these kinds of choices. There is no universal &#039;best&#039; answer of course, but the reason people pay us is so that we can make informed decisions about the best approach for the particular problem at hand. It&#039;s not like we have to do it in a vaccuum, there are a ton of books and articles discussing the relative pros and cons of different set ups. Probably none are entirely objective of course because everyone has their favourite, but as professionals we&#039;re supposed to be able to sift through all that to make as balanced a recommendation as we&#039;re able to. We should be able to leave the language/platform loyalty to the junior programmers and make a rational judgement, although of course we each have our own leanings.</description>
		<content:encoded><![CDATA[<p>A project that&#8217;s not getting many updates anymore but does what it says on the tin is often a perfectly good choice. The user population is usually the best thing to go by &#8211; successful projects probably have a 1:10000 or more ratio between contributors and users. If a few books have been written about them, esepcially if they&#8217;re getting into their second editions or later, that&#8217;s also a good sign. Maturity isn&#8217;t that hard to judge, you just have to look beyond release frequency &#8211; it&#8217;s perfectly normal for there to be several very healthy projects in the same area. </p>
<p>&#8220;You&#8217;ll need some guidance and whoever gives it will be recommending either what they are invested in or what they think is the latest and greatest unproven technology depending on their persona.&#8221;</p>
<p>How is that any different to .Net? Some people will recommend VB.Net, some will prefer C#, some (like you) will push the bleeding edge features like LINQ, others will stick with older tech.</p>
<p>&#8220;Even 5 solutions to a single problem is too much when you are starting out. It has been described as The Tyranny of Too Much Choice and piecing together software&#8230;&#8221;</p>
<p>That might apply to juniors, but as experienced engineers / consultants it&#8217;s our job to make sure we know the landscape a little better than most and to be able to make these kinds of choices. There is no universal &#8216;best&#8217; answer of course, but the reason people pay us is so that we can make informed decisions about the best approach for the particular problem at hand. It&#8217;s not like we have to do it in a vaccuum, there are a ton of books and articles discussing the relative pros and cons of different set ups. Probably none are entirely objective of course because everyone has their favourite, but as professionals we&#8217;re supposed to be able to sift through all that to make as balanced a recommendation as we&#8217;re able to. We should be able to leave the language/platform loyalty to the junior programmers and make a rational judgement, although of course we each have our own leanings.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Damien Guard</title>
		<link>http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6045</link>
		<dc:creator>Damien Guard</dc:creator>
		<pubDate>Thu, 31 Jan 2008 15:32:22 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6045</guid>
		<description>&quot;In an open source world, there might have been 5-10 projects targetting this, and the rubbish ones would just fall by the wayside, leaving a small number of good options.&quot;

Open source solutions don&#039;t suddenly die but experience a kind of half-life radioactive decay if I understand your other response. They stick around on sites like SourceForge getting little or no attention - is it because it they are mature or abandoned? 

Coming to Java for the first time wanting to write a web app is a daunting experience. You&#039;ll need some guidance and whoever gives it will be recommending either what they are invested in or what they think is the latest and greatest unproven technology depending on their persona.

Even 5 solutions to a single problem is too much when you are starting out.  It has been described as &lt;a href=&quot;http://blackfriarsinc.com/totm.html&quot; rel=&quot;nofollow&quot;&gt;The Tyranny of Too Much Choice&lt;/a&gt; and piecing together software is worse given you must choose a solution before you understand the problem.  You could spend months selecting components, tools and framework before starting to deliver real end-user requirements which may, and often do, take you in a different direction to the one you thought you were going in.

Give me a single set of tools to start and when I outgrow one I&#039;ll have a clear idea of what I want to replace it.

[)amien</description>
		<content:encoded><![CDATA[<p>&#8220;In an open source world, there might have been 5-10 projects targetting this, and the rubbish ones would just fall by the wayside, leaving a small number of good options.&#8221;</p>
<p>Open source solutions don&#8217;t suddenly die but experience a kind of half-life radioactive decay if I understand your other response. They stick around on sites like SourceForge getting little or no attention &#8211; is it because it they are mature or abandoned? </p>
<p>Coming to Java for the first time wanting to write a web app is a daunting experience. You&#8217;ll need some guidance and whoever gives it will be recommending either what they are invested in or what they think is the latest and greatest unproven technology depending on their persona.</p>
<p>Even 5 solutions to a single problem is too much when you are starting out.  It has been described as <a href="http://blackfriarsinc.com/totm.html" rel="nofollow">The Tyranny of Too Much Choice</a> and piecing together software is worse given you must choose a solution before you understand the problem.  You could spend months selecting components, tools and framework before starting to deliver real end-user requirements which may, and often do, take you in a different direction to the one you thought you were going in.</p>
<p>Give me a single set of tools to start and when I outgrow one I&#8217;ll have a clear idea of what I want to replace it.</p>
<p>[)amien</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: steve</title>
		<link>http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6043</link>
		<dc:creator>steve</dc:creator>
		<pubDate>Thu, 31 Jan 2008 14:07:49 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6043</guid>
		<description>&quot;There tends to be one obvious way to do things based on what is provided in the .NET box. If you want to write web apps WebForms is where you start.&quot;

This actually illustrates my reasons for preferring choice. The &#039;one solution&#039; set up is easier to grasp, but WebForms haven&#039;t exactly set the world on fire. If the one option you&#039;re offered isn&#039;t very good, that&#039;s not a great position to be in. In an open source world, there might have been 5-10 projects targetting this, and the rubbish ones would just fall by the wayside, leaving a small number of good options. Which one you like best is down to precisely what kind of application you&#039;re making and perhaps personal preference.</description>
		<content:encoded><![CDATA[<p>&#8220;There tends to be one obvious way to do things based on what is provided in the .NET box. If you want to write web apps WebForms is where you start.&#8221;</p>
<p>This actually illustrates my reasons for preferring choice. The &#8216;one solution&#8217; set up is easier to grasp, but WebForms haven&#8217;t exactly set the world on fire. If the one option you&#8217;re offered isn&#8217;t very good, that&#8217;s not a great position to be in. In an open source world, there might have been 5-10 projects targetting this, and the rubbish ones would just fall by the wayside, leaving a small number of good options. Which one you like best is down to precisely what kind of application you&#8217;re making and perhaps personal preference.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: steve</title>
		<link>http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6042</link>
		<dc:creator>steve</dc:creator>
		<pubDate>Thu, 31 Jan 2008 14:02:20 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6042</guid>
		<description>&quot;A project not being actively developed is as good as dead unless your project isn&#039;t moving either.&quot;

True in some cases, but very untrue in others. By &#039;actively developed&#039; perhaps you mean &#039;adding more features&#039;. There are a ton of cases I can cite where adding new features is just disruptive - if a solution does what you need, and it&#039;s getting bugfixes, that&#039;s enough. Stable systems are stable because they don&#039;t change that much. When I&#039;m developing on top of libraries, I actually prefer if they&#039;re not changing much, beyond routine maintenance, because changes underneath me are a distraction. Of course that only works if the solution is mature enough in the first place - and I personally find that Java frameworks are more mature, so don&#039;t change anywhere near as much as .Net does. Personally I view that volatility as a lack of maturity rather than an attribute to be lauded. 

Re Devil: it had bugs that weren&#039;t getting fixed, that&#039;s why we switched - it had nothing to do with wanting an actively changing feature list. Had DevIL been fixing bugs more often it would have been less of an issue, because feature wise it was fine.</description>
		<content:encoded><![CDATA[<p>&#8220;A project not being actively developed is as good as dead unless your project isn&#8217;t moving either.&#8221;</p>
<p>True in some cases, but very untrue in others. By &#8216;actively developed&#8217; perhaps you mean &#8216;adding more features&#8217;. There are a ton of cases I can cite where adding new features is just disruptive &#8211; if a solution does what you need, and it&#8217;s getting bugfixes, that&#8217;s enough. Stable systems are stable because they don&#8217;t change that much. When I&#8217;m developing on top of libraries, I actually prefer if they&#8217;re not changing much, beyond routine maintenance, because changes underneath me are a distraction. Of course that only works if the solution is mature enough in the first place &#8211; and I personally find that Java frameworks are more mature, so don&#8217;t change anywhere near as much as .Net does. Personally I view that volatility as a lack of maturity rather than an attribute to be lauded. </p>
<p>Re Devil: it had bugs that weren&#8217;t getting fixed, that&#8217;s why we switched &#8211; it had nothing to do with wanting an actively changing feature list. Had DevIL been fixing bugs more often it would have been less of an issue, because feature wise it was fine.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Damien Guard</title>
		<link>http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6041</link>
		<dc:creator>Damien Guard</dc:creator>
		<pubDate>Thu, 31 Jan 2008 12:54:11 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6041</guid>
		<description>Coming to .NET is a lot simpler than coming to Java although admittedly some of because it has less legacy cruft accumulation.

There tends to be one obvious way to do things based on what is provided in the .NET box.  If you want to write web apps WebForms is where you start. Where you start with Java is anyone&#039;s guess.

A project not being actively developed is as good as dead unless your project isn&#039;t moving either.

You yourself have had first hand experience of this with the graphic file format decoding mechanism you used in Ogre3D.  You wanted to support Mac OS X and newer formats and Devil wasn&#039;t moving so you switched to FreeImage. The fact the source was open might have been fine for a bug fix or two but you certainly didn&#039;t want to start maintaining image loading code or you&#039;d have not used a library in the first place.

[)amien</description>
		<content:encoded><![CDATA[<p>Coming to .NET is a lot simpler than coming to Java although admittedly some of because it has less legacy cruft accumulation.</p>
<p>There tends to be one obvious way to do things based on what is provided in the .NET box.  If you want to write web apps WebForms is where you start. Where you start with Java is anyone&#8217;s guess.</p>
<p>A project not being actively developed is as good as dead unless your project isn&#8217;t moving either.</p>
<p>You yourself have had first hand experience of this with the graphic file format decoding mechanism you used in Ogre3D.  You wanted to support Mac OS X and newer formats and Devil wasn&#8217;t moving so you switched to FreeImage. The fact the source was open might have been fine for a bug fix or two but you certainly didn&#8217;t want to start maintaining image loading code or you&#8217;d have not used a library in the first place.</p>
<p>[)amien</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: steve</title>
		<link>http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6040</link>
		<dc:creator>steve</dc:creator>
		<pubDate>Thu, 31 Jan 2008 10:24:57 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6040</guid>
		<description>Finally, as I tried to make clear in the article, I&#039;m not trying to say that I think you&#039;re wrong in choosing .Net - as you say, what works for you is inherently &#039;right&#039;. I can especially appreciate that in the local environment where there&#039;s not many IT people to choose from, and firms mostly have a small IT function which has most likely evolved from small office programs - so Microsoft is a more natural choice. My background of course comes from the other end - an organisation that was running custom-built mainframe software since 1983 and for whom off-the-shelf stuff just wasn&#039;t an option; software development is a major investment. I inherently moved in circles (UK / European software developers mainly) who didn&#039;t use Microsoft all the time, in fact it wasn&#039;t even considered close to mature enough - these are teams that had worked on things like the billing systems for all the trains in the UK for example. We just come from very different backgrounds which have shaped our preferences. I guess it would be dull if we agreed on everything ;)</description>
		<content:encoded><![CDATA[<p>Finally, as I tried to make clear in the article, I&#8217;m not trying to say that I think you&#8217;re wrong in choosing .Net &#8211; as you say, what works for you is inherently &#8216;right&#8217;. I can especially appreciate that in the local environment where there&#8217;s not many IT people to choose from, and firms mostly have a small IT function which has most likely evolved from small office programs &#8211; so Microsoft is a more natural choice. My background of course comes from the other end &#8211; an organisation that was running custom-built mainframe software since 1983 and for whom off-the-shelf stuff just wasn&#8217;t an option; software development is a major investment. I inherently moved in circles (UK / European software developers mainly) who didn&#8217;t use Microsoft all the time, in fact it wasn&#8217;t even considered close to mature enough &#8211; these are teams that had worked on things like the billing systems for all the trains in the UK for example. We just come from very different backgrounds which have shaped our preferences. I guess it would be dull if we agreed on everything ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: steve</title>
		<link>http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6039</link>
		<dc:creator>steve</dc:creator>
		<pubDate>Thu, 31 Jan 2008 09:50:39 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6039</guid>
		<description>Oh, and about training / confusion - it&#039;s all about familiarity really. You&#039;ve been very Microsoft oriented for years, so of course anything else (that isn&#039;t trivial) is going to be a rougher ride. To a total newcomer, .Net looks similar to how Java looks to you probably - should you use WebForms, what kind of data access is best, should I use VB.Net or C#, should I aimat .Net 2.0, 3.0 or 3.5, yadda yadda. Having trained many developers in Java and other environments I wouldn&#039;t say any of them is harder than the other, but looking across to a new environment is always daunting.</description>
		<content:encoded><![CDATA[<p>Oh, and about training / confusion &#8211; it&#8217;s all about familiarity really. You&#8217;ve been very Microsoft oriented for years, so of course anything else (that isn&#8217;t trivial) is going to be a rougher ride. To a total newcomer, .Net looks similar to how Java looks to you probably &#8211; should you use WebForms, what kind of data access is best, should I use VB.Net or C#, should I aimat .Net 2.0, 3.0 or 3.5, yadda yadda. Having trained many developers in Java and other environments I wouldn&#8217;t say any of them is harder than the other, but looking across to a new environment is always daunting.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: steve</title>
		<link>http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6038</link>
		<dc:creator>steve</dc:creator>
		<pubDate>Thu, 31 Jan 2008 09:42:28 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/01/31/pragmatic-dotnet-developer#comment-6038</guid>
		<description>A few comments...

What makes you think CVS is dead? It&#039;s just stable, and needs few updates anymore. Sure, SVN is the current darling (I use it for new projects too) but that doesn&#039;t for a second that existing CVS repositories aren&#039;t perfectly happy the way they are. This is something I have a major problem with - people thinking that &#039;no longer fashionable&#039; means &#039;dead&#039;. If we go by that rule, .Net is dead and Ruby is king (in a couple of years it&#039;ll be something else). It might be the case in the proprietary world because suppliers deliberately EOL their products to sell you a new one, but popular open source projects don&#039;t die - ever. Unfortunately you don&#039;t have a lot of choice in the .Net community so perhaps you&#039;ve ended up backing projects that didn&#039;t have much serious long-term support. Fashion is fickle, what matters for investment in real systems is stability and maturity.  Mature systems might be boring, but they work and are here to stay.

&quot;Competition is important but I can not, in a professional capacity, recommend to customers something that I believe is less suitable in the interest of keeping the competition healthy.&quot;

You&#039;ve got that entirely backwards. It&#039;s not a case of &#039;keeping competition healthy&#039; at all - competition is always in the customer&#039;s interest, it&#039;s basic economics. You may have never experienced the detrimental aspects of a lack of competition, but that doesn&#039;t mean they don&#039;t exist.

&quot;Have a support contract with somebody else to work on it (single-supplier scenario?)&quot;

Paying for support isn&#039;t a single-supplier scenario, it&#039;s just a safety net. You don&#039;t need it, you&#039;re not forced to take it, and it has no bearing on your use, development or deployment of the product. Single-supplier issues are about a lack of consumer control; taking out an optional supplementary service doesn&#039;t affect the underlying dynamics of who controls what.</description>
		<content:encoded><![CDATA[<p>A few comments&#8230;</p>
<p>What makes you think CVS is dead? It&#8217;s just stable, and needs few updates anymore. Sure, SVN is the current darling (I use it for new projects too) but that doesn&#8217;t for a second that existing CVS repositories aren&#8217;t perfectly happy the way they are. This is something I have a major problem with &#8211; people thinking that &#8216;no longer fashionable&#8217; means &#8216;dead&#8217;. If we go by that rule, .Net is dead and Ruby is king (in a couple of years it&#8217;ll be something else). It might be the case in the proprietary world because suppliers deliberately EOL their products to sell you a new one, but popular open source projects don&#8217;t die &#8211; ever. Unfortunately you don&#8217;t have a lot of choice in the .Net community so perhaps you&#8217;ve ended up backing projects that didn&#8217;t have much serious long-term support. Fashion is fickle, what matters for investment in real systems is stability and maturity.  Mature systems might be boring, but they work and are here to stay.</p>
<p>&#8220;Competition is important but I can not, in a professional capacity, recommend to customers something that I believe is less suitable in the interest of keeping the competition healthy.&#8221;</p>
<p>You&#8217;ve got that entirely backwards. It&#8217;s not a case of &#8216;keeping competition healthy&#8217; at all &#8211; competition is always in the customer&#8217;s interest, it&#8217;s basic economics. You may have never experienced the detrimental aspects of a lack of competition, but that doesn&#8217;t mean they don&#8217;t exist.</p>
<p>&#8220;Have a support contract with somebody else to work on it (single-supplier scenario?)&#8221;</p>
<p>Paying for support isn&#8217;t a single-supplier scenario, it&#8217;s just a safety net. You don&#8217;t need it, you&#8217;re not forced to take it, and it has no bearing on your use, development or deployment of the product. Single-supplier issues are about a lack of consumer control; taking out an optional supplementary service doesn&#8217;t affect the underlying dynamics of who controls what.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

