首頁>技術>

芬蘭程式設計師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歲了,依然在一線奮戰。

傳奇將會繼續......

(完)

5
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 一、程式設計語言及其發展