戒毒的程序員Andreas Kling,全職開發(fā)操作系統(tǒng)6年后,決定轉(zhuǎn)戰(zhàn)瀏覽器
人生(雜談)  /  管理員 發(fā)布于 9個月前   504
這位名為 Andreas Kling 的程序員,自 2019 年每次更新自己的最新動態(tài)時,似乎都能登上國外科技網(wǎng)站的熱榜,成為眾人關(guān)注的焦點。
不是因為他堪比 Linux 之父 Linux Torvalds 那樣有名,也不是因為他是來自某大廠的高管,更不是因為他研發(fā)的某樣工具直接改變了世界,其實嚴格來看,他只是一名普通的程序員。
近日,他在職業(yè)生涯中又做了一個大膽的決定,辭去自己親手創(chuàng)建的 SerenityOS 操作系統(tǒng)項目的 BDFL(終身仁慈獨裁者,Benevolent Dictator For Life,是少數(shù)開源軟件開發(fā)者所擁有的頭銜,他們通常是某一項目的創(chuàng)始人,并在該項目社區(qū)出現(xiàn)爭議時擁有最終的決定權(quán))職務(wù),把自己研發(fā)的瀏覽器項目 Ladybird 從操作系統(tǒng)中分叉出去,讓其成為一個真正的跨平臺瀏覽器。
這也讓人好奇,為什么 Andreas Kling 的一舉一動就能受到如此高的關(guān)注度,我們不妨從他過往的經(jīng)歷中一探究竟。
Andreas Kling:一位從大廠離職、到誤入歧途、迷途知返的程序員
Andreas Kling,是一位來自瑞典的程序員。在他的自述中,他用了“終身編程愛好者、有志成為通才”來描述自己。
在外人看來,作為一個程序員,他本來有非常好的發(fā)展前景,畢竟曾任職于蘋果(2011-2017 年)、諾基亞(2009-2011 年)等大廠,主要負責基于 WebKit 的 Web 瀏覽器開發(fā)工作,非常擅長使用 C++?!艾F(xiàn)在的你,很有可能正在使用一個因為我而速度稍快的瀏覽器閱讀本文”,他在博客介紹頁寫道。
不過,遺憾的是,從蘋果離職后不久的 Andreas Kling 誤入歧途,直到 2018 年 10 月,他從當?shù)匾患医涠舅瓿闪藶槠?3 個月的康復計劃。
出來之后,Andreas Kling 失業(yè)了。他與家人住在一起,無所事事。由于沒有藥物或其他惡習可以打發(fā)時間,他覺得日子太過漫長了。
起初,Andreas Kling 努力尋找一些事情來打發(fā)時間。他在學校待過一段時間,發(fā)現(xiàn)那里并不適合自己。
「完成藥物成癮康復計劃幾個月后,我的心態(tài)非常開放,想要挑戰(zhàn)自己,找到提升自己的方法。毒品讓我的生活充滿了秘密和謊言,但那樣的生活已經(jīng)結(jié)束了。雖然我不確定下一步該怎么做,但我對秘密已經(jīng)厭倦,以至于我想不出還有什么可以改變的。
我需要一些東西來打發(fā)空閑時間,同時學習如何過上正常的生活,而事實證明,構(gòu)建一個新的操作系統(tǒng)是一項恰到好處的任務(wù)」,Andreas Kling 說。
這也是 SerenityOS(“寧靜”操作系統(tǒng))操作系統(tǒng)的由來,Andreas Kling 希望借助“寧靜的禱告”,或許能幫助自己更加堅信未來要走的路。
6 個月,開發(fā)出一款操作系統(tǒng)的原型
Andreas Kling 對開發(fā) SerenityOS 的目標是——「構(gòu)建一個完整的桌面操作系統(tǒng),最終用作我的日常驅(qū)動程序」。
結(jié)合其個人最喜歡的兩種計算機模式,即 20 世紀 90 年代的 GUI 和 21 世紀末 Unix 的簡潔命令行,Andreas Kling 將 SerenityOS 開發(fā)成一款適用于 x86 計算機的圖形類 UNIX 操作系統(tǒng)。
在開發(fā)過程中,Andreas Kling 表示:「在蘋果公司任職的時候,我真的很喜歡他們大部分軟件都是在同一個“屋檐”下制作的感覺。這不僅使所有的軟件可以超緊密集成,還可以給開發(fā)者更大的創(chuàng)作空間。我想我可以嘗試把同樣的感覺帶到開源世界,所以我決定 SerenityOS 不會是一個個拼湊起來的軟件包,我們正在建立自己的一切,包括從內(nèi)核到 Web 瀏覽器,以及兩者之間的一切?!?/span>
在此之下,通過不斷地迭代,Andreas Kling 僅用了半年的時間,研發(fā)出了 SerenityOS 的 Demo。
2018 年 10 月 10 日,經(jīng)過六個月的獨立工作之后,Andreas Kling 將其發(fā)布到網(wǎng)上,并邀請其他人參與,這也是他在 GitHub 上首次提交了代碼(https://github.com/SerenityOS/serenity)。
與此同時,Andreas Kling 為了讓自己更加忙碌,也為了記錄,他開始制作 YouTube 視頻來記錄項目開發(fā)的進度。
Andreas Kling 表示,“當時,我還在獨自從事這個項目,我認為視頻可能是一種引人入勝的形式。最初的視頻都是簡單的編程課程,充滿了笨拙。我犯了很多錯誤,在糾正錯誤時含糊不清。隨著時間的推移,我進步了,并且開始每月制作 SerenityOS 更新視頻——這一傳統(tǒng)至今仍在延續(xù)。”
直至今日,Andreas Kling 在 YouTube 上視頻量達到了 1056 個,擁有 4.58 萬的訂閱者。
而 SerenityOS 從由 Andreas Kling 一個人全職參與的項目發(fā)展到數(shù)百人合作開發(fā)的開源社區(qū)。在 GitHub 上,SerenityOS 項目從 0 獲得了 29.1k Star,F(xiàn)ork 數(shù)量達 3.1k。
就 SerenityOS 的功能而言,其也從一個用 C 語言編寫而成的小 x86 內(nèi)核起步,逐漸能夠在虛擬機中運行、擁有 GUI、生成多個“guitest”進程、增加壁紙支持、使用 ping 命令、構(gòu)建一個 IRC 客戶端、實現(xiàn)了一個貪吃食的游戲、編譯小的 C 程序......
時下,Andreas Kling 刪除了 32 位 x86 端口,使 SerenityOS 成為僅限 64 位的操作系統(tǒng)。還增加了對更多流行媒體格式的支持,如 VP9、WebP、JPEG、JPEG XL、TinyVG。此外,還能在 SerenityOS 上玩《超級馬里奧 64》。
更值得一提的是,Andreas Kling 做到了其最初的承諾,會從內(nèi)核到 Web 瀏覽器,構(gòu)建 SerenityOS 所需的一切。他于 2022 年推出了一個名為 Ladybird Web 開源瀏覽器(https://github.com/SerenityOS/ladybird),進一步增加 SerenityOS 系統(tǒng)的完善性。
不止于此,Ladybird Web 瀏覽器的一大特性是跨平臺,這也意味著 Andreas Kling 等人的開發(fā)將跳出 SerenityOS 的桎梏。
跳出 SerenityOS 的桎梏,一個新的跨平臺瀏覽器項目 Ladybird 誕生
提及 Ladybird Web 瀏覽器的開發(fā),在 Andreas Kling 最初設(shè)想中,Ladybird 是作為 SerenityOS 系統(tǒng)的 LibWeb 和 LibJS 瀏覽器引擎調(diào)試工具,它讓人們可以更輕松地在 Linux 上工作。
LibWeb 和 JavaScript 引擎 LibJS 是 Andreas Kling 分別于 2019 年、2020 年開發(fā)的引擎。
隨著 Ladybird 功能不斷完善,兩個月過去之后,Andreas Kling 發(fā)現(xiàn)自己在大部分瀏覽器開發(fā)工作中都在使用 Ladybird。
于是,本著“建造一些有朝一日可能對更多人有用的東西”的想法,他開始將 Ladybird 定位改為一款“跨平臺瀏覽器”。
Andreas Kling 表示,瀏覽器和庫都是用 C++ 編寫的,主要技術(shù)棧包括:
Ladybird:選項卡式瀏覽器 GUI 應用程序
LibWeb:Web 引擎,多種標準:HTML、DOM、CSS、SVG……
LibJS:ECMAScript 語言、運行時庫、垃圾收集器
LibGfx:2D 圖形、文本渲染、圖像格式(PNG、JPG、GIF 等)
LibRegex:正則表達式引擎
LibXML:XML 解析器
LibWasm:WebAssembly 解析器和解釋器
LibUnicode:Unicode 支持庫
LibTextCodec:文本編碼轉(zhuǎn)換庫
LibMarkdown:Markdown 解析器
LibCore:其他支持功能(I/O、日期時間、MIME 數(shù)據(jù)……)
Qt:跨平臺 GUI 和網(wǎng)絡(luò)
LibWeb 有一個 Platform 層,Ladybird 在這層為事件循環(huán)、計時器、系統(tǒng)字體設(shè)置等注入 Qt 支持代碼。Ladybird 使用 Qt 進行聯(lián)網(wǎng),因為多進程的 RequestServer 系統(tǒng)在 SerenityOS 之外還沒有使用。同時,Ladybird 是單進程的,“所有這些都是暫時的,并且會隨著時間而改變。”
Ladybird 在 2-clause BSD 許可下是免費的,“沒有人可以購買該項目,但你可以通過參與開發(fā)來改進瀏覽器”。
那時 Andreas Kling 表示,「我將“真正獨立的跨平臺瀏覽器”添加到我的個人目標列表中。這也是對任何可能有興趣開發(fā)全新瀏覽器的人的邀請。」
隨著對 Ladybird 的投入,這一項目可以在 Linux、macOS、Windows (WSL) 和 Android 上運行,同時也獲得了不少業(yè)界人士對于這款瀏覽器開發(fā)的資金支持,包括來自 Shopify 的 100,000 美元贊助、兩筆匿名的 100,000 美元捐款以及來自德國公司 ohne-makler.net 的 10,000 美元贊助。
兩年之后的今天,從操作系統(tǒng)到瀏覽器
也就是從這時起,Andreas Kling 幾乎把全部精力都放在了 Ladybird 上。
“時光飛逝,現(xiàn)在我已經(jīng)不記得上次在 SerenityOS 中從事與 Ladybird 無關(guān)的工作是什么時候了”,Andreas Kling 說。
他表示,到目前為止,SerenityOS 項目及其社區(qū)一直處于兩個團體共享所有資源和基礎(chǔ)設(shè)施的狀態(tài):
一個群體主要關(guān)心構(gòu)建桌面操作系統(tǒng)。
另一個群體主要關(guān)心構(gòu)建跨平臺的網(wǎng)絡(luò)瀏覽器。
過去,興趣之間有足夠多的重合,因此分享一切是有意義的,但大家對這兩個項目的共同興趣已經(jīng)逐漸減少。
現(xiàn)在 Andreas Kling 想要做出一些改變,「為了簡化 Ladybird 的開發(fā),我將它從 SerenityOS 中分叉出來,形成一個新的、獨立的頂級項目。
我熱愛 SerenityOS,也熱愛圍繞它形成的社區(qū)。我不想再因為分心而成為 BDFL 而阻礙它的發(fā)展。這也是我決定辭職的原因。從即日起,SerenityOS 現(xiàn)在由其維護者小組負責。他們是一群可愛的人,我相信他們會好好照顧它的。
對我來說這是一個困難且情緒化的決定,但我相信這將為兩個項目帶來更好的未來。」
那么,這對于 Ladybird 來說意味著什么?
Andreas Kling 表示:
日常交流轉(zhuǎn)移到新的Ladybird Discord 服務(wù)器(https://discord.gg/nvfjVJ4Svh)。
Ladybird 現(xiàn)在主要針對 Linux 和 macOS 平臺而發(fā)。不再以 SerenityOS 為目標。
與 SerenityOS 不同的是,Ladybird 將采用寬松的 NIH 政策(而不是“禁止第三方代碼!”),并將利用更大的 OSS 生態(tài)系統(tǒng)。
“與朋友一起破解有趣的軟件”再次成為主要焦點。
接下來會發(fā)生什么取決于社區(qū)!
Andreas Kling 進一步解釋道,“在有人問之前,我先說明一下,這次改變背后沒有什么特別之處。我只是意識到兩個大項目太長時間都擠在一個地方,讓人感到很不舒服,而我所做的我相信會讓所有參與的人生活得更好。
我要衷心感謝所有與我一起參與這些項目的人。你們都幫助我保持清醒,這是我一生中最美好的時光!現(xiàn)在,我將 SerenityOS 交給你們,讓你們自己動手。
我對這兩個項目的未來感到興奮,現(xiàn)在我們都可以更好地專注于我們的主要興趣!”
寫在最后
對于 Andreas Kling 最新選擇讓瀏覽器項目從操作系統(tǒng) SerenityOS 中“單飛”的做法,有人理解:
我完全尊重這些理由,它們合乎邏輯,說得也很好。但希望人們對 SerenityOS 的興趣不會因此而減弱。Kling 非常善于通過他的 YouTube 視頻吸引人們的興趣,在視頻中他會深入討論錯誤修復和功能開發(fā)。
當然,對于開放網(wǎng)絡(luò)來說,瀏覽器是最有潛力的,甚至是迫切需要的,但我還是希望有一天能每天使用 SerenityOS。它的美學和整體架構(gòu)讓我夢想成真。
Windows 正在迅速衰落,而 Linux 缺乏整體元素,因此擁有一款能夠?qū)⒆顐ゴ蟮囊曈X設(shè)計語言(20 世紀 90 年代中后期的界面指南)與強大的 Unix shell 相結(jié)合的產(chǎn)品將為桌面計算帶來巨大的好處。(是的,OSX 擁有出色的現(xiàn)代用戶體驗,具有 Unix 基礎(chǔ),但不是開源軟件,也不是大眾可以承受的)。
另一方面,有人對其放棄 SerenityOS 管理同樣感到惋惜,甚至擔心“SerenityOS 現(xiàn)在有點注定要失敗了?說實話,我從未見過這種舉動會有好結(jié)果。即使沒有參與,擁有原創(chuàng)者坐陣項目,也會對項目的受歡迎程度大有裨益?!?/span>
不過,在 Andreas Kling 個人看來,通過放棄 SerenityOS 作為目標,Ladybird 瀏覽器可以自由使用目前無法在 SerenityOS 上運行的第三方庫。這意味著 SerenityOS 無論如何都無法在這種新狀態(tài)下集成 Ladybird,因為 SerenityOS 有嚴格的“禁止第三方代碼”政策。
“隨著時間的推移,我也期待看到 Ladybird 未來會作為 SerenityOS 的一個端口重新回歸”,Andreas Kling 說。
轉(zhuǎn):
https://awesomekling.substack.com/p/forking-ladybird-and-stepping-down-serenityos
https://awesomekling.github.io/Ladybird-a-new-cross-platform-browser-project/
123 在
Clash for Windows作者刪庫跑路了,github已404中評論 按理說只要你在國內(nèi),所有的流量進出都在監(jiān)控范圍內(nèi),不管你怎么隱藏也沒用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最簡單的方法中評論 好久好久都沒看友情鏈接申請了,今天剛看,已經(jīng)添加。..博主 在
佛跳墻vpn軟件不會用?上不了網(wǎng)?佛跳墻vpn常見問題以及解決辦法中評論 @1111老鐵這個不行了,可以看看近期評論的其他文章..1111 在
佛跳墻vpn軟件不會用?上不了網(wǎng)?佛跳墻vpn常見問題以及解決辦法中評論 網(wǎng)站不能打開,博主百忙中能否發(fā)個APP下載鏈接,佛跳墻或極光..路人 在
php中使用hyperf框架調(diào)用訊飛星火大模型實現(xiàn)國內(nèi)版chatgpt功能示例中評論 教程很詳細,如果加個前端chatgpt對話頁面就完美了..
Copyright·? 2019 侯體宗版權(quán)所有·
粵ICP備20027696號