I recently watched Guy Steele&#x27;s &quot;Growing a Language&quot; talk. It&#x27;s very much related to jmoiron&#x27;s post here, and is worth a watch despite its age:<p><a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=_ahvzDzKdB0" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=_ahvzDzKdB0</a><p>Steele&#x27;s commentary on &quot;Worse is Better&quot; seems to me to be a better representation of the original essay than the one expressed here about Go. Steele says:<p>&quot;The gist of [&#x27;Worse is Better&#x27;] is that the best way to get a language used by many persons is not to design and build &#x27;The Right Thing,&#x27; because that will take too long. In a race, a small language with warts will beat a well designed
language because users will not wait for the right thing; they will use the language that is quick and cheap, and put up with the warts. Once a small language fills a niche, it is hard to take its place.&quot;<p>In other words, the lesson of &#x27;Worse is Better&#x27; is that getting a &#x27;good enough&#x27; thing to market, and benefiting from the network effects of its widespread use, will always beat getting the &#x27;the really good&#x27; thing to market in the same category, because the cost of delay is the loss of (community) network effects. The illustrative example here is UNIX and C, but it can be easily cross-applied to more recent projects.<p>From that vantage point, Go isn&#x27;t a good example of &#x27;Worse is Better&#x27;. It occupies the same niche as C, but was delivered nearly 4 decades later. It seems to be a &quot;second edition of C&quot; designed with very explicit goals of correcting specific deficiencies of C as a systems programming language, but without the scope creep that characterizes many &quot;second systems&quot;.<p>Other languages -- like Python and Scala -- occupy completely different niches and have already achieved similar scale of network effects.<p>The rest of Guy Steele&#x27;s talk is worth watching, because his high-level point is that the languages that win aren&#x27;t the simpler ones, or the ones with the simplest&#x2F;best design, but instead are the &quot;growable&quot; ones that get to market. For example, from Steele&#x27;s vantage point, the success of a programming ecosystem like Python&#x27;s would be evaluated as follows: it isn&#x27;t that it has the right level of simplicity&#x2F;dynamism, or an appropriate programming paradigm. That Python made good decisions there helps, but they aren&#x27;t the key ingredients. Instead, its success is that it <i>shipped</i> in 1991, <i>evolved</i> over time to keep up with programming trends, that it has an awesome &#x27;import&#x27; statement, and that programmers feel they can &#x27;grow&#x27; the language through libraries (e.g. Django for web development, Pandas for data analysis) without waiting on the slow core language or stdlib evolutionary process.