MySQL 創始人:寫代碼比打遊戲爽,程式設計師應多泡開源社區

2020-12-25 開源中國

根據StackOverflow的最新調查,MySQL仍然是全世界最流行的資料庫,受訪的開發者中有44.3%的人在使用,超過了第二位的SQL Server 10多個百分點。可是你知道MySQL是怎麼誕生的嗎?openocean 的一篇有關MySQL開發者Michael 「Monty」 Widenius的傳記為我們揭秘。


大學計算機專業的數量總是會隨著技術公司的興衰而起伏,而現在,計算機科學正處在全盛時期。這意味著,不管怎樣,計算機科學專業的畢業生絕大部分可能都會去敲2年的代碼,再轉到產品管理,然後過渡到企業、創業或者商學院,接著再轉為既有公司的中層管理,32歲的時候結婚,有了2個孩子,一個兒子,一個女兒,一條狗,還有一棟2層的漂亮房子。對於大多數人來說,成為程式設計師就是一份朝九晚五的工作,一份有保障的6位數薪水來償還高昂的學費,一種達到目的的手段,沒人應該為此受到責備。但對於千千萬萬無論好壞的程式設計師來說,只有一個Monty Widenius。

Monty是一位編程天才。19歲的時候,他從赫爾辛基理工大學輟學開始全職工作,因為大學已經沒有什麼東西可以教他了。在獨自一人寫完除了一個庫以外的全部代碼之後,33歲時,他發布了MySQL,後來後者成為了全世界最流行的開源資料庫。55歲時,他藐視著對老年人的歧視,仍然是自己公司最好的程式設計師。

Monty1962年出生於赫爾辛基,1978年他用暑假鋪瀝青掙來的錢買下自己的第一臺個人計算機的。Monty迅速意識到自己相當擅長寫代碼——對於別人來說很複雜的事情他卻覺得很簡單,而且他對工作非常投入。Monty用一種在講瑞典語的芬蘭人中常見的濃厚口音說:「基本上這就像是在閱讀一本真的非常非常好的書。或者像在玩視頻遊戲。你知道開始玩遊戲然後嘣一聲3小時的時間就過去了的那種感覺嗎?寫代碼對我來說就是這種感覺。」

當別人跑去聚會的時候,Monty卻呆在家裡編程。他把計算機從裡到外都摸透了。他把BASIC的能力推到了極限。Monty說:「學校並不理解編程不是像語言或者歷史這樣的東西,它不是靠學就能學來的。所以學校是不夠的。拔尖的黑客是萬裡挑一。他們奉獻了所有能用的時間,10小時,16小時,每一天,年復一年周而復始。大多數人都不願意做這樣的事情。大多數人寧願好好生活。」在Monty眼裡,好的代碼是寫過一次就永遠不需要再碰的那種。從性能角度來看它已經是最優化了,你可以不斷增強,但永遠都不需要重寫。

到1980年,17歲的Monty痴迷編程已經無法自拔,他需要把自己計算機的內存從8KB擴到16KB。由於芬蘭沒有商店賣他想要的東西,於是他弄了一條船去到瑞典Allan Larsson的計算機商店。通過Allan,Monty結識了David Axmark,三人溝通交流了多年,就各自項目互相幫忙,偶爾也會一起協作。1995年,他們一起成立了MySQL AB。Monty負責編程,David和Allan負責幹完其他的事情。自1981年以來,Monty就一直以芬蘭公司Tapio Laakso Oy程式設計師的身份在寫MySQL前身的代碼,他和Allan一起創辦的數據倉庫公司也要用到那個東西。然而,知道1995年,在Allan和David的遊說之後Monty才決定在他寫的東西之上增加一個SQL層。1996年10月,MySQL終於發布了,它得到了廣泛的歡迎。MySQL快速、可靠並且易學,這主要是因為在多年的開發中Monty總是不斷把正是客戶的反饋整合進來。

MySQL的初衷是存儲和管理大數據。如果有人想要跟蹤不同的數據點,他們互使用資料庫,也就是有點像微軟Excel那樣的東西。然而,隨著數據變得越來越大,查找Excel這樣的資料庫就會變得慢多了,也不再可靠。MySQL有能力存儲大量數據,並且返回搜索結果極其迅速。「My」來自Monty女兒的名字,而「SQL」就是結構化查詢語言(Structured Query Language)的意思,是一種跟資料庫溝通的語言。

對MySQL開源的決定出自1985年的另一次芬蘭到瑞典的乘船旅行,這一次是在一場開源大會上。Monty說:「討論沒花多少分鐘。我們都希望回饋給開源社區一點東西。哪怕有人想拷貝或者偷盜我們的代碼,我們認為自己能掙的錢也不會比現在少。」開源項目使得開發者社區幫助把軟體做得更好,但從商業角度來看不好的是貨幣化就要困難多了。為了避免這一點,Monty補充了一個條款,那就是如果任何企業用MySQL來賺錢的話,就需要付費授權。對此MySQL的代碼裡面並沒有進行任何限制,但就靠這一榮譽制度MySQL實現了擴張並開始賺錢。Monty說:「我認為開源是開發軟體的更好方式。但你仍然需要賺夠錢來招聘員工,成立公司去跟閉源社區競爭。MySQL是第一款做到這一點的產品。」

Monty在MySQL AB的職位是CTO,對於大多數成熟的公司來說,CTO其實已經很少再編程的了。然而,Monty從未停下來過,他的絕大部分時間都是在寫代碼。這種(很少管理的)做法會導致很多晚期階段初創企業內爆,但哪怕公司人數已經達到550人,Monty在MySQL AB建立的獨特文化也使得他可以避免天天開會的煩擾(事實上,Monty甚至都不接受議事日程邀請)。Monty說:「我總是招會自動駕駛的人進來。所以我不需要告訴他們太多東西。而開源意味著你有開源社區,大家會給你提供代碼,你可以看看那些代碼的質量,看看他們是怎麼跟社區互動的,跟你是怎麼溝通的,他們會問什麼問題,在這些情況下很容易就能看出一個人是好是壞。在一次面試裡面是很難了解清楚編碼者有多好的。」

MySQL的成功是CTO Monty與CEO Mårten Mickos通力協作的結果。兩人能力都很強且對公司非常重要,但方式不一樣。Monty是技術專家,專注於員工生產出儘量完美的代碼。Mårten是公司建設者,專注於交付東西並幫助團隊發展。正是兩人的聯合願景製造出了MySQL。但在一家沒有免費洗衣、免費午餐、站立辦公桌的公司裡,是Monty的個人魅力吸引住了變成人才。Monty不是好交際的籌資人,討好別人的人,博弈論大師,或者職業溝通者。他會寫代碼,而且寫得很好。在Monty看來贏得開發者尊重是很簡單的事情:「你幹的是跟他們一樣的事,而且幹得更好。」

Monty給程式設計師的建議是,參與到開源社區去,花些時間到個人項目裡面(「這些年來我開發了成百上千個程序:MySQL是其中被用得最多的一個,但其他的都只有我自己用。」)。他警告說,改變環境和代碼庫將意味著哪怕是最好的程式設計師也要去了解一堆的東西。在Sun被Oracle收購之後,Monty成立了MariaDB,這是MySQL的一個社區版的分支,開發的團隊成員很多都是MySQL團隊裡面的,使用的也是一樣的官方語言:「蹩腳的英語」。MySQL的許多熱心的開源信徒跟著Monty去到了MariaDB。MariaDB更加面向開發者,允許由外人打補丁這樣的事情發生,在很多Linux發行版中它都是默認的資料庫。

Monty對開源和開發者的承諾是堅定的——OpenOcean原先是Monty用自己在MySQL的所得成立的,使命是投身於開發者驅動、有技術深度的產品。他仍然在赫爾辛基自己家中主持開發者午餐,很快OpenOcean就將推出一個Slack頻道讓開發者可以直接向Monty提問。在幾十年的時間裡,Monty對塑造開源社區無私的形象做出的貢獻無可爭議的。但這裡面大部分的功勞都應該歸到成千上萬無名的程式設計師和黑客身上,是他們投入的時間和能力造就了開源的繁榮,也是這批人才能確保開源革命的繼續。

稿源/編譯:36Kr 

原文連結:https://blog.openocean.vc/founder-stories-a-hackers-hacker-6d5054c90564

小編有話說:

國內最好的開源社區是哪?當然是開源中國啦!想玩最地道的代碼,碼雲絕對是不二之選。一起耍起來吧!!

相關焦點

  • 為啥國內程式設計師寫的代碼也用英文注釋?
    國內的一些程式設計師寫代碼用英文進行注釋,我覺得是他們編程之路上的一大重要進步。中國編程技術現在需要與國際接軌,而且國內很多程式設計師也喜歡更多了解程式語言的開原始碼,使用英文注釋會讓國內程式設計師在全球技術社區中形成廣泛共識和合作,從而使國內程式設計師能夠實現快速成長。
  • 有人準備直播程式設計師寫代碼,相互出題PK,網友:想得太簡單了!
    據這名程式設計師網友所說,他準備打算開發個視頻直播的系統,專門讓程式設計師撕逼pk,直播寫代碼。兩個程式設計師互相給對方出題,同時開始寫。然後大家可以刷禮物刷彈幕什麼的,並且這名程式設計師網友表示:「作為一名真材實料的程式設計師,好像和一些大神們過招!」,他的想法倒是蠻好的,有沒有可執行性,以及會有什麼樣的效果呢?或者有什麼因素是他沒有考慮周全的呢?
  • 1024程式設計師節,不寫代碼還能寫啥
    在中國,為什麼把10月24日定義為「程式設計師節」?要是你對此疑惑不解,讓我們先來看一個笑話:女朋友:為什麼你們提到工資時會說K?1K和1000塊不是一回事嗎?程式設計師:1K多24塊。同樣,不要羨慕程式設計師拿錢多,白天磨需求,半夜寫代碼,收入按工時折算,並不是很多。知乎上有組姐妹問題,被自己的代碼美哭是一種什麼樣的體驗?被自己的代碼醜哭又是一種什麼樣的體驗?能讓自己感動到哭的工作,一定是費盡心力的,說嘔心瀝血真不為過。既要勤奮也靠天分。
  • 程式設計師的復仇:11 行代碼讓 Node 社區雞飛狗跳
    兩天前,一名NPM(Nodejs Package Manager)社區的貢獻者Azer Koçulu出於對NPM管理層的怨憤(詳情),不聲不響刪除了自己在NPM上面的全部代碼,其中就包含只有11行代碼的「Left-pad」
  • 程式設計師:停電去網吧寫代碼,被當成黑客報警了,網友:想偷我戒指
    相信很多人對程式設計師這個行業有著很多看法,畢竟作為高薪行業,一直以來也是備受關注,但因為強大的工作壓力,也讓很多人望而卻步。甚至在很多人眼裡,這就是年薪百萬,一夜成名的職業了,也讓程式設計師這個行業增添了幾分神秘感,這也讓很多人好奇,究竟是做什麼能夠讓自己收入這麼多呢,他們為何有如此強大的吸金能力呢?有位網友就在論壇上發表自己作為一位程式設計師曾遇到的尷尬事情。
  • 對程式設計師來說最難的是寫代碼嗎?
    相信看到這個標題的同學們都有自己的想法,可能剛剛進入這個行業的同學們會非常認同寫代碼就是程式設計師的主要工作,然而當你工作一定時間之後,寫代碼將變得不是那麼「重要」了,在悟空問答中眾位大咖為這個問題提供了多種多樣的答案:    答案一:寫代碼是程式設計師最主要工作,但是卻不是最難的工作,最難的是踢皮球和吵架!
  • 學完IT只能寫代碼當程式設計師嗎?(下)
    學完IT只能寫代碼當程式設計師嗎?當然不是啦!可能學IT的學生關注的問題大多千篇一律:接下來我該學什麼語言呢?如何準備技術面試?你們公司招人嗎?諸如此類。但有一個問題直擊靈魂深處:如果我不想再當程式設計師了,該怎麼辦?
  • 專訪邱俊濤:高級JavaScript程式設計師代碼應結構清晰、模塊化良好
    高級JavaScript程式設計師,應能編寫出有規模、模塊化良好和結構清晰的代碼CSDN:閉包(Closure)可以說是JavaScript的一個難點,能夠熟練使用閉包也是邁向高級JavaScript程式設計師的必經之路,你能不能和大家分享下閉包學習和平時應用閉包的一些經驗和心得?
  • 停電後程式設計師網吧寫代碼,被人當成黑客報警,網友:想偷我裝備
    程式設計師作為高新技術的代表性職業,收入也是極為豐富,甚至在許多人眼裡就是年薪百萬的代名詞,讓不少人進入這個行業,成為一名「程序猿」。正好有一位網友分享了他作為程式設計師的一件趣事,讓我們來看看。這位程式設計師分享說因為實驗室突然停電,而他和同事們又不想回家寫代碼,想要在一起寫,這樣方便交流,於是來到一家網吧準備熬夜寫程序。
  • 《近匠》程式設計師客棧,程式設計師背後的經紀人
    本期《近匠》專訪程式設計師客棧的創始人陳柯好,程式設計師客棧匯聚了眾多籤約程式設計師,定位中小型企業用戶,以遠程工作模式提供標準化項目外包服務。那麼我們就一起來看一下陳柯好的創業歷程以及對於國內外包市場的觀點。
  • 專訪代碼乾坤聯合創始人董鈺鵬:打造遊戲界抖音
    文 | 競核放著好好的商業遊戲不做,他們扎進了「遊戲創作平臺」。2017年,一家名為代碼乾坤的創業公司成立。其中CEO邢山虎、聯合創始人姚光石、趙耀、董鈺鵬均出自《我叫MT》研發公司樂動卓越。憑藉一個UGC平臺+引擎——《重啟世界》,代碼乾坤於2019年5月、2020年5月,A、B兩輪分別融資1億和3億人民幣。投資人為何看好《重啟世界》?作為前樂動卓越產品副總裁,現任代碼乾坤聯合創始人的董鈺鵬給出了理由:其一,它是用UGC思想建立遊戲的創作平臺,其二,它採用了國內第一個實現物理交互引擎技術。
  • 寫代碼不嚴謹,我就不配當程式設計師?
    對於一些基礎差的朋友在入行不久肯定會遇到一些知識點難以攻克,特別是零基礎轉行的朋友,可能只會培訓班教的編程基礎知識或自己買的編程類書籍或網上找的視頻教程,可以看得懂,但不會寫。這類朋友我建議你看完視頻或書之後一定要多花時間去練習,光看不練假把式。
  • 寫膩了代碼、難再「996」 中年程式設計師拿什麼和年輕人拼?
    2008年畢業至今,何熙寫了12年代碼,「簡直寫膩了」。寫膩了代碼的還有老曾,他自嘲是「老古董級別程式設計師」,Python、C++這些都寫過。2012年,他轉型了,「和機器打交道久了,更想和人打交道。」過著忙碌生活的還有周易。不過此忙非彼忙,已經從程式設計師群體「脫坑」的周易,忙著打理烤魚、火鍋生意。周易曾在華為當了兩年程式設計師,他對程式設計師生活的評價是——重複的高強度腦力勞動。
  • 嫁給程式設計師有什麼好處?程式設計師新郎接親,被要求現場寫代碼告白
    很多人一談到程式設計師,是不是都覺得他們搞開發的,一定是非常聰明,鐵飯碗,工資很高,是不是都覺得程式設計師棒棒的,好崇拜,好羨慕,如果談到結婚,你會選擇嫁給程式設計師嗎?近日程式設計師新郎接親,被要求現場寫代碼告白,你知道嫁給程式設計師有什麼好處嗎?
  • 以後程式設計師可能再也不用寫代碼了!你信嗎?
    一位來自阿里巴巴程式設計師的吐槽,說出了無數程式設計師的心聲。軟體進步靠研發,研發進展靠程式設計師,程式設計師寫代碼主要靠加班。據說,十個程式設計師裡有十一個都曾經歷過996,乃至007的工作節奏。核心兩個詞:寫代碼、改bug、如何實現?——996而開發周期過長,連996都無法解決,也是目前不少小企業面臨的困境。
  • 程式設計師:為啥我寫的代碼幾個月後自己也看不懂?
    寫在前面:中國程式設計師就別寫英文注釋了!不要寫「太牛逼」的代碼!"傻瓜式代碼" != "低性能代碼」=========華麗的分界線==========程式設計師同志們大多都會有這樣的經歷,就是要看別人的代碼。
  • 5程式設計師因停電去網吧寫代碼,被認為是黑客報警了,網友:想偷我戒指?
    不過很多人覺得頂級的程式設計師年薪百萬都不是問題,也讓大家很好奇程式設計師到底幹什麼才能掙這麼多錢呢?這不,有位程式設計師網友就在網上分享了自己前段時間遇到的一件尷尬事。 原來這位程式設計師說,他們實驗室正好停電了,於是五個人就只能去網吧通宵寫程序了,沒想到正認真工作的時候,竟然被當成黑客給報警了。
  • 學了Scratch還不會寫代碼?極客晨星想實現圖形化編程到碼代碼的銜接
    開發編程工具,實現「寫代碼」與「拽模塊」的轉換在少兒編程領域,因為前期投入大、周期長,多數公司不會選擇自己開發編程工具,更多的是課程開發,像我們曾經報導過的編玩邊學、傲夢等都是這種模式。極客晨星創始人展爽並不認可這種模式。原因是在考察了一些少兒編程公司後,她發現目前少兒編程領域存在的兩個問題。第一,很多機構用教成人的方式來教學生。
  • IT行業裡,好的程式設計師一天應該寫多少行代碼?
    今天大概寫了4個函數,昨天寫了5個函數,每個函數大概20行左右吧,都快累死了~~~也不知道和優秀的程式設計師差多少。不知道大家每天都寫多少~~~~1樓曾經有個專家說,每天精華代碼是1行。誇張了。邏輯複雜的代碼,80行,你已經算高效的了。
  • 程式設計師求助:雷軍94年寫的代碼什麼水平?眾人:我認慫,跪著讀!
    而他們剛剛起步的時候,可能就是一個普通的程式設計師,當初也是過著沒日沒夜碼代碼的生活。小米科技的創始人雷軍,想必大多數人應該都不陌生了,當年他也是個普通的技術員而已,那麼大家想不想知道當年他的代碼水平如何呢?那麼接下來就讓我們一起來看一下吧!那麼網友們對於雷軍的代碼水平又有什麼看法呢?