芬蘭程式設計師Monty有三個孩子,分別叫做My, Maria, Max。
這三個孩子非常幸運,因為他們的父親把他們的名字永遠地“刻”在了三個資料庫產品之上:
MySQL
MaxDB
MariaDB
這位父親就是MySQL的主要作者Michael Widenius,大家經常叫他Monty。
今天我們來聊一聊為什麼是Monty建立了MySQL,MySQL又是怎麼發展成為世界上最流行的開源資料庫的。
01 程式設計達人Monty1962年出生於芬蘭的赫爾辛基, 1978年,16歲的他發現了一件高科技產品:ABC80計算機。
這個計算機的CPU只有4M Hz, 記憶體只有8K ,但是對於只玩過可程式設計計算器的Monty來說, 這才是真正的計算機。
於是Monty 找了一個“勤工儉學”的活兒:在赫爾辛基的街道上鋪瀝青, 雖然賺來了一筆錢,但還是不夠,Monty老爸又出了一半的錢,這才成功地把ABC80抱回了家。
從此,Monty 整天和這臺計算機“廝混”在一起。
Monty是個不折不扣的程式設計天才,對別人來說非常難的東西,他都能輕鬆搞定,程式設計對於他來說,就像讀一本有趣的小說,或者玩一個遊戲,不知不覺幾個小時就過去了。
由於ABC80上沒有多少軟體,Monty小試牛刀, 用匯編語言把把遊戲機上的一些熱門遊戲在這個機器上實現了!
(太空入侵者)
(Pacman)
可見遊戲有著多麼強大的驅動力!
兩年以後,Monty又把ABC80升級成了 ABC800,此時的Monty已經不滿足當一個遊戲Boy了,開始在上面開發真正的軟體了,比如:
字處理器
硬碟控制器
磁帶備份
......
在一次演講中,Monty說到:那真是美好的舊時光, 你想使用計算機的話,得從底層學習計算機硬體和軟體的方方面面,對於現代的程式設計師來說,沒有這樣的機會了。
02 “桃園三結義”由於ABC 電腦是瑞典制造的,很多配件只有瑞典才有,Monty經常乘船去瑞典買配件,有一次去買記憶體的時候,Monty結識了Allan Larsson。
Allan開著一個電腦商店,有一家叫做TcX的諮詢公司,Monty逐漸和他變得熟絡起來。
得知Monty是個程式設計天才以後,Allan給了他一個數據庫程式,請他基於這個資料庫為客戶開發一個軟體出來。
Monty把資料庫程式拿來一看就發現,這程式寫得太爛,難以理解,難以維護, 既然如此,還不如重寫一個。
大牛就是這麼任性。
Monty寫的資料庫程式叫做Unireg,最初用Basic在ABC800 編寫,到了1983年,Monty又用C語言重寫了一遍, 這樣就可以執行在一個有著2M記憶體的強大機器上。
這就是Unireg的介面,純文字,有點像印表機的格式。 雖然有點醜,但可以輕鬆地建立,更新資料庫的資料,並且產生報表。
Monty和Allan都不會想到,這個看起來很簡陋的資料庫將來會一飛沖天,變成軟體世界的中流砥柱:MySQL!
有了資料庫,Allan拉來了更多的活兒,Monty作為TcX唯一的開發人員,不僅開發客戶的應用程式,還花費了大量的時間來完善Unireg。
1985年, Monty和Allan乾脆合夥開了一個叫TCX DataKonsult AB ,專注資料倉庫領域, Monty把Unireg移植到了更強大的Sun工作站上,以便能處理更大規模的資料。
有多大規模呢?大概是每月百萬行的資料。
可見這個時候的Unireg資料庫,已經相當不錯, 能處理大資料了!
David是一個自由軟體的鐵桿粉絲,他將來會對MySQL 的開源模型,盈利模式產生重大的影響。
Monty , David, Allan這三個人如同“桃園三結義”的兄弟,從此以後,他們將聯手開啟一段新歷史。
03 MySQL問世不知道Monty和Allan 用Unireg賺了多少錢,TcX這個小小的公司應該活得比較滋潤。
如果就這麼發展下去,估計MySQL就不會誕生了。
90年代中後期, 蓬勃發展的網際網路將給Monty他們帶來一個前所未有的挑戰,當然也帶來了前所未有的機遇。
1994年,客戶希望TcX開始基於Unireg開發Web的應用,不幸的是,Unireg這個桌面軟體的設計缺點暴露出來了:不支援SQL,沒法和Web頁面有效整合。
要麼固守桌面軟體,慢慢落後於時代,要麼主動擁抱Web,Monty和TcX走到了一個十字路口。
這時候Monty 發現了開源的miniSQL (簡稱mSQL), Monty研究了一番後發現,mSQL最要命的問題是不支援索引,效能很差。
Monty聯絡mSQL的作者,問他能不能修改mSQL來使用Unireg的索引,mSQL的作者忙著開發mSQL 2.0,已經設計好了索引方案,就拒絕了。
自己動手,豐衣足食,Monty決心實現自己的資料庫。
一年以後, 1995年1月,支援SQL介面,索引,有著C/S架構的MySQL 1.0 問世了。
狂熱的開源軟體愛好者David立刻找到Monty和Allan,給他倆施壓,希望MySQL可以開源。
可是開源以後,大家都能用了,怎麼賺錢呢?
David想了一個絕妙的主意:雙重許可
客戶可以以開源的方式使用MySQL,不需要付費。
但是,如果客戶在自己的產品中使用了MySQL,還想透過閉源的方式來銷售自己的產品,那對不起,需要付費購買商業許可。
這樣,既能擴大軟體的使用使用者,收入還不至於顆粒無收。
04 15分鐘 和 3萬封郵件MySQL是幸運的,它踏上了網際網路的風口:Web網站如雨後春筍般出現,每個網站都需要一個免費的資料庫,MySQL正好填補了這個空白。
當時建站的主要語言是PHP,Perl , 這些程式設計師也對MySQL做了大量宣傳:簡單、易用、高效能。
Monty和David設定了一個目標:讓使用者在下載完MySQL以後,15分鐘內就能執行起來, 在現在RPM, DEB等安裝包大行其道的時代,15分鐘聽起來非常漫長, 但是在1996年,通常需要從原始碼安裝,一點點小問題,就會花費數小時。
為了這15分鐘,Monty他們付出了辛苦的努力,需要模擬使用者在8~10個作業系統上編譯,安裝MySQL的不同版本。
Monty 對使用者非常負責, 他在MySQL問世前5年的時間裡,回覆了30000多封郵件,來解決大家的疑問。
David 也沒有閒著,馬不停蹄地參加各種會議,到處宣傳MySQL, 他在飛機上度過的時間超越了在家的時間。
免費的MySQL逐漸成為建站的第一選擇。加上Apache和Linux, 形成了著名的LAMP。
05 5000萬美元到了1999年,MySQL已經被一些人注意到了, 並且開出了5000萬美元的高價想把MySQL買下。
如果是目光短淺的我,十有八九就賣了,多麼誘人的報價,賣了以後就財務自由了!
但是Monty他們有著更大的願景:做點兒事情,改變世界。
他們不想就此失去對公司的控制,於是他們拒絕了這次收購。
隨著時間推移,MySQL越長越大, 公司從3個人發展到了15個人, 客戶越來越多,需要的功能也水漲船高。MySQL公司需要更多人手去做技術支援、編寫文件、銷售。
市場上也出現了像PostgresSQL這樣的競爭對手, 如果再不引入投資,靠之前的收入緩慢增長,MySQL遲早會被飛速發展的時代幹掉。
2001 年 Mårten Mickos 被聘為MySQL CEO, 專門和投資者談,最後從風險投資那裡獲得了400萬歐元的A輪融資, 僅僅出讓了10%的股權, 控制權依然在Monty他們手中。
這一年,MySQL又獲得了1950萬美元的B輪融資。
06 和Oracle的暗戰Oracle是資料庫領域的絕對老大, 統治著企業級資料庫市場, 但是在Web領域卻幹不過免費、開源的MySQL。
Google, Facebook, Snapchat, Quora, Dropbox ,Youtube , Twitter 等IT巨頭都不使用Oracle,他們不約而同地選擇了MySQL, 因為不用給Oracle交鉅額的License費用,還可以修改原始碼適合自己的場景。
更要命的是, MySQL正在從Web領域殺下企業級市場,很多重量級客戶從Oracle 轉向免費的MySQL,這給Oracle帶來了巨大的威脅。
2006年, Oracle 試圖收購MySQL,但是沒有成功。
Larry Ellison狂妄地說:
它(MySQL)只是一家小小的公司,年收入也就三四千萬吧, 而我們Oracle的收入是150億!
我們只收購那些有商業價值的公司,MySQL並不在我們收購的列表中。
話雖這麼說, Oracle 卻在不斷地挖MySQL的牆角。
2005年, Oracle收購了一個叫做innobase的芬蘭公司,正是這家公司給MySQL提供了支援事務處理的InnoDB 引擎。
過了一年,Oracle又收購了Sleepycat,這家公司給MySQL提供了Berkeley DB事務引擎。
07 併購2008年, 年收入達到7500萬美元的MySQL面臨一個抉擇:究竟是上市呢?還是賣個好價錢?
1. Sun是一家技術導向的公司
2. Sun是開源運動的推動者,沒有把MySQL變成閉源軟體的風險。
2008年1月,MySQL以10億美元賣給了Sun,Monty也憑藉這筆收入成為這一年芬蘭的10大富豪之一。
可是人算不如天算, 讓人苦笑不得的是,僅僅一年以後,Sun居然又被Oracle給收購了!
MySQL最終還是沒有逃脫Oracle的手掌心。
MySQL的前景一下子黯淡下來,Monty說道:
“很多核心的MySQL開發者,包括我自己,都不相信Oracle能善待MySQL,我們要確保MySQL的程式碼完全開源,永遠開源。”
2009年,作為對Oracle收購Sun的迴應, Monty立刻建立了一個MySQL的分支:MariaDB, 它和MySQL相容,並且完全開源,一大批核心開發人員追隨Monty,離開MySQL,加入MariaDB。
2009年Monty已經47歲了, 和MySQL說了再見,他踏上了新的征程。
2020年,Monty已經58歲了,依然在一線奮戰。
傳奇將會繼續......
(完)