如果我非常喜欢 Ruby,我现在有理由学习另一种语言吗,比如 Lua 或 Erlang?
8 回答
新的编程语言,就像口语一样,可以开辟新的视角。学习新的语言——尤其是那些与你习惯的完全不同的语言(Erlang 可能会符合这个要求)——可以教给你很多你甚至不知道你不知道的关于编程的东西。所以是的,我认为你绝对应该这样做,即使你只学了足够的东西来修补它并感受一下新语言。
特别是学习一门函数式语言可能非常有益。熟悉编程的函数式风格是迈向更好程序员的必经之路。Lisp(或其衍生物)尤其是一种很好的学习语言。以下是关于 SO 的过去线程列表,可能会为您提供以下方面的一些见解:
撇开想要学习另一种语言的(极好的)一般原因不谈,如果你非常喜欢 Ruby,你可能想要
学习 Smalltalk,这是一种与 Ruby 非常非常相似但形式更纯粹的语言。
学习一门非常非常不同的语言——比如基于代数数据类型和函数而不是对象和方法的语言,以及基于静态类型系统而不是动态类型系统的语言——但是像 Ruby 这样的语言将支持程序组合和泛型编程的强大方法。好的候选者包括 Standard ML 和Haskell。
学习一门非常非常不同的语言——说一些让你控制内存中的每一位、地址和单词的语言——迫使你理解和控制硬件的语言。换句话说,学习 C。
关于你提到的其他语言,
Lua 很小,设计和实现都非常优雅。这可能会吸引你的 Rubyist。但与 Ruby 不同的是,它并没有强加太多的世界观。它更像是零件的集合。我建议您先使用三四种其他语言工作后,您更有可能欣赏和享受 Lua。
Erlang 很有趣,但我有一种直觉,它要么太不同(纯粹的功能性、分布式),要么不够不同(动态类型系统)。但如果它吸引你,那就去吧。
另一方面,对于真正了解一门语言来说,有一些话要说。与掌握一打表面知识相比,你将能够通过深入了解一种语言做更多的事情。
如果您非常喜欢 Ruby,那么您绝对应该学习另一种语言……如果可能的话,一种没有 符号的语言。
在我看来,专业人士会学习他需要使用的工具。框架、容器、语言,都是公平的游戏。我从 Pascal 开始,然后是 C,然后是 C++。然后转换为Java。这些天来,它主要是 Java,有很多 Javascript 和一些 PHP。够容易吧?好吧,我还需要学习 Bash 脚本和 Perl。别介意我需要了解的所有其他废话(如果您说您了解所有 Web 身份验证,我会称您为骗子)。那里有很多东西。跳进去。愿意尝试不同的事情。
我总是喜欢为了挑战而学习新语言。它使我的大脑保持健康。我还发现,能够说“我很灵活。我可以适应你未来的任何需求。我可以用我的一长串语言证明这一点。”
我的主要语言是 PHP。我是一个脚本语言爱好者,但我潜入了 C#、Java、Python、Ruby 甚至 OO JavaScript 书籍,以寻找新的机制和思维方式。例如,我在 Java 中发现了很多特技,我可以在我整天的工作中实现这些特技。所以学习或只是学习新语言可以拓宽你的视野。