塗抹MySQL--第1章 開源運動與開源軟體MySQL - 1.1開源軟體的故事(1)

dawn009發表於2015-06-26
20 世紀80 年代,傳奇人物Richard Stallman 發起GNU 和Free Software(自由軟體)運動時,應該不會想到,他所開創的這種全新的軟體開發、使用、傳播模式,會在之後的20 多年裡,為整個IT 行業的發展注入強大的活力,並且在可預見的未來數十年中,仍將繼續影響甚至顛覆IT 行業的方方面面。

1.1 開源軟體的故事

在PC(Personal Computer,個人電腦)這個概念剛剛出現的20 世紀六七十年代,也就是Bill Gates 憋在自己家裡開發他的MS-DOS,Steve Jobs 則跟他的朋友們在車庫打磨蘋果I 號的年代,尚沒有開源軟體或商業軟體的概念,計算機的操作使用者都還是非常小眾的群體,就更別提軟體的開發者們了。計算機的平臺幾乎都不通用,各種特定硬體上執行的軟體,其使用者多數情況下也正是其開發者,都是為了特定需求在特定平臺上實現的特定功能。有時候呢,運氣好,使用相同硬體的“科研”愛好者們會湊到一起,呃,雖然沒有親身經歷,但我想應該跟時下IT 技術圈子聚會沒有什麼本質差異,大家相互間分享些心得,保不齊還會把自己寫的,雖不成熟但自我感覺良好的程式拿出來吹一吹。

當時的潮流是提供整套服務,買硬體附帶送軟體(貌似現如今的大型機平臺仍是如此,並且通用產品領域也有朝此發展的跡象,比如說Oracle 正大力推廣的Exadata,難道這就是傳說中的返祖)。對於使用者來說,在使用過程中可以對軟體進行修改,並且可能的情況下也會將其修改版釋出共享出來,甚至會相互合作開發功能。

總之,軟體使用時自由度非常之高,很多一流的開發者也熱衷於分享,代表人物中有位當時還名不見經傳的程式設計師—Richard Stallman,在他就職於MIT(MassachusettsInstitute of Technology,麻省理工學院)的人工智慧實驗室時,就曾於20 世紀70 年代發起過一項程式碼共享運動。Stallman 當時提出的觀點就是希望常用的程式碼能夠在程式設計師之間共享,這樣開發人員可以在相當大的範圍內彼此合作。這一理念初期貫徹得很不錯,在此期間Stallman 本人也開發出多種影響深遠的軟體,其中最著名的就是Emacs,這是一款功能強大的文字編輯器軟體,對Linux/UNIX 較熟悉的朋友應該聽說過它,因為通常來說,檔案編輯工具若不是使用Vim,有極大機率就是使用Emacs。

可是,潮流總是在變化,軟體產業也是如此,它要發展、要前進,在過程中對於舊的體系自然會產生兩種影響,即好的影響或壞的影響。

直到20 世紀80 年代初,雖然能夠支援多平臺的商業軟體仍不多見,但也已經開始嶄露頭角。對於商業軟體來說,愛好者之間的這種共享和複製各種軟體的行為,簡直就是在搶人飯碗、斷人財路,這當然是不可被接受的,於是出現了各種各樣的反對聲音。在這裡不能不被提及的是微軟公司的Bill Gates 在一封信中提到,“大多數愛好者之間,透過相互共享和複製來使用各種軟體,並不在乎軟體開發者的利益,但是好的軟體必須得到應有的收入來保證質量”,這一觀點微軟秉持了數十年。多年來,微軟引領了軟體商業化潮流並且頗為成功,給許多軟體開發者和軟體開發企業樹立了強大的標杆效應。加上PC 這種通用平臺的流行,不出售原始碼的商業軟體開始大量湧現。就連MIT 人工智慧實驗室的許多工程師,也因為各種原因轉投到商業軟體公司就職,甚至其中某些人還組建公司,加入到商業軟體大潮中。這股浪潮對於IT 行業的影響如何暫且不論,起碼對於擅長程式設計的工程師們來說,屬於他們的春天來了,自己開發出的東西居然能賣錢(“優秀軟體不僅值錢,而且很值錢”Bill Gates 深有體會地說),程式設計在當時可是很吃得開,就算沒心思自己創業,加盟商業軟體公司,飯碗那是不愁的。

提示:其實如今也一樣,優秀的程式設計師不管何時都不必發愁生計。唯一的區別在於,當初國外管這群人叫nerd,現如今國內管這部分群體叫屌絲(我主動對號入座)。儘管前後隔了幾十年,語種也不相同,但意思都差不多,多少一線奮戰的IT 民工們聞聽這個訊息淚流滿面,激動萬分又歡欣雀躍,這個“榮耀”屬於他們,活生生的事實說明,中國的軟體產業終於也和世界接上軌了。
    
不是每個人都認同這股潮流,每個時代都有“唐吉訶德”(此處為褒義),像商業軟體採取閉源的方式,禁止隨意修改和傳播,在他們眼中就是在禁錮思想、阻礙自由。這裡不得不又提Richard Stallman,儘管如今他在軟體開發領域擁有宗師的地位,在當年他卻很是孤獨,甚至連身邊AI 實驗室的同事,基本都被挖去開發商業軟體了,但Stallman 沒有隨波逐流,而是與現狀積極抗爭。一開始他只是小打小鬧,比如說某家公司說不開放原始碼了,Stallman 就會為它的競爭對手寫程式,幫助他們加入新功能來打擊那家公司,這種操作方式真的……很nerd。

不過很快他自己也意識到這種方式不妥,Richard Stallman 是有堅定理想的,他想要改變這股潮流,他想要編寫一套完全開放的作業系統和執行環境,讓所有人都可以享受到軟體自由,於是有了著名的GNU 宣言。有些文章中提到這一節時,用了更輝煌的詞彙來形容,說他是“出於對自由的崇尚和對軟體商業化的痛恨,期望重現當年軟體界合作互助的團結精神”。這個聽起來是理想主義的調調,但是Stallman 全身心地為之投入,此後他又發起成立了非盈利組織—自由軟體基金會(Free Software Foundation,FSF)。

在開源軟體的歷史長河裡,不能忽略以下這幾個關鍵名詞,透過對它們的解釋和述說,就能折射出開源軟體史上一個個閃光點,讓我們更好地熟悉和理解開源軟體的發展程式。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29119536/viewspace-1712843/,如需轉載,請註明出處,否則將追究法律責任。

相關文章