<story><title>Yukihiro Matsumoto: “Ruby is designed for humans, not machines”</title><url>https://evrone.com/yukihiro-matsumoto-interview</url></story><parent_chain><item><author>dlkf</author><text>There&amp;#x27;s a lot of comments of the form &amp;quot;I tried getting into Ruby and it never clicked&amp;quot; that I want to respond to.&lt;p&gt;I think that if you&amp;#x27;re just writing a script to solve a math problem or automate a task, there isn&amp;#x27;t really a strong argument as to whether you should use Ruby, Python, bash any other high level language. You should probably use whatever you&amp;#x27;re most comfortable with.&lt;p&gt;But if you&amp;#x27;re making an application with a database, RoR is an extremely powerful tool. And this isn&amp;#x27;t just a case of Ruby having the best library (in the same way that Python has the best scientific computing library). It&amp;#x27;s a case of the library functionality and the language playing together really well.&lt;p&gt;Ruby statements look more like natural language statements than those in other languages. This is a really helpful design choice when you&amp;#x27;re building a crud application. In that context, you&amp;#x27;re not thinking about X, Y, -Log(X + Y) or whatever.&lt;p&gt;You&amp;#x27;re thinking about a &lt;i&gt;new customer&lt;/i&gt;, or whether some old customer is a &lt;i&gt;member?&lt;/i&gt; of some mailing list, etc&lt;p&gt;In a weird way, it&amp;#x27;s similar to how Haskell users love the fact that statements in Haskell are mathematical truths. In the case of logic programming this is a handy feature to have. In the case of writing the business logic of a CRUD app, it&amp;#x27;s handy if your statements look like natural language statements about the underlying real world objects whose representation you are reasoning about.</text></item></parent_chain><comment><author>skohan</author><text>&amp;gt; RoR is an extremely powerful tool&lt;p&gt;The issue I always had with Rails is that there would come a point where I would want to achieve something which wasn&amp;#x27;t really in the &amp;quot;blessed path&amp;quot; of a Rails application, and then I would end up with something that felt like a hack to circumvent Rails&amp;#x27; default behavior.  That, or I would want to do something which is very simple conceptually, but I would have to add some unnecessary complexity and&amp;#x2F;or ceremony around it to fit into Rails&amp;#x27; interfaces.&lt;p&gt;Also I&amp;#x27;m not a huge fan of the Rails&amp;#x27; model of having everything from request handling to routing to DB access in one big framework.  The needs of each application can be quite varied, and I&amp;#x27;d rather plug whatever components together I want to for a given project than to be limited by some outer structure.&lt;p&gt;&amp;gt; Ruby statements look more like natural language statements than those in other languages&lt;p&gt;The more I program, the more appreciative I am of a strict compiler.  What I&amp;#x27;ve always found with interpreted languages is, while they seem convenient at first, projects inevitably start to slow down under the accumulated &amp;quot;squishiness&amp;quot; due to lack of strictness.  I find it&amp;#x27;s pretty easy to get used to syntax, but there can be a lot of hidden &amp;quot;gotchas&amp;quot; in interpreted code which tend to outweigh any benefits.&lt;p&gt;Also as far as the natural-language-like syntax, I find that Swift offers a similar benefit, with the added benefit of strong compile-time checks.</text></comment>
<story><title>Yukihiro Matsumoto: “Ruby is designed for humans, not machines”</title><url>https://evrone.com/yukihiro-matsumoto-interview</url></story><parent_chain><item><author>dlkf</author><text>There&amp;#x27;s a lot of comments of the form &amp;quot;I tried getting into Ruby and it never clicked&amp;quot; that I want to respond to.&lt;p&gt;I think that if you&amp;#x27;re just writing a script to solve a math problem or automate a task, there isn&amp;#x27;t really a strong argument as to whether you should use Ruby, Python, bash any other high level language. You should probably use whatever you&amp;#x27;re most comfortable with.&lt;p&gt;But if you&amp;#x27;re making an application with a database, RoR is an extremely powerful tool. And this isn&amp;#x27;t just a case of Ruby having the best library (in the same way that Python has the best scientific computing library). It&amp;#x27;s a case of the library functionality and the language playing together really well.&lt;p&gt;Ruby statements look more like natural language statements than those in other languages. This is a really helpful design choice when you&amp;#x27;re building a crud application. In that context, you&amp;#x27;re not thinking about X, Y, -Log(X + Y) or whatever.&lt;p&gt;You&amp;#x27;re thinking about a &lt;i&gt;new customer&lt;/i&gt;, or whether some old customer is a &lt;i&gt;member?&lt;/i&gt; of some mailing list, etc&lt;p&gt;In a weird way, it&amp;#x27;s similar to how Haskell users love the fact that statements in Haskell are mathematical truths. In the case of logic programming this is a handy feature to have. In the case of writing the business logic of a CRUD app, it&amp;#x27;s handy if your statements look like natural language statements about the underlying real world objects whose representation you are reasoning about.</text></item></parent_chain><comment><author>thrwaway69</author><text>I am starting to ignore syntax when I read code now. It doesn&amp;#x27;t register in my mind most of the time unless I see a sudden paradigm shift or odd dependency behaviour(I think this causes me to snap more than language syntax. Dependencies don&amp;#x27;t have clear code navigation guidelines, proper structure or docs than the language they are in).&lt;p&gt;From my perspective, choice of language matters very less compared to the number of experienced programmers you can get at x price. If there are more js developers, then that means you can hire more for less overall. Obviously things are more complicated.&lt;p&gt;If I want to write software that is going to be used for a long time, then I am going for strongly typed compiled language that will have certain percentage of developers 10 years later than focusing on how beautiful the language is syntactically or how it reasons well. Binaries are easy to distribute and can still be used after source code is no longer available for odd reasons. Anything trendy will get too many breaking changes or fixes. 
Heck, having visible source code can be liability too in future. I may as well choose something that will be hard to decompile.
Not to mention the external dependencies that you will need to mirror or even maintain.&lt;p&gt;I think most businesses that are dependent on tech can be divided into short lived and very long lived ignoring certain type of software and industries.&lt;p&gt;For short lived businesses or customers, your stack shouldn&amp;#x27;t matter much compared to the responsiveness of development. What incentive are there to provide quality software to companies that will live 5 years at best? (Note - quality here refers to ideal stack&amp;#x2F;code that programmers expect. Eg - unnecessarily performant, kubernetified, micro architecture)&lt;p&gt;None.&lt;p&gt;For long term businesses, software is an ongoing cost. They can afford to renew their software every 10 years so why should you write something that is expandable, easy to migrate and another team to take over. Beside, their requirements change drastically over time. It will end up being a monolith.&lt;p&gt;I don&amp;#x27;t have to work right now but if I ever do, I am gonna work on the interesting bits while hiring someone in a third world country to outsource parts that I don&amp;#x27;t from my job.&lt;p&gt;I want to solve problems and reach goals. Syntax doesn&amp;#x27;t provide enough value on its own in a general programming language.</text></comment>