為什么今天要寫出來?
為什么是今天要寫這樣一篇文章?這篇文章是我混跡linux世界這么久一直想說的很多話的集合,從年初就一直想寫一篇這樣的文章,苦于當時腦袋里面都是只言片語,并不成系統,再加上我一直面對開源社區很多看不慣的做法一貫都是懟回去的做法,比如在知乎上和各路妖魔鬼怪狂撕,事實證明互撕會導致自己智商和情商降低,遠不如一篇系統的文章更具說服力,就像我用超長文《深度桌面操作系統架構設計》放到知乎上以后,無謂的口水都要少好多。
所以這大半年寫文章和代碼時一直在構思怎么理性而又飽含深情的 “胡說八道”, 直到今天在看《火星崛起3》的時候,看到戴羅在自己最脆弱的時候面臨最強大的敵人時,對自己最信任的戰友說的話:
... 問題就出在這里:我一樣不知道怎么打贏這場戰爭,也不會假裝自己有答案。可是我也不會就這么應了高古斯都的預言,什么計劃都沒有,直接帶領人類走向混沌。正因如此,我們需要賈王這樣的盟友,而且不能走恐怖分子路線,必須召集真正的軍隊 ...
這段話之前,戴羅和他最親密的戰友打得不可開交...隨著最激烈的戰斗畫面腦補到戴羅的突然降溫的這段話,突然這篇文章之前零零碎碎的構思突然就理順了。
更加明白了,怎么用一種反常的理性來闡述我內心的憤怒,更能讓你們這幫技術高深的 ”高智商混蛋“ 能夠不帶著抵觸情緒耐心的看完另外一整篇長文,哈哈哈。
這么多Linuxer掙扎的來源?
每一個Linuxer都是折翼的天使,都是一個智商超級高的善良人,至少最開始學習Linux的時候是這樣的
我玩Linux十幾年了,代碼也寫了很多,雖然還沒有那么多開源的前輩的代碼多胡子長,至少也算什么神鬼蛇神都見過的,從內心一直在想一個問題,在現代互聯網和通信異常發達的時代,大家都學的都是幾乎一樣的Linux知識,為什么國外的開源發展的如火如荼,而且大多數Linuxer樂在其中,而國內的Linuxer大多數都比較艱苦,在面對互聯網塊錢快餐理論的狂轟亂炸下,發展的越來越...怎么說呢?沒有希望
就像昨天有一位朋友關心的問 ”深度最近怎么樣?”,我完全知道朋友在想什么,長時間的溝通和了解情況下,詢問中透露出一絲絲常規式的關心,我想了半天,最后打了一句 ”哈哈哈,還活著 ;) ", 我想這句飽含深情的話最具幽默感,果不其然,朋友發了兩個”哈哈“過來。我想這種感覺不光是deepiner有這種感覺,很多中國做開源的單兵英雄和小而美的團體都生活在這種氛圍中,在眾人皆快我獨怪的大氛圍中艱難的努力和堅持。
從經濟發展和物理規律來看,本質上的原因是,開源運動這種純粹精神領域的折騰是要建立在足夠的物質條件上的,人總是遵循:“長時間教育學習→在社會上活下去→活得好過上理想生活→錢賺的多了生活無聊了找點樂子” 的規律去折騰這一生的。一個人和一個社會只有經濟發達到一定程度,讓人完全忘記 “活下去” 的本能威脅后,人才會毫無危機感的去 “玩” 開源。
在物理規律之下,當下的中國開源的主要矛盾是:
一個長不大的大男孩好奇探索世界初心和一個有嗷嗷待哺小朋友后被迫當父親的強烈責任心之間的相互矛盾
這種強烈的、不用負責任的、主動探索的好奇心遇到那種同樣強烈的、每天都要想家人生存的、被動的做不喜歡事情的現實沖擊,造就了一大批 “具有社會主義特色中國IT宅男” 的自然景觀。
我相信大多數Linuxer在第一次讀《地下》、《大教堂與集市》、《黑客與畫家》、GNU歷史、Linux開源運動的時候,都會被世界上最頂尖黑客鍵盤敲擊聲背后那種純粹的、發自內心的、絕對公正和自由的偉大遠見以及無畏的英雄氣質所深深震撼,看著千萬行的超大軟件工程就像集市一般不可思議的構建起來后,自己也多么希望參與到這場全人類的偉大事業中,就算自己最后成為不了大師,做開源和自由軟件本身也能在養家糊口前提下, 不違背自己最堅守和最看重的良心。
我相信大多數Linuxer都是從當初最真實的震撼和堅守到今天的不論好與壞...
我個人來看,今天中國大多數Linuxer掙扎的本質在于:
內心的理想世界和個人能力無法改變世界帶來自我受挫的矛盾
怎么從掙扎變成高智商混蛋?
如果一個社會和一代人主要的矛盾不解決,就會上升成為一種社會問題,至今仍然相信和堅守開源的你們應該也可以看到,中國開源社區并沒有衍生出足夠多的回歸內心和開源本源的開源中堅力量,而是在整個社會的浮躁、鼓勵享樂鄙視基礎科學研究、一套套互聯網的賺錢論把一代人的無窮欲望深深的撩起來了,你內心越喜歡看黑暗,互聯網快餐就以最快的方式造黑暗供你“享受”。
中國的開源不是像黑客馬拉松那樣大家想象的越來越多了,而是越來越功利心了,催生出一大幫為了賺錢和吸引眼球的技術人放棄專研,天天把簡單的道理吹得天昏地暗,一大幫郁郁不得志的人,從開源愛好者變成 “高智商混蛋”,不做貢獻,只會天天吹牛,開鍵盤會,斷章取義的評論所有來抬高自己,卻總是把自己從自己的理論中排除在外。
就像文章最開始說的那樣,我不想糾結混蛋如何如何,我只想像柴靜的《蒼穹之下》那樣,分析背后的現象和原因,看看能否從原因走到一些深入思考的地方,給大家的腦袋里面塞一些不同的聲音,如果能夠帶動一部分實干家加入開源運動,也算是不枉寫那么多代碼和文章,沒白活...
從現狀看,中國開源社區中人的分布呈金字塔型:
- 最底部的是大多數學習不努力的人,不論做開源還是其他,都拿著自己的不努力和邏輯不通當成最偉大的借口,伸手要一切自己想要的東西,如果有一天不如意了,就只會在網上用鍵盤自導自演的提出虛擬的場景和YY世界來證明自己是對的,而別人都是錯的
- 接著是一部分心理受傷害者,不論是小時候的不如意還是社交上的障礙,選擇開源更像開源對自我封閉和自我孤獨的一種心理寄托,自己通過后天的努力學到了一部分技術,能夠養活自己,同時希望通過技術辯論來構建一圈保護自己的領地,喜歡在技術上和別人爭論的天昏地暗,浪費了大部分時間都在爭論上,與其說是愛好爭論,還不如說是為了用技術保護自己的一種防御手段,如果這種防御手段再加上 “你不用自由軟件你就是垃圾” 的宗教式的強迫癥,就更令人討厭了
- 極少數人,異常專注的努力后,既養活了自己和家人,又獲得財務自由,在中國這種儒家思想、權威不容挑戰的社會氛圍下,大多數人選擇了另外一種與世無爭的生活,往往隨著物質生活達到一定程度后,在開源世界銷聲匿跡,甚至不再做開源事業,用一種更回歸自然的方式的宣揚自己最初對開源精神的理解
- 世界級少數的天才,我認為開源社區的領袖力量的有兩種類型的發展方向,一種就是開源大牛型的,創建了世界偉大的開源項目,99%的時間都花在寫代碼上了,認為代碼是詮釋自己思想最好的形式,很少把自己除代碼以外的思想公開討論,更不用說和外界討論了。另一種就像RMS一樣,技術上和思想上都極賦遠見,但是因為他個人太耀眼,觀點很難被接受,這樣從技術上和思想上都能夠影響世界的人慢慢的都快絕種了
從開源社區的人群分布來看,真正有實力能夠影響開源社區的人要不是歸隱桃源、要不就是專注代碼,真正技術和思想上都有獨立思考不人云亦云的領袖型人物幾乎不存在,而在開源社區中發聲的更多是,教條式的理解自由軟件用技術壓迫別人和自己不努力鍵盤黨傳遞負能量的人居多。而相對于技術用戶而言,要多上萬倍的非技術人群要不就是被氣走了,要不就是看笑話或者看不懂走了,非技術人群參與開源運動極少。
不得不說,中國開源社區現狀一句話就是:
裝逼吹牛的人居多、真正的產品用戶很少、能夠給開源社區帶來推動的實干者極度稀少
非技術人群是推廣開源運動不可或缺的力量,甚至是主力,可卻因為上面的情況導致,開源運動演變成技術用戶自私的守護自己個人愛好的領地,甚至故意排擠非技術用戶加入到開源社區。
我在deepin的每一天都在思考 “戰爭”
我在deepin工作的7年多,我大部分時間都在戰斗中,有時候也會很頹廢,頹廢的時候就自我開玩笑問我自己我在干什么?我自己回答:
”我在思考怎么打贏一場實力懸殊的戰爭“
在知道打贏之前,我看到的戰爭對局往往讓我都感到絕望:
- 微軟和蘋果更懂普通大眾在想什么,而開源社區連合格的產品經理都鮮有,更不用說站在用戶同理心去理解用戶的痛和花時間做真正的產品
- 微軟和蘋果造了成百上千的應用航母艦隊,形成全方位的立體戰斗力為它們自己的技術和商業護航,而開源社區卻教條的用KISS原則針對某個開發者造了一艘初級的應用木船,都要用狹隘的、自私的技術人自身利益角度去口誅筆伐
- 微軟和蘋果知道利益分享才是生態發展的帝國基石,而開源社區大多數開發者在不理解商業本質的情況下,卻還在為哪個技術更精巧而你爭我斗
- 微軟和蘋果知道上千人團隊開發的力量,而開源社區卻只相信英雄單兵作戰,可惜英雄也會老,英雄精神卻后繼無人
- 最可怕的是,巨人在蘇醒,用開源的模式來剿滅曾經它們看不上的一星半點’開源反抗軍‘
如果把開源運動和傳統軟件的閉源現狀當成一種戰爭革命的話,現在的開源社區狀態最多就是游擊隊,在某些零散的領域造成了星點襲擾,面對基礎設施、物質后勤、領導統御、生態聯盟更加成熟和健全的微軟帝國,開源真的造成了動搖和威脅了嗎?
就連這幾年被開源社區當做無腦宣傳的安卓真的達到大家YY的理想國了嗎?不論從技術還是生態發展上都達到了嗎?一點都不:
- 技術上,從開源技術人YY的Linux構建的手機操作系統到安卓內核從Linux主分支中徹底剝離和拋棄,安卓真的從技術上大量回饋了Linux了嗎?反而從商業成功到內核代碼自成一體系
- 從生態發展上,安卓真的帶動了商業程序的開源運動了嗎?撇開那些從所謂平臺而不得不開源的各種框架外,這個世界上又有多少企業真正認同開源文化,而從道德自律上去支持開源運動呢?有多少呢?你幾雙手可以數完?
開源社區和開源運動在傳統帝國和互聯網商業下,還有哪些是自己獨有可以生存的?恐怕只有分布式的開發模式了,而這最后一個引以自豪的開發模式,微軟這個巨人已經在大力借鑒和反擊了,linux server app、docker、虛擬化、vscode, 微軟在帶領它龐大兵力的開發軍團再比世界上90%的企業更快的迭代速度,在擁抱開源以及開源開發模式。
最令我害怕的不是微軟這個巨人的覺醒,而是開源社區自身這種死不了也活不好的天然混沌,很多人說開源代碼讓我們可以站在前人的肩膀上發展,減少代碼重復。
而這么多年我看到的確實另外一番景象:
因為力量不集中和個人開發者的資源和精力不夠,大多數開源項目都是在現有大項目(商業公司背后開發)的基礎上小修小補或者fork一些小項目供自己練手,當自己精力和資源不夠時,一個小項目就中途斷了,然后等下一個學生學習后再次折騰類似的技術。
對,因為開放源代碼,我們折騰的時候不用自己造前人的代碼,但是這個世界上真的有多少超大的開源項目不靠商業公司雇員,純粹靠開源模式長久發展下去的呢?
在我看來,開源社區最開始的大規模分布式開發模式確實對傳統的大教堂集中開發模式產生了巨大的沖擊和創新,但是當大教堂(公司)也學會集市(社區)開發模式后,真正拼資源和黑科技的時候,現今的開源社區面臨著后勁不足的挑戰,而大部分生在開源社區的人卻不愿意看到這一點,還在拼死嘴犟。
Tower的古靈今年在WHLUG上說了一句話,我至今還在回味:
大教堂和集市是否永遠都應該在對立面?
面對越來越多大教堂學習集市開發模式的商業趨勢下,生在集市的這些開源個人英雄們是不是應該在更廣闊的視角去思考開源的未來呢?
說實話,我更害怕將來的大教堂軍團會用集市戰術把開源社區的這些殘存的游擊隊剿殺,更希望開源社區的每個人用更廣闊的視角(并非只是技術)去審視未來,集中資源不要內耗,造一些真正的殺手锏武器來對抗大教堂軍團。
未來怎么走?
生在開源社區,我了解開源社區的優點,也了解它的缺點,正是因為了解的多更感到害怕,下面是我個人對開源社區的建議,我分為感性和理性兩個方面,感性是我看到和擔心的地方,理性是我以及deepin團隊正在做的事情。
感性的建議
感性的建議給開源社區的每個開發者們,這些話說出來可能很難聽,或者很難接受,但從我個人的角度看,卻無比真實,如果你覺得被冒犯了,請你不再生氣的時候再看一遍,希望你能夠理解。
除了技術強大外,我們不能變成只會電腦的傻子
現在這個時代,在我看來,大多數人的知識和認知被同化的太嚴重了,尤其是開發者。為什么這么說?我親愛的開發者們,你們每天都會看各種API文檔、技術原理文章,定期都會主動看計算機專業書籍。但是從個人視野和更廣闊的方面看,你們多久會看一本非計算機的書籍呢?多久會和你完全不同出生或背景的人深入探討交叉科學的問題呢?而現在的互聯網時代就像一個快餐連鎖店一樣,不斷的烹制一代又一代的快餐和理論,讓所有人放棄自己獨立思考的個性,去追求各種互聯網成功理論、賺快錢的方式、一套一套的套路解析,仿佛如果一個人,不了解現代商業和賺錢的套路就是傻子一樣,而開發者這類追尋知識和一定要明白的人群卻最享受各種商業模式和套路解析的文章,殊不知知道了理論如果不認同商業的本質和商業帶來的犧牲外,除了變成吃飯時吹牛逼的談資外,并不會給開發者帶來快錢,反而會讓開發者過得困惑和浮躁無比。因為這個時代塞給開發者太多本不屬于他們這個群體的知識、套路和生活。而我認為開發者是介于科學家和藝術家的交叉藝術,開源開發者更是在獨立思想上更優秀的一群人。
如果大多數的開發者不看更多的書,從思想上對開源有更深刻的理解,僅僅技術是無法給開源社區提供更多元化的發展思路和創新。
給自由軟件爭氣,不要成為披著開源精神的恐怖分子
曾經有幸和UCloud的老季吃飯,他的一句話我還是很受用的,大家都在討論如果我這輩子生在美帝多好,而不要生活在中國,忍受這一切。他說:
中國很多地方還需要提升,還有很多問題需要解決,如果十年后中國還沒有發生改變,我覺得我就白做中國人了
開源開發者都是非常有原則的人, 大家都想達到理想國,但是既然現在不理想,請不要愚蠢的只會釋放憤怒,好好學習本身就是一種力量,如果我們大家都好好學習,好好努力,非技術人員永遠都是敬仰創造更多價值讓世界變得更好的人,特別是開源本身還帶有很多神秘感。如果我們大家放下我們自己的技術炫耀、放下我們自己的技術偏見、教條壓迫,用更開闊的視野去看待和包容更多事情,我相信及時在中國這種物質限制的社會條件下,開源都會有快速發展的時代。
接受屎一般的世界,你才能去清除這個世界的骯臟
這是我最近在想清楚的一點, 大多數玩開源的人都足夠聰明,很多時候阻礙大家行動的不僅僅是逃避,而是想清楚以后不愿去臟自己手去鏟屎的矯情,一整個群體的不好意思催生了更多無謂的自我失控,社區開發者自身的矯情才是開源社區發展的最大敵人。
明明一件事情可以快速做好,非要自己先YY一個牢籠出來,然后自己禁錮自己,覺得如果這樣寫代碼,就會讓某個用戶在極限條件下出問題,而真實場景下,根本就不會有這樣的事情發生,全部是開發者自己幻想出來的場景。
另外一個例子就是,比如Linux的依賴問題,如果要達到系統升級穩定和生態爆炸發展,就需要一種技術做到微軟和蘋果的那種runtime出來,runtime來保障應用API的穩定和環境穩定,操作系統本身只針對硬件和底層技術革新。要從Linux到達這種技術,就需要走很多彎路、workaround甚至是非常臟的方法,因為Linux設計時就是按照依賴方式做的。從技術上當然不好做,但是并不是做不到,蘋果基于BSD就構建了成功的參考例子。但是從開發者本身來說,要不就找借口說很麻煩沒有意義,要不就是從開發者自己是使用者的角度去反正這樣做沒有意義,或者系統升級穩定和隔離不是問題。
開發者是離強迫癥患者最近的人群,開發者考慮問題的時候希望所有的事情都是井井有條,邏輯嚴密的,如果一條道路或者解決方案只要 “不完美” 或者 “不能解決所有問題” 或者 “不能符合自己的使用習慣” , 這條道路就是行不通的。
我就舉幾個簡單的例子:
- wayland這么多年,不去解決自身產品的問題、不解決高性能的應用場景(游戲或專用設備)的生態,天天用wayland就是理論性能最好的技術去吹噓,甚至去咒罵英偉達,wayland技術最終如果無法促進先考的銷售,沒有錢能夠養員工的情況下,誰有原生動力去做?難道redhat出錢去養英偉達的員工和家人嗎?反過來,當年 Id Software 通過商業成功,最終還反而推進了DX在很多技術上的革新
- flatpak和snap發展,軟件包格式對于用戶沒有意義,唯有包格式的runtime+應用商店+系統升級,三個維度同時做好才能達到 flatpak 所設想的理想技術境界,因為用戶只會為了穩定、易用、方便而埋單的,而不僅僅只是折騰軟件打包技術
- systemd 這么好的技術,能夠讓系統服務并行啟動加速電腦啟動速度,這種對用戶來說就是體驗好的技術卻因為和老派開發者自己配置系統服務的習慣不一樣遭受各種不公平的排擠
這幾年我想清楚了,阻礙開發者個人發展甚至影響到開源社區整個開發觀念最大的障礙就是,開發者需要接受一種由不完美到完美漸進發展的開發模式,如果大家做任何開源項目的初期,都是抱著完美的、雞蛋中挑骨頭、站著說話不腰疼的混蛋模式去看待問題,開源社區很難發展壯大,因為辛苦做事情的人總是被沒有包容性的人吐槽得沒有任何前進的動力。
因為世界本來就是不完美、有瑕疵甚至骯臟的,只有極少的開發者在屎一樣的世界做清除和構建工作,而更多的混蛋只會站在一邊嫌臭
理性的建議
理性的建議是從deepin團隊自身的經驗出發,希望可以給別的開源社區團隊有一定的參考作用。
笨方法,只有航母艦隊可以打敗航母艦隊
全世界都在笑deepin造輪子,我笑全世界的開發者都只看到輪子,卻不知道deepin造的是航母艦隊。
微軟、蘋果和安卓作為操作系統最大的航母艦隊,他們有:
- 幾十款高質量的、設計統一的預裝應用,我們就也把系統預裝的應用造一遍
- 它們有 .Net/COM 設計,我們就基于 FlatPak 發展runtime,把應用和系統徹底分開
- 它們有系統原子更新,更新系統就像Docker一樣快速和穩定,深度也要打造一套再也不用依賴軟件包就可以輕松升級的系統
- 蘋果有牛逼的應用商店,深度也要做一套
- 它們都有各自的殺手锏應用,深度也會做一套
- ...
因為我們總有一天會讓那些笑話我們造輪子的人自己笑自己,因為那些嘲笑我們的人,根本就不知道什么叫用戶體驗,什么叫戰略布局,因為那些嘲笑我們的人,只會人云亦云的說那些老掉牙的理論,卻從來不知道怎么做到商業成功。
更快的產品迭代速度和社區協作模式
微軟、蘋果已經發展了這么多年,人比我們多、錢比我們多、產品還比我們功能多,怎么辦?
只有更快的追唄,他們兩年發一個版本,我們就一年發三個版本。
他們還在猶豫要不要改東西的時候,我們就已經收集完建議、馬上討論設計方案都更新出去了。
沒錯,方法就是這么簡單暴力,這么笨,閃電俠的速度來移動大山,越難的事情我們越興奮。
建立更為廣闊的商業利益共同體
既然微軟和蘋果最大圍墻就是生態,世界那么大,一定能養活我們。
我們不怕在微軟的市場上和他們正面競爭(丟什么都不能丟骨氣),我們自己也要在更多微軟沒有涉及到的領域發展自己的利益共同體和生態(這個世界不僅僅是互聯網看到的地方才叫市場)。
保持耐心、初心和遠見
在賺錢的路上操練軍隊,要相信廣闊的市場,一定會在我們自己足夠強大時,讓我們數十年的技術和產品積累在更多領域大放異彩。
星星之火可以燎原
一位阿里的朋友的話,送給看到最后的朋友:
既要仰望星空,又要腳踏實地