如果我非常喜欢Ruby,我现在应该学习另一种语言,比如Lua或Erlang吗?
新的编程语言,就像口语一样,可以开辟新的视角.学习新语言 - 尤其是与你习惯的语言不同的语言(和Erlang可能适合该法案) - 可以教你很多不同的东西,你甚至不知道你对编程不了解.所以,是的,我认为你绝对应该,即使你只是学习足够修补它并感受新语言.
特别是学习功能语言可能非常有益.熟悉编程的功能风格是成为更好的程序员的必然步骤.Lisp(或其衍生物)尤其是一门很好的语言.以下是SO上过去线程的列表,可能会为您提供以下方面的一些见解:
为什么人们认为函数式编程会流行?
什么是好学习的功能语言?
学习计划的好处?
撇开(优秀)一般理由想要学习另一种语言,如果你喜欢Ruby,你可能想要
学习Smalltalk,这是一种非常非常类似Ruby的语言,但是更纯粹.
学习一种非常非常不同的语言 - 比如基于代数数据类型和函数而不是对象和方法的东西,以及使用静态类型系统而不是动态类型系统的东西 - 但是像Ruby一样支持的东西强大的程序组合方法和通用编程.好的候选人将包括标准ML和Haskell.
学习一种非常非常不同的语言 - 比如让你控制内存中的每一位,地址和单词的东西 - 这会迫使你理解并控制硬件.换句话说,学习C.
关于你提到的其他语言,
Lua体积小,设计和实施非常优雅.这可能会吸引你的Rubyist.但与Ruby不同的是,它不会强加太多的世界观; 它更像是零件的集合.我建议你在第一次使用其他三种或四种语言后更有可能欣赏并享受Lua.
Erlang很有意思,但我有一种直觉,认为它要么太不同(纯功能,分布式),要么不够(动态类型系统).但如果它吸引你,那就去吧.