日韩高清亚洲日韩精品一区二区三区,成熟人妻av无码专区,国产又A又黄又潮娇喘视频,男女猛烈无遮挡免费视频在线观看

技術人怎么少走彎路?看看nw.js作者Roger的經歷,希望帶給你啟發(fā)(技術人的出路)

技術人怎么少走彎路?看看nw.js作者Roger的經歷,希望帶給你啟發(fā)(技術人的出路)

作者 | 徐川

2009 年,Node.js 橫空出世,JavaScript 終于突破了瀏覽器,可以在不同的平臺上處理各種各樣的任務,但當時,人們還只是拿它作為 Web 服務器或者前端開發(fā)工具來使用。到了 2011 年,有個人突發(fā)奇想,既然 Node 可以運行在不同的桌面上,為什么不拿它來開發(fā)桌面應用呢?于是,node-webkit(后改為 nw.js)誕生了。到今天,用 JS 開發(fā)桌面應用已經是從創(chuàng)業(yè)公司到巨頭的共同選擇。

這個人就是 Roger,今天,我想和你聊聊他的故事。

1、從中科大到英特爾

Roger 原名王文睿,老家在遼寧大連,1996 年進入中科大后一直讀到博士畢業(yè)。在上課和研究期間,他第一次接觸了 Linux,第一時間就產生了濃厚的興趣。最開始,他只是在學校 BBS 的 Linux 版面上活躍,在上面交流和回答其他人的問題。和其他熱衷 Linux 的同學熟悉以后,他開始組織線下的活動,包括一些現(xiàn)場的講座和交流,以及 LUD(Linux User Diner) 聚會。當時學校向他們提供了定期場地,后來,在 2003 年他和其他小伙伴們注冊成為了學校正式的社團,這就是中科大 LUG(Linux User Group)的由來。

2005 年,Roger 博士畢業(yè),進入了英特爾,并且一待就超過了十年。

很多人可能以為英特爾就是個做芯片的公司,但實際上,英特爾的軟件和服務部門有幾千名員工,加上其他部門從事軟件開發(fā)工作的人員,規(guī)模和一個大型的軟件公司相當。所以在內部可以為工程師提供各種領域的工作機會。

在英特爾,Roger 待過不少的項目組,從開發(fā)虛擬化和應用移植的方案,之后在開發(fā)者工具產品部門和開源技術中心任職,參與 Java XML 性能庫、MeeGo 和 Tizen 操作系統(tǒng)等多個系統(tǒng)和軟件開發(fā)項目。

Roger 很喜歡英特爾的工程師文化的工作氛圍,英特爾會不斷追求前沿的技術以保證自己業(yè)界領導者的地位,因此員工都有機會學習和參與到業(yè)界最新技術當中。

技術人怎么少走彎路?看看nw.js作者Roger的經歷,希望帶給你啟發(fā)(技術人的出路)

(業(yè)余時間里,Roger 除了研究業(yè)界技術動態(tài)以外,還喜歡美劇、游戲和足球等活動。最近喜歡研究廚藝,他說,做菜和喜歡的編程有很多相似之處。)

現(xiàn)在,Roger 的工作很大一部分與開源相關,他每天仍然會寫代碼,也一直在維護知名開源項目 nw.js。他認為如果樂于不斷學習新知識,并且樂于以更聰明的方式工作,編程會是一項非常理想的工作。

2、NW 緣起:MeeGo 和 Tizen 的 Web Runtime

MeeGo 和 Tizen 是基于 Linux 的移動操作系統(tǒng),它們是英特爾、諾基亞和三星帶頭發(fā)起,曾試圖作為 Android 和 iOS 的挑戰(zhàn)者,類似的操作系統(tǒng)還有 Mozilla 發(fā)起的 Firefox OS。它們的特點是基于 html5 等 web 技術編寫應用,鼓勵跨平臺的開發(fā)生態(tài)環(huán)境。

但是,這些嘗試都失敗了,Web 技術編寫移動應用在當時還不成熟,功能和性能都有所欠缺,移動設備和網絡的性能低下,也無法給 Web 應用提供良好的體驗。

從 2009 年開始,Roger 所在的團隊當時的工作是給這些移動操作系統(tǒng)開發(fā) Web Runtime,即讓這些 Web 應用跑起來的核心引擎。其中一項主要的任務就是拓展它的本地 API,比如操作本地文件、使用 GPS 傳感器等,以實現(xiàn)和原生應用同樣的功能。

對于如何實現(xiàn)這個功能,項目里的同事有不同的想法。Roger 在會議上和同事討論時,他起初是想利用 Mozilla 的 js-ctypes 這樣的項目,可以讓 JavaScript 方便的調用任意 C 語言的代碼。不過這個想法并沒有被采納。

后來英特爾開源部門開展了創(chuàng)新計劃活動,工程師可以花 10% 的時間投入在自己的項目上,Roger 又想起了這個想法。那時候 Roger 正好了解到 node.js 這個項目,感覺用它來擴展本地的 API 是最好的選擇——它擁有足夠的能力,而且 JavaScript 開發(fā)者很熟悉 Node.js 的 API,它正好也處于起步階段(當時的 Node.js 平臺上有大概 4000 多個軟件包),很受歡迎。Roger 想到了將兩個項目集成在一起,這樣 web 開發(fā)者就可以在 web 頁面中直接調用 Node.js 平臺的眾多庫。

說干就干,Roger 很快開始了編寫代碼,第一個實現(xiàn)的版本是基于 webkit 和 Node.js,命名為 node-webkit,經過了公司內部的開源流程后于 2011 年底在 GitHub 上 發(fā)布,并在 Node.js 社區(qū)的郵件列表里 宣布。由于它實現(xiàn)了一種新的編程方式,并且開發(fā)者不需要學習新知識就可以直接開始使用,在社區(qū)里得到了很好的反響。

公司的其他部門也對這個項目產生了興趣,甚至有些人開始用它開發(fā)產品,后來公司也表示了進一步的支持,同意他用 50% 的時間來開發(fā)這個項目,過了一段時間以后又同意他招收一個實習生來一起工作,他在項目的郵件列表里發(fā)布了職位,不久后他收到了趙成的簡歷。

趙成以前曾經把 gtk 庫的一些功能包裝給 Node.js 使用,毫無疑問這是一個能力很強的小伙子,Roger 很快接納了他,兩人一起對 NW 做了改進,后來趙成成為當年的英特爾最佳年度實習生之一。

趙成本有機會留下來,但他最終還是選擇離開,在 2012 年 12 月,他給 GitHub 做外包開發(fā),嘗試將 Atom 從嵌入式 Chromium 框架和原生 JavaScript 遷移到 NW 上來,由于項目的特殊性,移植困難重重,并導致最終誕生了 Atom Shell 項目(即后來的 Electron),這是和 NW 類似,同樣用 Web 技術開發(fā)跨平臺桌面應用的工具。

隨著 NW 和 Electron 的推動,使用 Web 技術開發(fā)桌面應用的技術終于徹底流行開來。

技術人怎么少走彎路?看看nw.js作者Roger的經歷,希望帶給你啟發(fā)(技術人的出路)

3、NW 的現(xiàn)在

NW 上一次最重要的改進是在 2016 年發(fā)布的 0.13 版本,它的內部進行了一次重構。經過這個版本以后,NW 的軟件質量有了不少提高,并且也能按時跟隨 Chromium 發(fā)布新版本。對于這類項目來說,升級 Chromium 代碼非常重要,因為 NW 發(fā)布的軟件代碼中,99% 都來自 Chromium 項目。每次 Chromium 升級都會修正大量錯誤,包括幾十個安全補丁,同時提供最新的 Web 標準、新功能、新硬件支持和性能改進。這次重構也是以后很多的工作的基礎。

NW 的大部分代碼來自于 Chromium 和 Node.js 兩個項目,Roger 和其他貢獻者編寫的那部分采用了 MIT 授權,加上 Chromium 和 Node.js 項目的開源授權,所以任何人在這些授權下都可以將這個項目商業(yè)化。對商業(yè)化的友好,導致后來出現(xiàn)了一些下游的商業(yè)化項目,例如 tint,以及集成和重新發(fā)布了 NW 的其他開發(fā)工具,例如 Construct2。

現(xiàn)在,NW 能夠定期跟隨 Chromium 和 Node.js 發(fā)布最新的版本,軟件質量也有了不少提高。使用 NW 開發(fā)的軟件也越來越多,典型的有微信小程序開發(fā)者工具。

NW 創(chuàng)立了使用 Web 技術開發(fā)本地應用的一種新模式,應用程序使用 Web 技術開發(fā),容易開發(fā)出漂亮的用戶界面,并借助 Node.js 平臺的強大功能;同時對想開發(fā)本地應用的公司來說也比較容易找到開發(fā)者;已有的網站代碼也易于復用。未來希望借這個項目推廣這種開發(fā)模式,讓越來越多的應用使用這種技術開發(fā)?;蛟S它會成為 Java runtime 或者 .NET runtime 這樣應用廣泛的技術。

但同時 Roger 也認為,NW 這類技術仍然有很長的路要走:首先是性能需要進一步優(yōu)化,如果能占用更少的內存、對用戶輸入響應更快的話,體驗會更接近原生應用;另外 Web 平臺的快速演進和穩(wěn)定性對應用開發(fā)者也是一大挑戰(zhàn):目前,依賴 Web 運行時的應用需要不斷維護以應對瀏覽器升級,例如 Chrome 66 版本中 autoplay 策略的變更就使很多網站不能正常工作,直到 Chrome 71 中才采納開發(fā)者的意見實行了一個折衷方案。

Roger 樂于看到 Electron 的發(fā)展,他希望 Electron 能夠和 NW 一起,推動這個領域不斷的擴大和發(fā)展。對應用開發(fā)者來說,同時有兩個選擇,并且它們之間相互促進發(fā)展是比較理想的情況。

經歷了 MeeGo 和 Tizen 的失敗,以及 NW 的成功,讓 Roger 認識到:知道什么是正確的事,比知道如何高效的做某件事重要的多。它會讓你少走許多彎路,效果遠高于延長工作時間和提高工作效率。雷軍有句名言也表達了類似的意思,只要不走到只知道空談的另一個極端,找方向值得你花更多的時間。技術人在選擇技術和規(guī)劃職業(yè)道路時也同樣適用,希望 Roger 的經歷和他的感悟能給讀者一些參考。

相關新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部