Ruby/Rails為什麼不如以前熱門了?

最近在知乎上看到了一個問題,問「Ruby和Ruby on Rails在2017年還有前途嗎?」我覺得這個問題很有意思,因為其實Ruby圈子裡不少很資深的朋友,都轉行去做別的了,有做前端的,有做Go,還有像我開始做Nodejs了。給人的感覺就是Ruby不行了,圈子也不夠活躍了,

下面我來分析一下Ruby/Rails為什麼最近聲音小了。

首先看大公司為什麼很少用rails,據我所知有

1. rails的性能和內存佔用不理想,規模效益不高

2. ruby作為動態語言在大團隊開發上存在劣勢,不能像java有介面和靜態類型檢查,能夠幫助大團隊在開發期減少Bug。

3. 小眾語言,招人(相對)困難

4. rails本身是單塊設計,而且很多地方並不OO,不適合大公司拆分、細化、優化的訴求

而rails更多是創業小公司在用,我的經驗包括:

1. 全棧框架,有自己的前端邏輯

2. 完善的生態

3. 開發速度快,對人員數量要求少

4. 學習曲線很線性,容易培養(全棧的)開發人員

對於小公司來說,本身資金有限,人力成本又佔主要部分,產品不確定性大,所以選擇走小團隊,快速開發的模式是很自然的事情。而大公司,往往有完善的體制——招聘、培訓、管理,等等——支持,所以往往是希望能通過增加人手來擴大生產規模以及完成更多的產出,這就要求開發工具有足夠的「工程性」。這跟Rails的理念就是相違背的,而Ruby的工程性也不如Java之類的好。

大家再回想一下這幾年中國經濟形勢如何?實體凋敝,房價暴漲,很多人都覺得創業還不如買幾套房子。這樣創業公司少了,用Ruby/Rails的自然也少了。

再看這幾年的技術發展趨勢,一個是經過多年的發展,當初Ruby/Rails的很多先進思想也都被其他語言和工具吸收了,開發效率上的領先已經達不到最早那種數量級的差異。

同時很多開發者已經熟悉了自己的一套框架和工具鏈,如果實現相同功能,沒有十足的必要學習另外一種新的技術。

而只有前端不一樣,瀏覽器只支持JavaScript,整個前端的生態又順理成章建立在了nodejs之上。加上手機客戶端又適逢新興的移動互聯網浪潮,需求量突飛猛進。前端、客戶端之前的積累也比較少,加上需求的推動,有很大的空間來造輪子。

所以Ruby/Rails近幾年聲音變小也是正常現象,即使我認為目前在開發體驗上還沒有能超過Rails的全棧框架。

從產品角度來看,早年開發產品拼技術,主要看你東西能不能做出來。後來開始拼產品設計,又講究快速開發和快速試錯。以前在Web時代,Rails在這些方面都有優勢。而到了移動時代,產品設計和快速迭代的主要部分從後端移到前端,讓後端開發變成了一個配角,尤其是後端開發在早期階段的重要程度也降低了。

然而事到如今,各端入口都被佔據,流量、用戶基本被巨頭們瓜分乾淨,各種現成的平台服務也層出不窮,又進一步讓技術的重要程度又降低了。想想做一個公眾號,用現成的平台,經營好粉絲就能拉投資撈錢;或者在現有平台上開個微店來做生意。現在很多創業門檻完全不在技術方面,技術的重要程度被大大降低。

而往後看,VR、人工智慧、大數據、IOT等等也都不是Ruby所擅長的領域。

種種加起來,可以看到Ruby/Rails幾乎不可能再掀起新的浪潮。總結了這麼多,就是,Rails本身所擅長的領域在現在已經變得很狹窄也不那麼重要了,所以才聲音小了。任何技術也都有他的生命周期,Ruby/Rails是非常優秀的技術和工具,如果你要做的事情符合他的目標,那它依然是一個很棒的選擇。

推薦閱讀:

學習ASP.NET WEB開發需要學習那些知識?
在珍愛網工作是一番怎麼樣的感受?
0基礎如何在5天之內完成一個選戶系統?

TAG:Ruby | RubyonRails | Web开发 |