Ruby先驱者谈该编程语言之短板

译文
开发 后端 前端
作为最初发布于1995年的动态语言,Ruby凭借着自身的便捷性优势而受到广泛好评、并经常出现在人气语言评选的榜单之上。不过多年以来Ruby也受到了不少批评者们的抨击。面对这一状况,Ruby社区中最为突出的两位成员毫不畏惧,以坦率的态度笑看针对该语言的攻击与赞赏。Ruby缔造者松本行弘以及Rails缔造者David Heinemeier Hansson就该语言作出坦率评论。

[[127558]] 

Ruby缔造者松本行弘以及Rails缔造者David Heinemeier Hansson就该语言作出坦率评论。

作为最初发布于1995年的动态语言,Ruby凭借着自身的便捷性优势而受到广泛好评、并经常出现在人气语言评选的榜单之上。不过多年以来Ruby也受到了不少批评者们的抨击。面对这一状况,Ruby社区中最为突出的两位成员毫不畏惧,以坦率的态度笑看针对该语言的攻击与赞赏。

Ruby缔造者松本行弘与高人气Ruby on Rails Web开发框架缔造者David Heinemeier Hansson就自己对于Ruby的态度,接受了InfoWorld本周进行的邮件采访。

Ruby的优势

松本行弘在谈到他一手打造的编程语言的优势与短板时显得有些沉默寡言。根据他的说法,Ruby拥有“简洁特质并提供具备可读性的代码。”此外,Ruby还拥有“更出色的抽象化能力,例如面向对象编程、函数性编程以及元编程等等。”

他同时指出,Ruby的性能表现“对于大多数用例来说已经足够优秀”,而且目前互联网上拥有大量与Ruby相关的资源、因此该语言“在全世界范围内都拥有积极的社区体系。”在罗列Ruby优势时,松本行弘还提到了Ruby on Rails以及RubyGems包管理器。

与此同时,Hansson则在列举这款语言的优势时,首先提到“Ruby很明显高度关注程序员的积极情绪”。“从这一关注重点出发,Ruby拥有理想的使用舒适度以及源自便捷性的突出美感。编写Ruby代码是一种简单而愉悦的体验,我所使用过的任何一种其它编程语言都无法在这方面与之比肩。”

他同时表示,Ruby语言还包含有多种范式:“Ruby是一种显而易见的后现代编程语言:它从所有主流编程范式当中汲取到精华。大家可以在必要时利用它实现面向对象开发,而函数性编程也能在Ruby当中实现。其广泛的能力以及精妙的编程规划原则实在令我感到叹为观止。”

Ruby还在发展与稳定之间找到了理想的平衡点,Hansson指出。“Ruby世界可谓发展迅猛,但却并没有快到让使用者搞不清状况——就像JavaScript那样。此外,Ruby的发展步伐也没有慢到像Perl那样趋于停滞、甚至像Python 3那样根本鲜有人问津。它显然找到了适合自己的绝佳发展轨道。”

Ruby的短板

说起劣势话题,松本行弘表示Ruby的语法可能太过复杂、开发人员很难一次性将其彻底掌握。此外,Ruby“与Java或者Scala等静态编译语言相比,在速度上处于劣势”。而且在非Web领域缺少丰富的应用程序与库,例如研究性计算范畴,不过这个问题正随着SciRuby项目的建立而逐渐得到解决。

说起速度问题,Hansson坦言“对于一部分特定的利基型应用程序及互联网规模级别来说,Ruby确实算不上最理想的选择。这种利基性需求与规模水平如今正变得愈发淡化、且远离主流需求,但其仍然客观存在。如果我们能够利用Ruby应对一切,而不必再屈就于Go、Rust或者C等系统级语言当然最好,但实际情况却并非如此。”

与此同时,Ruby的可表达性往往会让DSL变得“过于聪明”,Hansson指出。“如果大家愿意,完全可以编写出看起来大体类似于普通英文那样的Ruby代码。不过大体类似有时候反倒不如‘完全不同’来得好,AppleScript已经用实际教训向我们证明了这一点。在我看来,一部分非常流行的Ruby库在这方面似乎有点误入歧途了。”

英文:http://www.infoworld.com/article/2870966/ruby/ruby-pioneers-come-clean-on-languages-shortcomings.html

责任编辑:林师授 来源: 51CTO.com
相关推荐

2009-03-19 08:44:16

诺基亚Symbian移动OS

2010-03-31 11:23:20

2009-03-21 09:34:53

诺基亚Symbian移动OS

2009-05-07 09:31:40

BorlandMicro Focus开发工具

2012-11-28 09:21:26

2012-09-29 10:56:37

Google技术先驱

2012-02-13 10:03:31

编程开发

2009-09-18 14:09:07

2009-09-16 17:29:38

Ruby on RaiDave Thomas

2022-01-24 14:28:41

RailsJavaScriptWebpack

2017-10-13 10:02:12

Java

2009-08-17 10:08:24

2009-09-18 13:12:05

2013-01-09 16:56:35

微信二维码巨头

2020-09-08 17:09:49

编程语言后端开发

2011-11-17 09:20:13

LuaMark Gibbs马克·吉布斯

2010-03-10 19:46:07

Python编程语言

2018-04-15 16:11:57

RubyMatz语言

2017-02-24 19:08:48

PythonPHPRuby
点赞
收藏

51CTO技术栈公众号