擅长:python、mysql、java
<p>我觉得你搞错了。正如esr自己所说,重要的不是语言,而是范式。所以当你这么说的时候</p>
<blockquote>
<ol>
<li>Perl is a functional language</li>
<li>It's great for quick text substitutions in multiple files from the command line</li>
</ol>
</blockquote>
<p>你错过了函数式语言的一个要点,那就是它们非常适合使用自下而上的方法构建大型系统:用设计良好的函数解决一系列(精心选择的)小问题,直到我们有了一个完整的系统。我们通过识别我们正在使用的算法有哪些共同点,并使用高阶函数来封装它们的通用性,从而减少代码重复。我们只需要用一个更高阶的函数来最小化给定的函数。在</p>
<p>同样,我可以这么说</p>
<blockquote>
<ol>
<li>Java is mainly an OOP language</li>
<li>It's good for writing large, robust systems,</li>
</ol>
</blockquote>
<p>但是这忽略了OOP语言是关于在代码中对问题域中的概念进行建模的要点,这样我们就可以清楚地解决手头的问题。我们通过识别相关概念的共同点并将处理这些共性的代码封装在一个描述这些共性的类中来减少代码重复。我们通过为抽象的不同子类提供适当不同的行为来最小化(公开的)分支行为。在</p>
<p>总的来说,编程语言及其相关范例的基本点是</p>
<ul>
<li><p>允许您不考虑任何不影响结果程序质量的事情。如果这不是一件(很大程度上)可取的事情,那么我们都将编写机器代码。</p></li>
<li><p>这是通过(除其他外)提供一组用于构建抽象的工具来实现的。</p></li>
</ul>
<p>货比三家,挑一家你喜欢并擅长的。只要确保你了解到其他方法允许更好的解决方案(这可能意味着最终也会擅长它们;)。我认为你可以把“好的解决方案”主要是指,“清晰地将<strong>代码</strong>映射到<strong>想法</strong>”。(模数对效率的关注会迫使你(提供一个借口?)用C语言写作)</p>