成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

30歲的Ruby:?jiǎn)翁鬔ava后,為何再難出頭?

原創(chuàng) 精選
開(kāi)發(fā) 前端
曾經(jīng),Rails的出現(xiàn)極大地推動(dòng)了Ruby語(yǔ)言的發(fā)展。在Rails風(fēng)頭正勁時(shí),即使是最保守的公司也開(kāi)始考慮采用Ruby,甚至業(yè)界提出過(guò)“Ruby將挑戰(zhàn)Java”的言論。

編譯丨千山

如果你在Web開(kāi)發(fā)領(lǐng)域摸爬滾打了許久,你就會(huì)親眼見(jiàn)證眾多語(yǔ)言和框架的興起和衰落。在群星明滅中,Ruby和它的Web應(yīng)用框架Ruby on Rails就像一顆流星,在爆發(fā)出璀璨光華后又漸漸歸于寥落。

曾經(jīng),Rails的出現(xiàn)極大地推動(dòng)了Ruby語(yǔ)言的發(fā)展。在Rails風(fēng)頭正勁時(shí),即使是最保守的公司也開(kāi)始考慮采用Ruby,甚至業(yè)界提出過(guò)“Ruby將挑戰(zhàn)Java”的言論。

但現(xiàn)實(shí)是,站在十幾年后的今天回望,Ruby將取代Java的想法似乎很可笑。根據(jù)TIOBE公布的2023年1月編程語(yǔ)言排行榜,Ruby位列第十六,介于MATLAB和Object Pascal之間,同時(shí)Java的人氣依舊,排行第四。而且相較Java,Ruby在招聘熱度、市場(chǎng)需求和開(kāi)發(fā)者關(guān)注度等方面都遠(yuǎn)遠(yuǎn)落后。

圖片

TIOBE 2023年1月編程語(yǔ)言排行榜,圖源:互聯(lián)網(wǎng)

但是,暫時(shí)還是不要把Ruby和某些已經(jīng)“入土”的語(yǔ)言放在一起。盡管Ruby不再占據(jù)主導(dǎo)地位,但在編程語(yǔ)言界仍然有它的一席之地。本文試圖追溯這門(mén)語(yǔ)言的興衰,通過(guò)一批Ruby程序員之口,解析Ruby為何崛起、又如何從鼎盛期衰落,以及為什么他們認(rèn)為Ruby仍然有未來(lái)。

1、Ruby的光輝歲月:因何偉大

Ruby是一種用于面向?qū)ο缶幊痰慕忉屝阅_本語(yǔ)言,核心優(yōu)勢(shì)就是允許開(kāi)發(fā)者快速構(gòu)建并啟動(dòng)應(yīng)用程序,特別是對(duì)于前端應(yīng)用程序,這一點(diǎn)始終未變。

這門(mén)語(yǔ)言由松本行弘在1993年創(chuàng)建,1995年正式發(fā)布,基本和Java算是同期。但相比Java的“光環(huán)”,Ruby一直非常低調(diào)。

直到2004年,David Heinemeier Hansson發(fā)布了世界上首個(gè)Web MVC框架Ruby on Rails。這個(gè)小眾語(yǔ)言開(kāi)始讓世界為之驚喜。

Ruby的發(fā)展可以說(shuō)適逢其會(huì)。1994年萬(wàn)維網(wǎng)誕生,十年后,Web 2.0逐漸興起。這期間,Rails的誕生又加速了Ruby的發(fā)展。從2000年開(kāi)始,Ruby以“黑馬”之姿走出日本,受到全球開(kāi)發(fā)者的關(guān)注,其受歡迎程度在TIOBE指數(shù)評(píng)級(jí)中逐漸達(dá)到頂峰。當(dāng)時(shí),不少大型網(wǎng)站,比如Twitter和Groupon都對(duì)這門(mén)語(yǔ)言青睞有加。

松本行弘曾在接受采訪時(shí)如此評(píng)價(jià)Ruby的“盛世”:“首先是得益于Web的快速發(fā)展,幾乎所有的軟件開(kāi)發(fā)平臺(tái)都在瞄準(zhǔn)Web這個(gè)領(lǐng)域。也就是說(shuō),在Web上能夠開(kāi)發(fā)的應(yīng)用變多了,這是一個(gè)主要的背景。另外,Ruby的優(yōu)勢(shì)在于開(kāi)發(fā)效率比較高。這兩點(diǎn)結(jié)合起來(lái),我認(rèn)為就是Ruby on Rails成功的主要原因。”

歸根結(jié)底,促成Ruby崛起的因素有很多,但離不開(kāi)這門(mén)語(yǔ)言自身的特質(zhì)。

首先,開(kāi)發(fā)速度快。“Ruby on Rails仍然是小團(tuán)隊(duì)影響大團(tuán)隊(duì)的好方法,”《Programming Ruby 3.2》一書(shū)的合著者Noel Rappin說(shuō):“從零開(kāi)始構(gòu)建真正有價(jià)值的產(chǎn)品,這仍然是最快的方法之一。”尤其對(duì)于創(chuàng)業(yè)公司以及最小化可行產(chǎn)品的開(kāi)發(fā)來(lái)說(shuō),試錯(cuò)成本高,任何小小的延誤都可能招致失敗,因此Ruby on Rails就成了一種戰(zhàn)略上的選擇。

再者,使用簡(jiǎn)單。由于Ruby語(yǔ)言本身采用大量英語(yǔ)單詞,上手難度低,而且Ruby on Rails的語(yǔ)法簡(jiǎn)單明了,程序員只需編寫(xiě)少量代碼就可以解決復(fù)雜的任務(wù)。清晰的語(yǔ)法可以讓開(kāi)發(fā)人員在多個(gè)項(xiàng)目之間切換,這讓開(kāi)發(fā)和維護(hù)代碼更為便利。

最后,社區(qū)的支持。強(qiáng)大而又凝聚力的社區(qū)對(duì)Ruby的發(fā)展發(fā)揮了巨大作用。Qwoted的首席技術(shù)官Kevin Trowbridge認(rèn)為,這與語(yǔ)言本身的性質(zhì)有很大關(guān)系。“它是所有編程語(yǔ)言中最通俗易懂的,易讀易寫(xiě),這種理念不但有助于優(yōu)化產(chǎn)品,更能提升開(kāi)發(fā)人員的生產(chǎn)力和幸福感,這也解釋了為什么它有如此強(qiáng)大的社區(qū)支持。”

當(dāng)然編程語(yǔ)言界的競(jìng)爭(zhēng)向來(lái)激烈,Ruby在向前推進(jìn)的同時(shí),其他語(yǔ)言和框架也沒(méi)有停滯不前。甚至隨著時(shí)代的發(fā)展,當(dāng)互聯(lián)網(wǎng)公司逐漸更關(guān)注規(guī)模伸縮等問(wèn)題時(shí),Ruby開(kāi)始暴露出可擴(kuò)展性不佳等缺陷。

2、來(lái)自JavaScript和Python的挑戰(zhàn)

“Rails出現(xiàn)在網(wǎng)絡(luò)轉(zhuǎn)型和發(fā)展的風(fēng)口浪尖,它既受益于這種增長(zhǎng),也推動(dòng)了這種增長(zhǎng),但它不會(huì)是唯一成功的個(gè)例。這是一個(gè)既定的結(jié)論。”從2006年開(kāi)始成為Ruby開(kāi)發(fā)人員的Matthew Boeh這樣描述。

在他看來(lái),某種程度上甚至可以說(shuō)“Ruby是其自身成功的受害者”。

“因?yàn)樗纳鐓^(qū)是近年來(lái)命令行復(fù)興的主要驅(qū)動(dòng)力。在本世紀(jì)初,它向那些從未聽(tīng)說(shuō)過(guò)Lisp的人介紹了repr驅(qū)動(dòng)的開(kāi)發(fā),向那些被Perl的CPAN嚇跑的人介紹了包管理,向Java世界之外的人介紹了測(cè)試驅(qū)動(dòng)的開(kāi)發(fā)……這些在今天都是習(xí)以為常的必需品。盡管這些都不是Ruby的原創(chuàng),但都是Ruby愛(ài)好者推廣和使用的。”

如果說(shuō)現(xiàn)在有一種語(yǔ)言在Ruby曾經(jīng)統(tǒng)治的領(lǐng)域占據(jù)主導(dǎo)地位,那就是JavaScript。

“隨著JavaScript發(fā)展成為一種全棧語(yǔ)言,工程師們可以用一種語(yǔ)言,甚至一個(gè)共享代碼庫(kù)來(lái)構(gòu)建前端、后端和移動(dòng)項(xiàng)目,”New Relic開(kāi)發(fā)總監(jiān)Jemeah Sius說(shuō),“Ruby很容易學(xué)習(xí),有很高的安全標(biāo)準(zhǔn),還有一個(gè)活躍的社區(qū)。但當(dāng)有人想到全棧時(shí),他們想到的是JavaScript、Node.js、React或其他他們喜歡的框架。”

Qwoted的首席技術(shù)官Trowbridge指出,JavaScript之所以能夠填補(bǔ)這一空白,是因?yàn)樗呀?jīng)從開(kāi)發(fā)人員曾經(jīng)不屑一顧的語(yǔ)言中得到了改進(jìn)。事實(shí)上,隨著時(shí)間的推移,它變得更像Ruby了。“瀏覽器廠商在正規(guī)化、標(biāo)準(zhǔn)化、簡(jiǎn)化和增強(qiáng)方面做出了努力,”他說(shuō)。“它比過(guò)去的JavaScript好太多了。”

“當(dāng)前形式的JavaScript生態(tài)系統(tǒng)在2004年是不可想象的——它需要命令行復(fù)興和網(wǎng)絡(luò)平臺(tái)的起飛,”Boeh補(bǔ)充道。“從1999年到2009年,整整十年時(shí)間才發(fā)布了一個(gè)新的JavaScript標(biāo)準(zhǔn)版本。而現(xiàn)在是一年一次。”

與此同時(shí),Python已經(jīng)主導(dǎo)了當(dāng)今最熱門(mén)的開(kāi)發(fā)領(lǐng)域之一,人工智能和機(jī)器學(xué)習(xí)。“Python在科學(xué)界流行起來(lái),因?yàn)樗麄兛梢员纫酝斓亟⒛P秃退惴ㄔ停运萊uby領(lǐng)先了幾年”,Bhardwaj說(shuō),“另一方面,Ruby被認(rèn)為執(zhí)行緩慢,因而沒(méi)有得到更多關(guān)注。”

New Relic的Sius對(duì)此表示贊同。“當(dāng)有人想到一種多功能語(yǔ)言,可以創(chuàng)建從游戲到VR到AI到ML的所有東西時(shí),每個(gè)人都知道Python是明顯的贏家。”

3、Ruby的衰落

JavaScript和Python能在和Ruby的較量中占據(jù)上風(fēng)的因素有很多,而且并不局限于語(yǔ)言本身的特性。

Qwoted的Trowbridge說(shuō):“Python和Ruby有很多相似處,比如,它們都是動(dòng)態(tài)的解釋性腳本語(yǔ)言,適合在服務(wù)器上使用。它們運(yùn)行效率不高,所以運(yùn)行起來(lái)很昂貴,但它們都有令人難以置信的靈活性,所以對(duì)初學(xué)者來(lái)說(shuō)也很友好。”

但當(dāng)涉及到數(shù)據(jù)科學(xué)時(shí),由于TensorFlow和Keras等框架的現(xiàn)成可用性,Python無(wú)疑更有優(yōu)勢(shì)。Bhardwaj說(shuō):“這些框架使程序員更容易構(gòu)建數(shù)據(jù)可視化和編寫(xiě)機(jī)器學(xué)習(xí)程序。”

與此同時(shí),JavaScript已經(jīng)產(chǎn)生了數(shù)不勝數(shù)的庫(kù),開(kāi)發(fā)人員可以輕松下載并適應(yīng)乎所有目標(biāo)。其中許多庫(kù)都是由社區(qū)成員開(kāi)發(fā)的,這也推動(dòng)了其他人的貢獻(xiàn),就像滾雪球一樣,任何參與開(kāi)源的人都熟悉這種效應(yīng)。

在這場(chǎng)博弈中,還有一個(gè)不可忽視的大玩家在發(fā)揮著巨大的影響力,那就是主導(dǎo)了TensorFlow發(fā)布的谷歌。

谷歌將Python作為其內(nèi)部腳本語(yǔ)言,同時(shí)對(duì)提升JavaScript也表現(xiàn)得興趣盎然。Trowbridge認(rèn)為谷歌使JavaScript比以前更快,內(nèi)存效率更高。與此同時(shí),人們普遍認(rèn)為Ruby在性能上落后,部分原因是它缺乏類(lèi)似的企業(yè)贊助商和資源來(lái)改進(jìn)它。

在Ruby曾經(jīng)興盛的一些領(lǐng)域,它還沒(méi)有被其他語(yǔ)言所取代。更確切地說(shuō),整體環(huán)境已經(jīng)發(fā)生了變化,所以這些利基市場(chǎng)已經(jīng)不再被識(shí)別。Boeh表示:“我最初是為一家本地創(chuàng)意機(jī)構(gòu)的客戶(hù)制作營(yíng)銷(xiāo)網(wǎng)站和在線商店,我認(rèn)為人們很容易忽視網(wǎng)絡(luò)開(kāi)發(fā)世界的底層已經(jīng)被自動(dòng)化取代了。幾年之內(nèi),整個(gè)業(yè)務(wù)就不復(fù)存在了——當(dāng)他們可以用WordPress或Shopify做得相當(dāng)不錯(cuò)時(shí),沒(méi)有人對(duì)這樣的定制網(wǎng)站感興趣。”

4、還有未來(lái)

2023年,Ruby已經(jīng)30歲了。相較Pascal、COBOL乃至Perl這些語(yǔ)言來(lái)說(shuō),Ruby的情況要好一些,但衰落之勢(shì)似乎不可逆轉(zhuǎn)。就像遠(yuǎn)行之船,固然沒(méi)有下沉,但航速還是越來(lái)越慢。

Ruby到底還有沒(méi)有未來(lái)?面對(duì)這一質(zhì)疑,一眾開(kāi)發(fā)人員還是表現(xiàn)樂(lè)觀。

其中,電子商務(wù)巨頭Shopify是最大的原因之一,因?yàn)镽uby on Rails是它的主要開(kāi)發(fā)平臺(tái)。Bhardwaj說(shuō):“Ruby仍然是開(kāi)發(fā)電子商務(wù)應(yīng)用程序的最佳工具,因?yàn)樗哂袆?dòng)態(tài)功能和靈活性。你可以通過(guò)不同的模塊構(gòu)建應(yīng)用程序,然后再進(jìn)行修改。這讓我們更容易更新應(yīng)用以獲得更多功能。”

雖然Shopify的運(yùn)營(yíng)規(guī)模遠(yuǎn)不如谷歌,但它仍然致力于成為Ruby的贊助人,就像谷歌為其青睞的語(yǔ)言所做的那樣。例如,Shopify最近開(kāi)發(fā)了YJIT,這是一個(gè)即時(shí)編譯器,可以提高Ruby的性能,并已內(nèi)置于Ruby標(biāo)準(zhǔn)中。

Trowbridge表示,Ruby“作為一種出色的服務(wù)器端‘粘合劑’語(yǔ)言,它在Web應(yīng)用程序的服務(wù)器組件上表現(xiàn)出色,就像Rails的‘只使用API’模式一樣”。他指出,在某些方面這個(gè)角色“讓Ruby基本上回到了它的起點(diǎn)”。

“總而言之,幾乎所有與我交談過(guò)的人都相信Ruby和Ruby on Rails將繼續(xù)在許多環(huán)境中使用。就像很多語(yǔ)言雖然不再像以前那樣流行,但仍在大量使用。我認(rèn)為Java就是個(gè)典型案例,Ruby和Java將會(huì)有相似的發(fā)展軌跡。”

最后,還有很多人認(rèn)為,Ruby的社區(qū)對(duì)Ruby始終抱有溫暖和熱情,這是很難在其他語(yǔ)言中找到的。就像Lumenova AI的首席技術(shù)官Cosmin Andriescu所說(shuō):“Rails仍然有一個(gè)主要的優(yōu)勢(shì),它有大量的Ruby gem庫(kù)。相較之下,不少JavaScript框架的API不穩(wěn)定,在必要的Web開(kāi)發(fā)工具方面還不夠成熟。”

Boeh補(bǔ)充道:“現(xiàn)在Ruby世界有很多令人興奮的發(fā)展。Ruby永遠(yuǎn)不會(huì)再成為下一個(gè)重要的新事物,但我認(rèn)為它會(huì)一直存在下去。”

5、寫(xiě)在最后:到底還要不要學(xué)習(xí)Ruby

軟件的生命周期有其固有的規(guī)律,一門(mén)編程語(yǔ)言能夠堅(jiān)持走過(guò)三十年絕非易事。

“Ruby有很多特性,我覺(jué)得最為大家喜愛(ài)的是它的簡(jiǎn)潔、高效以及人性化。但同時(shí)也有開(kāi)發(fā)者不喜歡Ruby,因?yàn)橐坏?yīng)用到工作中,由于Ruby太靈活,犯錯(cuò)的概率會(huì)隨之增大。還有人說(shuō)Ruby很多東西都是在運(yùn)行時(shí)來(lái)決定的,比較麻煩。”Ruby之父松本行弘在接受采訪時(shí)曾如是說(shuō)。

他認(rèn)為,這實(shí)際是一個(gè)取舍的問(wèn)題。“從使用Ruby的角度來(lái)說(shuō),我個(gè)人認(rèn)為最重要的是靈活性,當(dāng)然容易寫(xiě)出bug的確很煩,不過(guò)我還是想要保留Ruby最重要的特性。而且,Ruby會(huì)持續(xù)改進(jìn),進(jìn)一步提高開(kāi)發(fā)效率。”

對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),是否要在職業(yè)規(guī)劃中學(xué)習(xí)Ruby,同樣是一個(gè)取舍問(wèn)題。一方面,在過(guò)去的十年中,開(kāi)發(fā)領(lǐng)域可謂百花齊放,Node.js、Angular和React在前端和后端各領(lǐng)風(fēng)騷,JavaScript在市場(chǎng)需求穩(wěn)定性上越來(lái)越具有優(yōu)勢(shì),Python后來(lái)者居上快速“殺入”主流編程語(yǔ)言圈;另一方面,不少公司對(duì)Ruby和Rails的開(kāi)發(fā)者依舊有需求,自2008年以來(lái)出現(xiàn)的一切SaaS,在未來(lái)幾十年中都需要新的開(kāi)發(fā)者加入進(jìn)來(lái)。說(shuō)到底,任何語(yǔ)言都是有應(yīng)用場(chǎng)景限制的,而場(chǎng)景的變化是非常快的。不管你學(xué)不學(xué)、用不用Ruby,你總得深入一個(gè)語(yǔ)言。深入以后,才會(huì)有進(jìn)一步衡量與評(píng)估的眼界。

參考鏈接:

??https://www.infoworld.com/article/3687219/whatever-happened-to-ruby.html??

??https://zhuanlan.zhihu.com/p/108825259?utm_source=wechat_session??

??https://www.duidaima.com/Group/Topic/OtherLanguage/3300??

責(zé)任編輯:武曉燕 來(lái)源: 51CTO技術(shù)棧
相關(guān)推薦

2013-01-29 10:40:52

程序員

2014-03-25 09:56:42

程序員30歲后

2017-09-20 09:06:20

程序員網(wǎng)站后端服務(wù)

2019-09-19 10:15:15

程序員人生第一份工作文章

2012-02-02 14:35:08

程序員

2009-07-23 09:41:32

程序員職業(yè)發(fā)展

2020-01-20 09:49:58

華為騰訊百度

2009-05-06 09:56:22

Ruby性能改進(jìn)

2013-05-15 16:43:38

2014-10-30 13:46:10

谷歌

2015-02-27 09:28:22

程序員

2021-01-12 14:24:26

Python開(kāi)發(fā)大數(shù)據(jù)

2020-11-03 10:34:23

程序員IT互聯(lián)網(wǎng)

2012-12-07 13:25:03

職業(yè)規(guī)劃總結(jié)開(kāi)發(fā)人員

2020-07-20 08:15:10

工作公司團(tuán)隊(duì)

2009-02-26 10:49:29

軟件工程師職業(yè)生涯職業(yè)規(guī)劃

2010-03-26 13:14:21

CentOS系統(tǒng)

2018-04-15 16:11:57

RubyMatz語(yǔ)言

2012-05-30 09:12:46

NodeJSRubyRails

2014-09-16 10:05:39

職場(chǎng)年薪
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: www.日韩在线 | 91影库| www.色五月.com| 国产午夜视频 | 国产精品区一区二区三 | 国产你懂的在线观看 | 亚洲444kkkk在线观看最新 | 在线一区视频 | 欧美精品综合 | 国产精品高清一区二区三区 | 欧美精品乱码久久久久久按摩 | 丝袜美腿一区二区三区 | 五月天激情综合网 | 中文字幕一区二区三区四区五区 | 久久久久中文字幕 | 在线视频一区二区 | av永久| 日韩在线观看中文字幕 | 国产成人精品在线播放 | 成人免费视频一区二区 | 久草福利 | 国产精品视频一区二区三区不卡 | 欧美精品一区二区三区在线 | 国产精品视频播放 | 婷婷综合色 | 久久久久免费精品国产小说色大师 | 在线视频中文字幕 | 日日操夜夜操视频 | 日韩精彩视频 | 久久精品中文 | 99热国产在线播放 | 欧美一区精品 | 色婷婷激情综合 | 天堂三级 | av免费网址 | 91精品国产色综合久久 | 毛片免费看 | 亚洲精选久久 | 日本小电影网站 | 91精品国产日韩91久久久久久 | 黄色毛片网站在线观看 |