Hacker News 中文摘要

RSS订阅

我不再喜欢Ruby了吗?(2024) -- Do I not like Ruby anymore? (2024)

文章摘要

作者原本不喜欢Python,认为它是一种“巨大的红旗”,并希望世界能摆脱它。然而,最近在Python环境中工作后,作者开始在某些方面接受并喜欢上Python。与此同时,作者对Ruby有着深厚的情感,认为Ruby是一种简洁、优雅且富有表现力的语言,尤其欣赏其一切皆对象的设计和灵活的语法特性。

文章总结

标题:我是否不再喜欢Ruby了?

主要内容:

作者最近加入了一家使用Python的公司,尽管选择这份工作的原因与技术栈无关。作者坦言,Python并不是他最喜欢的编程语言,甚至认为它是一个“巨大的红色警示”,并希望世界能逐渐摆脱它。然而,随着时间的推移,作者开始在某些方面对Python产生了好感。

Ruby曾是作者的最爱:

Ruby是作者编程生涯中的“初恋”,它简洁、优雅、富有表现力,灵感来源于Smalltalk和Lisp等语言设计大师的作品。Ruby的许多特性,如一切都是对象、灵活的if语句实现、方法调用的语法糖等,都让作者深受启发。Ruby和Python曾是当时最流行的“脚本语言”,Ruby因Rails框架而大受欢迎,而Python则在数据科学和命令行工具领域取得了成功。

Python曾是作者眼中的“劣质Ruby”:

作者最初并不喜欢Python,尤其是它的一些设计选择,如将if作为语句而非表达式、lambda功能的限制等,都让作者感到不适。Python强调“只有一种正确的方式”,但这种方式往往不符合作者的编程习惯。

TypeScript改变了作者的看法:

在编写前端代码时,作者接触到了TypeScript,并认为它是动态语言类型系统的“黄金标准”。TypeScript的强大类型系统让作者开始接受一些原本不喜欢的语言特性,如缺少match语句或if表达式,因为静态分析可以在一定程度上弥补这些不足。

Python的进化:

Python近年来也发生了显著变化,引入了类型提示、match语句等新特性,甚至将print从语句改为函数。作者特别赞赏Python的类型提示功能,它不仅为类型检查器提供了支持,还能被库用于验证模式和简化API定义。此外,Python的关键字参数、命名空间、列表推导式等特性也让作者感到满意。

Ruby的停滞:

相比之下,Ruby在过去十年中的变化不大,主要集中在性能优化和一些未广泛采用的新特性上。作者虽然仍在使用Ruby编写脚本,但逐渐对其一些特性感到不满,开始怀念其他语言的功能,甚至对Python产生了兴趣。

结论:

作者认为,自己可能已经变得不再适合Ruby,尽管它曾带来许多乐趣,但现在是时候告别它了。而Python则通过不断的改进赢得了作者的认可,甚至获得了作者的“午夜鸡块”奖励。

评论总结

评论内容总结:

  1. Ruby的灵活性与局限性

    • 一些评论者认为Ruby的灵活性是其优势,但也指出其在类型系统和命名空间方面的不足。例如,melvinroest提到:“if you long for things like keyword arguments, type hints and namespaces why don’t you program it in the Ruby language yourself?” 而troad则批评Ruby对渐进式类型的敌意:“the strong and ongoing hostility to any sort of sensible gradual typing is a real mistake.”
  2. Ruby与Python的对比

    • 评论者对比了Ruby和Python的发展方向,认为Ruby更注重开发者的体验和稳定性,而Python则更注重标准化和学术应用。schappim指出:“Ruby’s priorities (ergonomics, DSLs, stability) are different from Python’s (standardisation, academia/data).” 而sushibowl则认为Python的复杂性增加:“collectively it kind of makes the language burgeon under the weight of its own complexity.”
  3. Ruby的开发者体验

    • 许多评论者赞赏Ruby的开发者体验,认为它让编程变得有趣。PaulRobinson表示:“Ruby makes things fun for the programmer. That’s the point.” 而futurecat则对比了Ruby与Python的体验:“Ruby’s a joyful experience.”
  4. 类型系统的重要性

    • 一些评论者强调了类型系统的重要性,认为Ruby在这方面落后。pmkary提到:“Why should someone opt for a language with absolutely no features where one can have autocompletion, typechecking, deep data type exploration?” 而nurettin则赞赏Python的类型模块:“I love python’s typing module.”
  5. Ruby的停滞与创新

    • 部分评论者认为Ruby的发展相对停滞,但也有评论者指出Ruby在性能优化和类型系统方面的努力。schappim提到:“YJIT and MJIT massively improved runtime performance, ractors, the various type system efforts (RBS/Sorbet etc).” 而manuelfcreis则认为Ruby的生态系统在努力跟上:“even if the ecosystem tries to keep up.”
  6. 语言选择的个人偏好

    • 评论者普遍认为语言选择更多是个人偏好和项目需求的问题。jemiluv8表示:“In the end, every language can really get things done.” 而nromiun则批评对语言的过度仇恨:“Why do people make hating a tool their entire personality?”

总结:评论者普遍认可Ruby的开发者体验和灵活性,但也指出其在类型系统和命名空间方面的不足。与Python相比,Ruby更注重稳定性和开发者体验,而Python则更注重标准化和学术应用。语言选择更多是个人偏好和项目需求的问题。