<story><title>Elixir at Ramp</title><url>https://engineering.ramp.com/elixir-at-ramp/</url></story><parent_chain></parent_chain><comment><author>nickjj</author><text>The author wrote:&lt;p&gt;&lt;i&gt;&amp;gt; My hot take about most dynamic languages is that they are a poor fit for startups who have intentions of being long-term businesses&lt;/i&gt;&lt;p&gt;I don&amp;#x27;t think that&amp;#x27;s fair to say. There&amp;#x27;s plenty of long term businesses running at scale using dynamic languages. That&amp;#x27;s employee and load scale too.&lt;p&gt;Dropbox is ~13 years old, has ~4 million lines of Python and operate at crazy scale. I ended up talking to one of their ex-engineers last month about how they build and deploy their set up at: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;runninginproduction.com&amp;#x2F;podcast&amp;#x2F;82-dropbox-gives-you-secure-access-to-all-of-your-files&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;runninginproduction.com&amp;#x2F;podcast&amp;#x2F;82-dropbox-gives-you...&lt;/a&gt;&lt;p&gt;Then there&amp;#x27;s Basecamp which is one of the oldest SAAS apps around using Rails and GitHub too which isn&amp;#x27;t quite as old but definitely falls into the long term business category.</text></comment>
<story><title>Elixir at Ramp</title><url>https://engineering.ramp.com/elixir-at-ramp/</url></story><parent_chain></parent_chain><comment><author>jklm</author><text>To preface, I share a lot of the same sentiments as the author.  My Elixir was Scala - learned it inside and out, then picked up Akka which taught me a lot of neat Erlang-derived principles.  My favorite quote is &amp;quot;Make it work, make it right, make it fast,&amp;quot; which is very close to the Armstrong comic.&lt;p&gt;Having said that, I would not recommend Elixir or Scala or anything similar for startups.  The 3 main reasons:&lt;p&gt;1) It&amp;#x27;s a hiring problem.&lt;p&gt;There aren&amp;#x27;t enough qualified people who can fill these roles.  Expect a lot of on-the-job training that&amp;#x27;s more challenging than you&amp;#x27;d think since these languages&amp;#x2F;frameworks are different paradigms.  Famously, the complaint I heard in Scala circles was &amp;quot;There are too many ways to shoot yourself in the foot.&amp;quot;  I worked at a well-known everyday consumer tech company where the payments platform went down for the better part of a day as people scrambled to figure out what went wrong.  Noone had read the de-facto Scala bible which warned that catching `Throwable` could break your code.[1]&lt;p&gt;2) You really, really don&amp;#x27;t need to get things perfectly right from the get-go.&lt;p&gt;&amp;gt; My hot take about most dynamic languages is that they are a poor fit for startups who have intentions of being long-term businesses: you’ve created an environment that’s optimized for your founding engineers to build something quickly in the first 7 months, but the price is a set of recurring obstacles which your engineers will pay down over the next 7 years.&lt;p&gt;With rare exceptions, most companies throw away or rewrite their initial infra once they hit scaling issues.  Having these scaling issues means you&amp;#x27;ve likely hit product-market fit, secured more funding, and hired a badass team to solve said scaling issues.&lt;p&gt;3) The ecosystem is smaller.&lt;p&gt;Because the language&amp;#x2F;framework is deeper, it requires more investment to learn.  In turn, fewer production-level libraries get built on top of it.  That&amp;#x27;s when you end up needing to build a lot of things yourself.  At which point - you&amp;#x27;ve slowed down _even more_ vs. DynamicLang where you can run `dynamic-package add audit-trail` or something and get the 80&amp;#x2F;20 solution in 5 minutes.&lt;p&gt;[1] &lt;a href=&quot;http:&amp;#x2F;&amp;#x2F;www.tzavellas.com&amp;#x2F;techblog&amp;#x2F;2010&amp;#x2F;09&amp;#x2F;20&amp;#x2F;catching-throwable-in-scala&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;www.tzavellas.com&amp;#x2F;techblog&amp;#x2F;2010&amp;#x2F;09&amp;#x2F;20&amp;#x2F;catching-throwa...&lt;/a&gt;</text></comment>