孟岩最近写了一篇博客:
Ruby 1.9不会杀死Python
这篇文章很有点标题党的意思,所以在JavaEye论坛很快被水掉了,只好锁贴:
http://www.iteye.com/topic/153651
但我个人对于孟岩的观点是不敢苟同的。首先我并不同意所谓魔幻语言和简约语言的分类。其实Martin Flower论述过这个问题,他是用“人性化接口”和“最小接口”来区分编程语言的风格化差异的,请看这篇文章:
http://martinfowler.com/bliki/HumaneInterface.html
其实不用我多说,Martin论述的挺充分了。强把Ruby和C++归为魔幻一类,其实并不准确,因为Ruby的魔幻语法和C++相比,最大区别在于:
C++的魔幻语法会导致代码的可读性变差,而Ruby的魔幻语法会导致代码的可读性大大提高。
不论是matz本人,还是整个Ruby社区,Rails社区诸多开源项目的作者,抑或整个Ruby和Rails开发者社区,在一个编程哲学问题上是高度统一的,这就是:
强调程序员的快乐编程,追求人性化编程,在代码的可读性上面有偏执的追求,拒绝难以阅读的代码和难用的API。也就是所谓的coding for fun!
所以你看无论是Rails,rake,rspec,甚至移植自lucene的ferret,都鲜明的体现出来这种特点,就是API简单好用,让你写的代码像英文文章,自然流畅,轻松愉快。要是哪个Ruby框架的API复杂晦涩,在Ruby社区简直没法混,大家根本不买他的帐,这也是为什么Ruby应用于DSL领域这么热的根本原因。
对于ruby程序员来说,这种追求编程人性化的哲学理念会潜移默化影响程序员,让他不知不觉把代码的可读性越写越好。对于程序员来说,谁不想coding for fun呢? 而当你品尝到了coding for fun的乐趣,又怎么会轻易抛弃?
所以Ruby受程序员欢迎的根本原因还是在于它是一种能给你带来编程乐趣的语言。
分享到:
相关推荐
它不仅受到广大程序员的欢迎,无数的软件大师亦为其倾倒。Programming Ruby是关于Ruby语言的一本权威著作,也被称为PickAxe Book(镐头书,由封面上的工具得名)。本书是它的第2版,其中包括超过200页的新内容,以及...
它不仅受到广大程序员的欢迎,无数的软件大师亦为其倾倒。Programming Ruby是关于Ruby语言的一本权威著作,也被称为PickAxe Book(镐头书,由封面上的工具得名)。本书是它的第2版,其中包括超过200页的新内容,以及...
它不仅受到广大程序员的欢迎,无数的软件大师亦为其倾倒。Programming Ruby是关于Ruby语言的一本权威著作,也被称为PickAxe Book(镐头书,由封面上的工具得名)。本书是它的第2版,其中包括超过200页的新内容,以及...
《Programming Rudy》(中文版)(第2版)是它的第2版,...它不仅受到广大程序员的欢迎,无数的软件大师亦为其倾倒。Programming Rubyr是关于Ruby语言的一本权威著作,也被称为PickAxe Book(镐头书,由封面上的工具得名)。
《Programming Rudy》(中文版)(第2版)是它的第2版,...它不仅受到广大程序员的欢迎,无数的软件大师亦为其倾倒。Programming Rubyr是关于Ruby语言的一本权威著作,也被称为PickAxe Book(镐头书,由封面上的工具得名)。
DEV社区堆栈的人员层欢迎使用dev.to代码库。 我们很高兴有您。 在您的帮助下,我们可以建立DE DEV社区。堆栈中的人员层欢迎使用dev.to代码库。 我们很高兴有您。 在您的帮助下,我们可以建立DEV,使其更稳定并更好地...
前言内罗毕Ruby Brigade或nairuby或nai.rb是位于Ruby程序员的用户组。 我们欢迎所有对Ruby语言,工具,库和框架感兴趣的程序员。 自2011年8月以来,我们一直在开会,以介绍,演示和讨论适用于从初学者到高级的各种...
Ruby是一种跨平台、面向对象的动态类型编程语言。Ruby体现了表达的一致性和简单性,它不仅是一门编程语言,更是表达想法的一种简练方式。它不仅受到广大程序员的欢迎,无数的软件大师亦为其倾倒。
为什么要使用RLTK 这是使用RLTK来构建词法分析器,解析器和抽象语法树,以及生成LLVM IR和本机目标文件的一些原因: Ruby中的Lexer和Parser定义-许多工具要求您以自己的格式编写lexer / parser定义,然后对其进行...
当您拿起一本 Ruby 参考书籍(比如 Pickaxe)或浏览 Ruby 网站时,会看到一些熟悉的构造,比如类声明、线程支持和异常处理。正当您认为自己了解 Ruby 的工作原理之时,您意识到了,您 Ruby 代码中的并发机制与 Boost...
[ | | ]Ruby很棒的机器学习 Ruby机器学习链接和资源的精选清单是一个领域-通常嵌套在研究下-具有许多实际应用,这是由于所得算法能够在没有明确的程序员指令的情况下系统地实现特定解决方案。 显然,许多算法需要...
手机端程序员刷题你好,创业网站 这是 O'Reilly 书籍的网站和移动应用程序。 地位 Hello, Startup网站位于 。 欢迎通过拉取请求(参见下面的说明)做出贡献,尤其是对 的列表。 移动应用程序版本目前处于暂停状态,...
程序员社区 这些实现是出于学习目的。 该解决方案将以任何编程语言提供。 欢迎您在资源库中做出贡献。 对于存储库中的贡献,请阅读贡献准则。 目录 主持人 Shoaib Rayeen-我是Airtel Africa的一名软件开发工程师。...
为什么 遵循这里给出的规则和纪律将迫使您想出更难的答案,从而对面向对象编程有更丰富的理解。 如果您按照所有这些规则编写一千行代码,您会发现您创建的东西与您预期的完全不同。 遵守规则,看看你的结局。 如果它...
为什么? 该项目的想法是激励程序员成为多语言者并知道如何使用 15 种语言及其特定的生态系统和平台,这是任何作为候选人申请的个人所面临的个人挑战。 也是为了好玩! 用于社区互动、学习新事物并与他人竞争以获得...
程序员考试刷题您好,欢迎来到 IBCS 的第一年! 这是第一课的用户文档。 本指南将带您完成设置开发人员环境的步骤。 确保您熟悉以下术语: 松弛 GitLab Slack:注册并下载 Slack。 这是您获取课堂笔记和待办事项的...
本部分的最佳起点可能是最受欢迎的帖子,着眼于您特别感兴趣的任何主题。 这里有很多关于管理和领导力的内容,但也有更多的技术主题,尤其是来自公司博客的内容。 安息的randint - 留意主页上的阅读清单; 这些为 ...
使用内置浏览器IDE完成实验室学习目标完成您的第一个实验介绍您好,欢迎来到您的第一个实验室! 在本课程中,我们将测试一些代码。 您的代码。 到目前为止,我们已经了解到可以使用ruby filename运行代码。 该文件中...