為什麼Deno正式版本1.0發行時沒能成功呢?本文就將深入探討這個問題。
本文轉載自公眾號「讀芯術」(ID:AI_Discovery)。
Deno是一個Javascript/TypeScript的運行時,旨在取代Node.js的地位。它擁有廣泛功能,討論度非常高,在Github上有將近68000個星星:
既然這麼受歡迎,那麼有人要問了:為什麼Deno正式版本1.0發行時沒能成功呢?本文就將深入探討這個問題。
什麼是Deno
Deno是由Ryan Dahl(也是Node.js的原創者)創建的安全的JavaScript和TypeScript運行時,它的創建是為了彌補2009年首次設計Node.js時的疏忽。這種出發點很有意義,我敢肯定每個程式設計師都希望有機會重寫他們10年前的代碼。
因此,Deno在Node.js基礎上新增了很多特徵,以下是其中一些:
憑藉這些功能以及大量的開發者炒作,Deno於2020年5月正式發布了1.0版。接著……它撲街了。
為什麼Deno沒有成功?
圖源:unsplash
Deno似乎擁有致勝的所有要素。它追隨者眾多,功能多樣紮實,創作者經驗老道等等,但結果卻未能達到人們的期望。這是為什麼?
我認為最好從商業角度揭秘。很多人都忽略了一點:構建開源軟體與為用戶構建軟體實在沒有什麼不同。基本的經濟原則——供求關係,仍然發揮著重要作用。當有人創建一個新的開源項目時,他們勢必要與已建立的平臺競爭。鑑於此,不僅要考慮新項目的優越性,還必須與現有項目作比較。
對Deno來說,現有的是Node.js,儘管Node.js可能有所不足,但它仍能出色完成任務。如若Deno推出了Node.js無法複製的強大特徵,就可能會改變遊戲規則。但Deno沒有。
從用戶的角度來看,Deno具有的只是「次要特徵」。它具有更簡潔的代碼庫,使用了最新最佳的經驗,更加安全,但是這些東西對用戶來說僅是「特性」,並非產品自身。
你可以做一個像Gmail一樣的電子郵件客戶端,它應更加安全並提速50%,可是用戶仍然不會轉而使用它,即使重新創建書籤用時不多,人們也覺得不值得。Deno第一擊未中:它具有許多不錯的特徵,但是沒有什麼能讓用戶放棄Node.js的傑出之處。
Deno的另一個主要失敗之處是它不支持NPM軟體包。如果Deno能夠支持NPM軟體包,就很可能能夠改變形勢。Deno支持NPM軟體包將使它們不再像「單獨的電子郵件客戶端」,更像是對當前客戶端的更好包裝。支持NPM軟體包將大大降低進入壁壘。這將為用戶把項目和庫遷移至Deno提供一個良好的鋪墊。
這類似於TypeScript的「嚴格模式」。對於具有JavaScript強大代碼庫的用戶,直接轉用TypeScript會降低你幾周內梳理錯誤消息的效率。
由於TypeScript可以取消嚴格模式,於是它可以為用戶完全轉向使用TypeScript做鋪墊。這使它們的進入門檻大幅降低,又助力TypeScript爭得近年來JavaScript搶佔的市場份額。
啟示是什麼?
圖源:unsplash
筆者認為這是一個有趣的案例,例證了更多的商業方法。給我們帶來的啟示就是,如果你要發布新產品,請務必確保它具有強大的優點,能夠克服人們拒絕轉變現狀的阻力。
Deno具有魅力,但歸根到底,只是多了一系列的小「修復」,代價卻是失去了Node.js培育的整個NPM生態系統(也曾助它們壯大)。
那麼,Deno接下來何去何從?首先他們得做出決定。要麼努力增加Node.js庫的向後兼容性,要麼提供更多好處來誘使用戶轉換平臺。筆者認為更應拓展向後兼容,此後將極大改善項目的未來。
無論如何,祝Deno團隊好運,願好技術長存。
【責任編輯:
趙寧寧TEL:(010)68476606】