摘要:今天讀到了一個瑞典程序員的故事, 他在短短半年的業(yè)余時間內(nèi)、一個人單槍匹馬構(gòu)建了普通程序員幾年、甚至十幾年的業(yè)余時間才能搞定的東西:操作系統(tǒng)內(nèi)核、TCP/IP協(xié)議、GUI框架、進程管理器、文件瀏覽器、文本編輯器、界面編輯器、貪吃蛇游戲、繪圖...
今天讀到了一個瑞典程序員的故事, 他在短短半年的業(yè)余時間內(nèi)、一個人單槍匹馬構(gòu)建了普通程序員幾年、甚至十幾年的業(yè)余時間才能搞定的東西:
操作系統(tǒng)內(nèi)核、TCP/IP協(xié)議、GUI框架、進程管理器、文件瀏覽器、文本編輯器、界面編輯器、貪吃蛇游戲、繪圖工具......
這家伙就是傳說中的10倍速,甚至100倍速程序員。
再加上后續(xù)的瀏覽器, JS引擎、CSS、C++ IDE、HTTP服務(wù)器、電子表格...... 雖然功能還不完善,但是項目展示出的范圍寬廣得可怕!
這不但要重寫操作系統(tǒng),還要重寫上面的所有軟件! 好家伙!
他為什么要這么干呢?
下面以第一人稱,講述一下他的故事。
2018年10月,我剛剛在瑞典的一家戒毒所完成了為期3個月的康復(fù)計劃, 我失業(yè)了,和家人在一起,無事可做。
日子太漫長了,我得找點兒事兒做。
之前我在Apple 和諾基亞工作,主要做基于WebKit的Web瀏覽器, 但是我對底層的東西特別感興趣,我寫過ELF的解析器,Ext2 文件系統(tǒng)瀏覽器,有著事件循環(huán)的GUI 框架......
慢慢地,一個操作系統(tǒng)居然開始成形了,我把它取名為SerenityOS (寧靜操作系統(tǒng))。
你可能要問了,為什么要搞個新的操作系統(tǒng)呢?
答案很簡單,我想構(gòu)建一個我日常使用的夢想的操作系統(tǒng):結(jié)合上世紀90年代的GUI和Unix嚴肅的命令行。
在Apple工作的時候,我很享受蘋果軟件那種都在一個“屋檐”下的感覺,不但所有的軟件可以超級緊密地集成,并且可以讓程序員盡情地去“折騰”。
我決定把這種感覺帶給開源世界:我的SerenityOS不再是由一個個軟件包“拼湊”起來的,我要重新構(gòu)建所有的東西:從內(nèi)核到瀏覽器,以及中間層的所有東西!
開工吧!
第一年, 從零到HTML!
2018-11-08: 在虛擬機中運行
2019-1-09 ,開始對Widget(窗口,按鈕,CheckBox等)開始測試
2019-01-21: 創(chuàng)建多個"guitest"進程
2019-02-03: 增加字體編輯器、時鐘
2019-02-11: 實現(xiàn)菜單!早期的文件管理器
2019-02-28: 早期的進程管理器
2019-03-15: TCP協(xié)議棧搞定了,實現(xiàn)一個IRC玩玩
2019-04-11: 創(chuàng)建VisualBuilder, 創(chuàng)意來源于Visual Basic
2019-04-20: 貪吃蛇游戲
2019-04-22: GCC基本上可以工作了
2019-06-14: 簡單的繪圖程序
2019-09-09: 女士們先生們,我們有 DOOM了!
2019-09-29: 在LibHTML中實現(xiàn)基本的CSS
2019-10-10 第一個瀏覽器實現(xiàn)了!
第二年
2019-11-04: 移植Quake
2019-11-30: 整一個 C++ IDE吧: HackStudio IDE
2019-12-30: SerenityOS 在 36c3 上被“黑”,我開始發(fā)瘋似地學習安全知識來保護它
2020-02-29: 一個簡單的HTTP服務(wù)器(為了慶祝我的生日)
2020-03-31: JavaScript 支持初見雛形
2020-05-30: 支持TLS(和HTTPS)
2020-06-22: JPEG解碼器
(想知道圖片中這位美女是誰的,可以參考這篇文章《計算機女神,互聯(lián)網(wǎng)第一夫人!》)
2020-06-30: 努力通過Web瀏覽器的CSS兼容性測試(ACID2)
2020-08-30: 更多的桌面游戲 (Chess and 2048)
2020-09-22: C++ IDE HackStudio 開始支持Git
2020-09-29: 簡單版Excel !
隨著時間的推移,越來越多的人發(fā)現(xiàn)了我這個小項目(和我在GitHub上的視頻),也引起了不少人的共鳴,比如:
我很喜歡你這個項目,有著Unix風格的內(nèi)核,混搭的GUI,一個Mac OS的菜單欄, Windows GUI界面,一個NextSTEP風格的Laucher , 你把其他系統(tǒng)中你最喜歡的部分給拿了過來。
越來越多的人參與進來, 寧靜操作系統(tǒng),已經(jīng)從一個不起眼的小項目,發(fā)展成為一個活躍的開源社區(qū),全世界有幾百個貢獻者,在GitHub上收獲了11.9K的star 和 1.1k 的fork 。
2021年5月28號,我辭職了,全心全意地投入到這個操作系統(tǒng)的開發(fā)中。
這主要得益于大家慷慨的支持,我現(xiàn)在每月收到來自Patreon, GitHub 和PayPal的2000美元的捐贈,YouTube也有少量收入(每月150美元),再加上寧靜OS的商品銷售(每月100美元)。
這雖然不足以完全維持我和我的家庭的開銷,但也差不到哪兒去。
正如你看到的,我并不想通過這個操作系統(tǒng)發(fā)財, 我只想成為一個健康的、神智健全的人, 碰巧我的“自我治療”項目吸引了這么多人的注意和支持。
我是Andreas Kling, 一個瑞典程序員。
故事看完了,不知道各位小伙伴有什么感受?
說實話,我看了以后首先的感覺就是特別震驚!
文章開頭已經(jīng)提過,這家伙在短短的半年時間內(nèi)、一個人單槍匹馬構(gòu)建了普通程序員幾年、甚至十幾年的業(yè)余時間才能搞定的東西, 這家伙就是傳說中的10倍速,甚至100倍速程序員。
其次,Andreas真是敢想敢干,從內(nèi)核到應(yīng)用,都要重新搞一遍。Linux發(fā)展這么多年,大家都覺得一統(tǒng)天下了,都去研究Linux就好了,有個別愛好者也就是寫個玩具操作系統(tǒng),但是Andreas卻有自己獨特的想法,走出了一條獨特的道路,并且培育了一個良好的開源社區(qū)。
第三就是興趣真是最好的老師,他完全是憑借個人興趣把這個系統(tǒng)開發(fā)出來的, 在起步階段,所有的代碼都是一個人寫的。 一般人寫操作系統(tǒng),估計也就開個頭,能夠啟動,抄幾個例子也就算了,更不會搞這么多復(fù)雜的GUI框架和程序了。
他在油管上發(fā)了700多個視頻!讓人嘆為觀止,把自己的開發(fā)過程,對操作系統(tǒng)的理解都講了出來。
不過, 這幾年他衰老速度也肉眼可見
第四,為什么又是北歐?
Linux是芬蘭人Linus寫的
MySQL是瑞典人Monty開發(fā)的。
Minecraft 是瑞典人Markus寫的
......
SerenityOS 雖然沒法和上述產(chǎn)品相比,但也是一個非常有影響力的項目了 。
為什么這些產(chǎn)品沒有出現(xiàn)在中國?
如果說Linux, MySQL, Minecraft開發(fā)的比較早,那時候中國程序員還不多,水平可能還不高, 但是現(xiàn)在已經(jīng)是2020年,SerenityOS涉及到的技術(shù)早已普及,為什么沒人去做呢?
我想最有可能的原因是:中國有很多像Andreas這樣的天才程序員,只不過他整天被需求壓得喘不過氣來,業(yè)余時間被996榨干,回到家中,累得根本沒有時間和精力去鼓搗自己的興趣和愛好了......