Ruby先驅者談該編程語言之短板
譯文Ruby締造者松本行弘以及Rails締造者David Heinemeier Hansson就該語言作出坦率評論。
作為最初發(fā)布于1995年的動態(tài)語言,Ruby憑借著自身的便捷性優(yōu)勢而受到廣泛好評、并經(jīng)常出現(xiàn)在人氣語言評選的榜單之上。不過多年以來Ruby也受到了不少批評者們的抨擊。面對這一狀況,Ruby社區(qū)中最為突出的兩位成員毫不畏懼,以坦率的態(tài)度笑看針對該語言的攻擊與贊賞。
Ruby締造者松本行弘與高人氣Ruby on Rails Web開發(fā)框架締造者David Heinemeier Hansson就自己對于Ruby的態(tài)度,接受了InfoWorld本周進行的郵件采訪。
Ruby的優(yōu)勢
松本行弘在談到他一手打造的編程語言的優(yōu)勢與短板時顯得有些沉默寡言。根據(jù)他的說法,Ruby擁有“簡潔特質并提供具備可讀性的代碼。”此外,Ruby還擁有“更出色的抽象化能力,例如面向對象編程、函數(shù)性編程以及元編程等等。”
他同時指出,Ruby的性能表現(xiàn)“對于大多數(shù)用例來說已經(jīng)足夠優(yōu)秀”,而且目前互聯(lián)網(wǎng)上擁有大量與Ruby相關的資源、因此該語言“在全世界范圍內都擁有積極的社區(qū)體系。”在羅列Ruby優(yōu)勢時,松本行弘還提到了Ruby on Rails以及RubyGems包管理器。
與此同時,Hansson則在列舉這款語言的優(yōu)勢時,首先提到“Ruby很明顯高度關注程序員的積極情緒”。“從這一關注重點出發(fā),Ruby擁有理想的使用舒適度以及源自便捷性的突出美感。編寫Ruby代碼是一種簡單而愉悅的體驗,我所使用過的任何一種其它編程語言都無法在這方面與之比肩。”
他同時表示,Ruby語言還包含有多種范式:“Ruby是一種顯而易見的后現(xiàn)代編程語言:它從所有主流編程范式當中汲取到精華。大家可以在必要時利用它實現(xiàn)面向對象開發(fā),而函數(shù)性編程也能在Ruby當中實現(xiàn)。其廣泛的能力以及精妙的編程規(guī)劃原則實在令我感到嘆為觀止。”
Ruby還在發(fā)展與穩(wěn)定之間找到了理想的平衡點,Hansson指出。“Ruby世界可謂發(fā)展迅猛,但卻并沒有快到讓使用者搞不清狀況——就像JavaScript那樣。此外,Ruby的發(fā)展步伐也沒有慢到像Perl那樣趨于停滯、甚至像Python 3那樣根本鮮有人問津。它顯然找到了適合自己的絕佳發(fā)展軌道。”
Ruby的短板
說起劣勢話題,松本行弘表示Ruby的語法可能太過復雜、開發(fā)人員很難一次性將其徹底掌握。此外,Ruby“與Java或者Scala等靜態(tài)編譯語言相比,在速度上處于劣勢”。而且在非Web領域缺少豐富的應用程序與庫,例如研究性計算范疇,不過這個問題正隨著SciRuby項目的建立而逐漸得到解決。
說起速度問題,Hansson坦言“對于一部分特定的利基型應用程序及互聯(lián)網(wǎng)規(guī)模級別來說,Ruby確實算不上最理想的選擇。這種利基性需求與規(guī)模水平如今正變得愈發(fā)淡化、且遠離主流需求,但其仍然客觀存在。如果我們能夠利用Ruby應對一切,而不必再屈就于Go、Rust或者C等系統(tǒng)級語言當然最好,但實際情況卻并非如此。”
與此同時,Ruby的可表達性往往會讓DSL變得“過于聰明”,Hansson指出。“如果大家愿意,完全可以編寫出看起來大體類似于普通英文那樣的Ruby代碼。不過大體類似有時候反倒不如‘完全不同’來得好,AppleScript已經(jīng)用實際教訓向我們證明了這一點。在我看來,一部分非常流行的Ruby庫在這方面似乎有點誤入歧途了。”