<?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 Best Programming Language for a Lean Startup</title>
	<atom:link href="http://kevindewalt.com/blog/2009/10/14/the-best-programming-language-for-a-lean-startup/feed/" rel="self" type="application/rss+xml" />
	<link>http://kevindewalt.com/blog/2009/10/14/the-best-programming-language-for-a-lean-startup/</link>
	<description>Kevin Dewalt&#039;s experiences as a DC tech entrepreneur</description>
	<lastBuildDate>Mon, 08 Mar 2010 02:13:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Jack Mullaney</title>
		<link>http://kevindewalt.com/blog/2009/10/14/the-best-programming-language-for-a-lean-startup/comment-page-1/#comment-40094</link>
		<dc:creator>Jack Mullaney</dc:creator>
		<pubDate>Sat, 26 Dec 2009 15:52:04 +0000</pubDate>
		<guid isPermaLink="false">http://kevindewalt.com/blog/?p=159#comment-40094</guid>
		<description>Yes, it is the programmer more than the language that makes the difference, but there are a few basics:
1) Choose a popular language so you can easily find programmers.
2) Object oriented is best.
3) Structured is best.
4) Probably the simplest way to identify good code (and a good language) is to read some.  The more straight forward it seems, the better it is.  (Easy to understand = hard to hide bugs)
5) Evolve instead of Develop your code. (Build simple apps for fast feedback, change/add code to improve it.)
6) Whatever you have written will be wrong.  Plan for change.  Expect to undo.
7) Write the code in two orders.
a) Code the observable (probably GUI) first for feedback
b) Code the confusing/problematic parts first for feed-forward</description>
		<content:encoded><![CDATA[<p>Yes, it is the programmer more than the language that makes the difference, but there are a few basics:<br />
1) Choose a popular language so you can easily find programmers.<br />
2) Object oriented is best.<br />
3) Structured is best.<br />
4) Probably the simplest way to identify good code (and a good language) is to read some.  The more straight forward it seems, the better it is.  (Easy to understand = hard to hide bugs)<br />
5) Evolve instead of Develop your code. (Build simple apps for fast feedback, change/add code to improve it.)<br />
6) Whatever you have written will be wrong.  Plan for change.  Expect to undo.<br />
7) Write the code in two orders.<br />
a) Code the observable (probably GUI) first for feedback<br />
b) Code the confusing/problematic parts first for feed-forward</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: philip andrew</title>
		<link>http://kevindewalt.com/blog/2009/10/14/the-best-programming-language-for-a-lean-startup/comment-page-1/#comment-37777</link>
		<dc:creator>philip andrew</dc:creator>
		<pubDate>Mon, 19 Oct 2009 01:11:20 +0000</pubDate>
		<guid isPermaLink="false">http://kevindewalt.com/blog/?p=159#comment-37777</guid>
		<description>There are &quot;sweet-spots&quot; and &quot;ugly-spots&quot; in computer languages and software tools, frameworks, etc. For example, if you were programming Struts version 1 in Java, thats a ugly spot. A sweet spot may be Liftweb in Scala.

Be careful of the ugly spots.</description>
		<content:encoded><![CDATA[<p>There are &#8220;sweet-spots&#8221; and &#8220;ugly-spots&#8221; in computer languages and software tools, frameworks, etc. For example, if you were programming Struts version 1 in Java, thats a ugly spot. A sweet spot may be Liftweb in Scala.</p>
<p>Be careful of the ugly spots.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason Huang</title>
		<link>http://kevindewalt.com/blog/2009/10/14/the-best-programming-language-for-a-lean-startup/comment-page-1/#comment-37776</link>
		<dc:creator>Jason Huang</dc:creator>
		<pubDate>Mon, 19 Oct 2009 01:05:14 +0000</pubDate>
		<guid isPermaLink="false">http://kevindewalt.com/blog/?p=159#comment-37776</guid>
		<description>Depend on what you feel most comfortable with, skills you have, situation calls for specific technologies vs. others. 

A good developer can often do it in different languages, they have the good judgement of making the good call.

PHP is highly recommended because it&#039;s straight-forward and widely used with lots of resources &amp; help available if somebody gets stuck.</description>
		<content:encoded><![CDATA[<p>Depend on what you feel most comfortable with, skills you have, situation calls for specific technologies vs. others. </p>
<p>A good developer can often do it in different languages, they have the good judgement of making the good call.</p>
<p>PHP is highly recommended because it&#8217;s straight-forward and widely used with lots of resources &amp; help available if somebody gets stuck.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Piet Hadermann</title>
		<link>http://kevindewalt.com/blog/2009/10/14/the-best-programming-language-for-a-lean-startup/comment-page-1/#comment-37770</link>
		<dc:creator>Piet Hadermann</dc:creator>
		<pubDate>Sun, 18 Oct 2009 21:18:02 +0000</pubDate>
		<guid isPermaLink="false">http://kevindewalt.com/blog/?p=159#comment-37770</guid>
		<description>You could also use the technology as a recruitment filter. A job position for a java or C# programmer will attract different kind of developers compared to one for python or ruby.  (just picking the programming languages that pop into my head here - I wouldn&#039;t dare to say one is better than the other... I have an almost abnormal preference for ruby though)

Not saying that java or C# programmers aren&#039;t any good, but there will be a lot more &#039;career programmers&#039; who aren&#039;t really passionate about what they do, and just as well do something else if it would make them more $$$. Not sure you&#039;d want these in a startup.

But then, I know someone who started a startup last year (probably the most brilliant developer I&#039;ve ever met) and he&#039;s looking for people with F# or Haskell skills, and just is unable to find someone. There&#039;s no advance in that either.</description>
		<content:encoded><![CDATA[<p>You could also use the technology as a recruitment filter. A job position for a java or C# programmer will attract different kind of developers compared to one for python or ruby.  (just picking the programming languages that pop into my head here &#8211; I wouldn&#8217;t dare to say one is better than the other&#8230; I have an almost abnormal preference for ruby though)</p>
<p>Not saying that java or C# programmers aren&#8217;t any good, but there will be a lot more &#8216;career programmers&#8217; who aren&#8217;t really passionate about what they do, and just as well do something else if it would make them more $$$. Not sure you&#8217;d want these in a startup.</p>
<p>But then, I know someone who started a startup last year (probably the most brilliant developer I&#8217;ve ever met) and he&#8217;s looking for people with F# or Haskell skills, and just is unable to find someone. There&#8217;s no advance in that either.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg</title>
		<link>http://kevindewalt.com/blog/2009/10/14/the-best-programming-language-for-a-lean-startup/comment-page-1/#comment-37765</link>
		<dc:creator>Greg</dc:creator>
		<pubDate>Sun, 18 Oct 2009 17:13:49 +0000</pubDate>
		<guid isPermaLink="false">http://kevindewalt.com/blog/?p=159#comment-37765</guid>
		<description>The majority of software life-cycle cost is spent in maintenance and enhancement.  True, as a startup, your first focus has to be getting stuff done quickly, and that goal is best served by using the toolset you&#039;re used to.  But if you can also select a software ecosystem that has wide adoption and a huge support framework, you&#039;ll have the advantages of finding new talent much more readily, and of being able to slam in large chunks of functionality from open repositories, such as CPAN for Perl.  

If I were saddled with this problem, I&#039;d maybe have a look at &lt;a href=&quot;http://rakudo.org/&quot; rel=&quot;nofollow&quot;&gt;Perl 6&lt;/a&gt;.  It&#039;s almost done baking, and it not only has a language feature-set that makes it an awesome choice in terms of structure, flexibility and whipitupitude, (IMO Perl 6 &gt; Python 2 &gt; Perl 5), but also has the backward support of all the existing Perl 5 modules and culture (both features that Python never really gained).</description>
		<content:encoded><![CDATA[<p>The majority of software life-cycle cost is spent in maintenance and enhancement.  True, as a startup, your first focus has to be getting stuff done quickly, and that goal is best served by using the toolset you&#8217;re used to.  But if you can also select a software ecosystem that has wide adoption and a huge support framework, you&#8217;ll have the advantages of finding new talent much more readily, and of being able to slam in large chunks of functionality from open repositories, such as CPAN for Perl.  </p>
<p>If I were saddled with this problem, I&#8217;d maybe have a look at <a href="http://rakudo.org/" rel="nofollow">Perl 6</a>.  It&#8217;s almost done baking, and it not only has a language feature-set that makes it an awesome choice in terms of structure, flexibility and whipitupitude, (IMO Perl 6 &gt; Python 2 &gt; Perl 5), but also has the backward support of all the existing Perl 5 modules and culture (both features that Python never really gained).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: reboltutorial</title>
		<link>http://kevindewalt.com/blog/2009/10/14/the-best-programming-language-for-a-lean-startup/comment-page-1/#comment-37764</link>
		<dc:creator>reboltutorial</dc:creator>
		<pubDate>Sun, 18 Oct 2009 13:13:03 +0000</pubDate>
		<guid isPermaLink="false">http://kevindewalt.com/blog/?p=159#comment-37764</guid>
		<description>@cristian ditoiu  and six sigma is a (bad) remake of original quality founders Deming and Shewart PDCA http://en.wikipedia.org/wiki/PDCA ;)

As for the best programming languages the easy and general answer is &quot;there is no best it depends&quot; so maybe for example Rebol is one of the best programming language but I confess it&#039;s far from the best as for the ECOSYSTEM so I&#039;m pushing the Company (I&#039;m not employee of it though but just a user) to focus on that point with the next version of R3.

&lt;a href=&quot;http://reboltutorial.com/blog/r3/&quot; rel=&quot;nofollow&quot;&gt;Rebolution3: think Solution not Revolution&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>@cristian ditoiu  and six sigma is a (bad) remake of original quality founders Deming and Shewart PDCA <a href="http://en.wikipedia.org/wiki/PDCA" rel="nofollow">http://en.wikipedia.org/wiki/PDCA</a> <img src='http://kevindewalt.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>As for the best programming languages the easy and general answer is &#8220;there is no best it depends&#8221; so maybe for example Rebol is one of the best programming language but I confess it&#8217;s far from the best as for the ECOSYSTEM so I&#8217;m pushing the Company (I&#8217;m not employee of it though but just a user) to focus on that point with the next version of R3.</p>
<p><a href="http://reboltutorial.com/blog/r3/" rel="nofollow">Rebolution3: think Solution not Revolution</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cristian ditoiu</title>
		<link>http://kevindewalt.com/blog/2009/10/14/the-best-programming-language-for-a-lean-startup/comment-page-1/#comment-37762</link>
		<dc:creator>cristian ditoiu</dc:creator>
		<pubDate>Sun, 18 Oct 2009 08:50:17 +0000</pubDate>
		<guid isPermaLink="false">http://kevindewalt.com/blog/?p=159#comment-37762</guid>
		<description>Actualy the startup-feedback loop is a...remake(?) of dmaic from six sigma, nothing new .
http://www.isixsigma.com/dictionary/DMAIC-57.htm
The best language is the one you have control/expertise</description>
		<content:encoded><![CDATA[<p>Actualy the startup-feedback loop is a&#8230;remake(?) of dmaic from six sigma, nothing new .<br />
<a href="http://www.isixsigma.com/dictionary/DMAIC-57.htm" rel="nofollow">http://www.isixsigma.com/dictionary/DMAIC-57.htm</a><br />
The best language is the one you have control/expertise</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Parag Shah</title>
		<link>http://kevindewalt.com/blog/2009/10/14/the-best-programming-language-for-a-lean-startup/comment-page-1/#comment-37761</link>
		<dc:creator>Parag Shah</dc:creator>
		<pubDate>Sun, 18 Oct 2009 08:43:21 +0000</pubDate>
		<guid isPermaLink="false">http://kevindewalt.com/blog/?p=159#comment-37761</guid>
		<description>I agree &quot;the developer matters more than the language&quot;</description>
		<content:encoded><![CDATA[<p>I agree &#8220;the developer matters more than the language&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ant</title>
		<link>http://kevindewalt.com/blog/2009/10/14/the-best-programming-language-for-a-lean-startup/comment-page-1/#comment-37759</link>
		<dc:creator>Ant</dc:creator>
		<pubDate>Sun, 18 Oct 2009 07:42:27 +0000</pubDate>
		<guid isPermaLink="false">http://kevindewalt.com/blog/?p=159#comment-37759</guid>
		<description>Especially when talking about startups and Web based applications, there is a tendency to apply the same argument to process too. Agile might be great for a web app but not appropriate for building spacecraft. It frustrates me that experienced developers, as you say, know that the best language depends on the problem and their experience, but the best process is the shiny new idea.</description>
		<content:encoded><![CDATA[<p>Especially when talking about startups and Web based applications, there is a tendency to apply the same argument to process too. Agile might be great for a web app but not appropriate for building spacecraft. It frustrates me that experienced developers, as you say, know that the best language depends on the problem and their experience, but the best process is the shiny new idea.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt McKnight</title>
		<link>http://kevindewalt.com/blog/2009/10/14/the-best-programming-language-for-a-lean-startup/comment-page-1/#comment-37757</link>
		<dc:creator>Matt McKnight</dc:creator>
		<pubDate>Sun, 18 Oct 2009 06:13:22 +0000</pubDate>
		<guid isPermaLink="false">http://kevindewalt.com/blog/?p=159#comment-37757</guid>
		<description>I really like the idea of the technology stack as a recruiting tool, as long as the person you are bringing on can find/train others willing to go that route.  I&#039;ve seen projects run into problems with people having trouble adapting to functional programming, for example.</description>
		<content:encoded><![CDATA[<p>I really like the idea of the technology stack as a recruiting tool, as long as the person you are bringing on can find/train others willing to go that route.  I&#8217;ve seen projects run into problems with people having trouble adapting to functional programming, for example.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marco Tabini</title>
		<link>http://kevindewalt.com/blog/2009/10/14/the-best-programming-language-for-a-lean-startup/comment-page-1/#comment-37743</link>
		<dc:creator>Marco Tabini</dc:creator>
		<pubDate>Sat, 17 Oct 2009 22:13:27 +0000</pubDate>
		<guid isPermaLink="false">http://kevindewalt.com/blog/?p=159#comment-37743</guid>
		<description>Excellent article, to which I would only add not to get hung up on writing “beautiful” code—at least at the beginning. As you say, don&#039;t worry about scalability, or “clean code” or anything other than getting things done (that is, focus on functionality, UX and security).</description>
		<content:encoded><![CDATA[<p>Excellent article, to which I would only add not to get hung up on writing “beautiful” code—at least at the beginning. As you say, don&#8217;t worry about scalability, or “clean code” or anything other than getting things done (that is, focus on functionality, UX and security).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Craig Taverner</title>
		<link>http://kevindewalt.com/blog/2009/10/14/the-best-programming-language-for-a-lean-startup/comment-page-1/#comment-37694</link>
		<dc:creator>Craig Taverner</dc:creator>
		<pubDate>Fri, 16 Oct 2009 15:29:45 +0000</pubDate>
		<guid isPermaLink="false">http://kevindewalt.com/blog/?p=159#comment-37694</guid>
		<description>When I started my new business last year I made the &#039;strategic&#039; decision to base the product on Ruby, but when it come time to build the development team, guess what? I could only &lt;a href=&quot;http://amanzi.blogspot.com/2009/06/recruitment-ala-open-source.html&quot; rel=&quot;nofollow&quot;&gt;find top coders&lt;/a&gt; in Java. So, now most of the app is in Java, and I switched my &#039;strategy&#039; to JRuby, so I can benefit from both worlds.

One other point, experienced developers, or great developers, can switch languages. When I asked my top Java guy to allocate a day to read &#039;Programming Ruby&#039;, he was mildly offended that I thought he did not already know Ruby. Now he&#039;s my top Ruby guy too.</description>
		<content:encoded><![CDATA[<p>When I started my new business last year I made the &#8217;strategic&#8217; decision to base the product on Ruby, but when it come time to build the development team, guess what? I could only <a href="http://amanzi.blogspot.com/2009/06/recruitment-ala-open-source.html" rel="nofollow">find top coders</a> in Java. So, now most of the app is in Java, and I switched my &#8217;strategy&#8217; to JRuby, so I can benefit from both worlds.</p>
<p>One other point, experienced developers, or great developers, can switch languages. When I asked my top Java guy to allocate a day to read &#8216;Programming Ruby&#8217;, he was mildly offended that I thought he did not already know Ruby. Now he&#8217;s my top Ruby guy too.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joel Gascoigne</title>
		<link>http://kevindewalt.com/blog/2009/10/14/the-best-programming-language-for-a-lean-startup/comment-page-1/#comment-37663</link>
		<dc:creator>Joel Gascoigne</dc:creator>
		<pubDate>Thu, 15 Oct 2009 15:43:26 +0000</pubDate>
		<guid isPermaLink="false">http://kevindewalt.com/blog/?p=159#comment-37663</guid>
		<description>I&#039;ll be honest - I came to this post expecting to have to argue somewhat. However, your conclusion is the main point, and answer, for this question:

&lt;blockquote&gt;Great developers - not programming languages - build great products.&lt;/blockquote&gt;

We&#039;re following lean startup techniques at &lt;a href=&quot;http://myonepage.com&quot; rel=&quot;nofollow&quot;&gt;OnePage&lt;/a&gt; and luckily for us, I am a true technologist from a Computer Science background and I have had a passion for web technologies for many years. My Co-Founder is all about business and marketing specifically on the web, having just completed a masters in eBusiness Management.

As a developer turned entrepreneur myself, I&#039;d love to learn Ruby and Python sometime, but as you have very rightly said:

&lt;blockquote&gt;This isn’t the time to learn Python if you’re already a PHP stud. Get coding, start failing, start learning.&lt;/blockquote&gt;

That&#039;s the very approach we took.

My opinion is that it is the &lt;em&gt;framework&lt;/em&gt; you create within whichever language which will be the most important part. The framework needs to be engineered in such a way that things can be rapidly modified and extra functionality added quickly. In addition to that, the ability to constantly &lt;em&gt;refactor&lt;/em&gt; the code such that it is continually improving is vital.

I couldn&#039;t agree more with &lt;em&gt;not outsourcing&lt;/em&gt; the technology aspect of a startup though. BIG mistake. Web development is not a one-off product which can be outsourced, and by going the waterfall route of development you are going against the lean startup concept before you even begin! Also, at the early stages of a startup it is the developers who are the most valuable asset. Entrepreneurs must realise and embrace that the ideas are worthless without successful execution.</description>
		<content:encoded><![CDATA[<p>I&#8217;ll be honest &#8211; I came to this post expecting to have to argue somewhat. However, your conclusion is the main point, and answer, for this question:</p>
<blockquote><p>Great developers &#8211; not programming languages &#8211; build great products.</p></blockquote>
<p>We&#8217;re following lean startup techniques at <a href="http://myonepage.com" rel="nofollow">OnePage</a> and luckily for us, I am a true technologist from a Computer Science background and I have had a passion for web technologies for many years. My Co-Founder is all about business and marketing specifically on the web, having just completed a masters in eBusiness Management.</p>
<p>As a developer turned entrepreneur myself, I&#8217;d love to learn Ruby and Python sometime, but as you have very rightly said:</p>
<blockquote><p>This isn’t the time to learn Python if you’re already a PHP stud. Get coding, start failing, start learning.</p></blockquote>
<p>That&#8217;s the very approach we took.</p>
<p>My opinion is that it is the <em>framework</em> you create within whichever language which will be the most important part. The framework needs to be engineered in such a way that things can be rapidly modified and extra functionality added quickly. In addition to that, the ability to constantly <em>refactor</em> the code such that it is continually improving is vital.</p>
<p>I couldn&#8217;t agree more with <em>not outsourcing</em> the technology aspect of a startup though. BIG mistake. Web development is not a one-off product which can be outsourced, and by going the waterfall route of development you are going against the lean startup concept before you even begin! Also, at the early stages of a startup it is the developers who are the most valuable asset. Entrepreneurs must realise and embrace that the ideas are worthless without successful execution.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
