<story><title>Why Is SQLite Coded in C? (2017)</title><url>https://sqlite.org/whyc.html</url></story><parent_chain><item><author>pcwalton</author><text>I agree. SQLite gets away with using C because it literally uses military-grade levels of verification. As John Regehr pointed out, SQLite is quite possibly the &lt;i&gt;only&lt;/i&gt; piece of software that goes to that level of validation and testing without being required to by law.&lt;p&gt;It&amp;#x27;s not just a matter of skill, either. The cost in terms of money and time needed to develop software in that way is completely impractical in almost any commercial scenario. Aside from some very specific situations, it&amp;#x27;s not an economically viable way to produce software.</text></item><item><author>jerf</author><text>I&amp;#x27;ve commented several times before that I consider &amp;quot;C&amp;quot; and &amp;quot;C with analysis backing&amp;quot; to be in practice two different languages. SQLite is the latter: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;sqlite.org&amp;#x2F;testing.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;sqlite.org&amp;#x2F;testing.html&lt;/a&gt;&lt;p&gt;Writing SQLite in &amp;quot;plain C&amp;quot; without all that would, well, simply not work.&lt;p&gt;I agree that &amp;quot;C with analysis backing&amp;quot; is the best language for SQLite right now. However, it should not be used as an example of &amp;quot;How C is a great language for programming in&amp;quot; unless you are also planning on skillfully using a very significant subset of the tools listed in that document. SQLite doesn&amp;#x27;t prove C is great; it demonstrates how much additional scaffolding is necessary to wrap around C to get that level of quality, and given the quantity and diversity of tools we are talking about, it is not particularly complimentary to &amp;quot;plain C&amp;quot;.</text></item></parent_chain><comment><author>bsenftner</author><text>it is not economically viable for entertainment or disposable &amp;quot;apps&amp;quot;, but extremely required for any serious, mission critical software. Seriously, the comments here betray how many people are in disposable software careers.</text></comment>
<story><title>Why Is SQLite Coded in C? (2017)</title><url>https://sqlite.org/whyc.html</url></story><parent_chain><item><author>pcwalton</author><text>I agree. SQLite gets away with using C because it literally uses military-grade levels of verification. As John Regehr pointed out, SQLite is quite possibly the &lt;i&gt;only&lt;/i&gt; piece of software that goes to that level of validation and testing without being required to by law.&lt;p&gt;It&amp;#x27;s not just a matter of skill, either. The cost in terms of money and time needed to develop software in that way is completely impractical in almost any commercial scenario. Aside from some very specific situations, it&amp;#x27;s not an economically viable way to produce software.</text></item><item><author>jerf</author><text>I&amp;#x27;ve commented several times before that I consider &amp;quot;C&amp;quot; and &amp;quot;C with analysis backing&amp;quot; to be in practice two different languages. SQLite is the latter: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;sqlite.org&amp;#x2F;testing.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;sqlite.org&amp;#x2F;testing.html&lt;/a&gt;&lt;p&gt;Writing SQLite in &amp;quot;plain C&amp;quot; without all that would, well, simply not work.&lt;p&gt;I agree that &amp;quot;C with analysis backing&amp;quot; is the best language for SQLite right now. However, it should not be used as an example of &amp;quot;How C is a great language for programming in&amp;quot; unless you are also planning on skillfully using a very significant subset of the tools listed in that document. SQLite doesn&amp;#x27;t prove C is great; it demonstrates how much additional scaffolding is necessary to wrap around C to get that level of quality, and given the quantity and diversity of tools we are talking about, it is not particularly complimentary to &amp;quot;plain C&amp;quot;.</text></item></parent_chain><comment><author>zerr</author><text>Regarding the viability, another thing to consider is that C gives you an ubiquitous compatibility.</text></comment>