開源軟件正在逐步改變全球軟件開發的格局,越來越多的企業開始使用開源軟件,並反過來爲開源項目貢獻力量。
一提到開源,大部分人首先想到的是免費。但其實價格並不是開源軟件唯一的優勢,其他優勢還包括:
- 避免重複造輪子:對於企業來說,有現成的工具可用,節省了重新開發的成本;
- 質量更高、更安全:由於源碼開放,其他開發者可以參與共享,安全漏洞的發現和修復將會更加及時;
- 自由、可定製:企業可以擺脫軟件廠商的束縛,並可以根據自己的需求很方便地進行定製。
下面就來看看全球著名的一些互聯網企業使用了哪些開源項目。
1. Facebook
Facebook是全球第一大社交網站,擁有約9億用戶,同時也是世界排名第一的照片分享站點,每天上載八百五十萬張照片。
- 主要開發語言:PHP
- 存儲系統:MySQL、Memcached
2. Twitter
Twitter(推特)是全球著名的社交網絡及微博客服務網站。
- 主要開發語言:Ruby、Scala、Java
- 開發工具:Hadoop、Lucene
- 存儲系統:MySQL、Cassandra
3. Tumblr
Tumblr(湯博樂)成立於2007年,是目前全球最大的輕博客網站,也是輕博客網站的始祖。
- 主要開發語言:Ruby、PHP、Scala
- 存儲系統:MySQL、Memcached、Redis
- 服務器:nginx、Apache
4. Linkedin
LinkedIn(鄰客音)是全球最大的職業社交網站,網站的目的是讓註冊用戶維護他們在商業交往中認識並信任的聯繫人,俗稱“人脈”(Connections)。
- 主要開發語言:Java
- 開發工具:YUI、Hadoop、Spring、Grails
- 存儲系統:MySQL
5. Dropbox
Dropbox是一個提供同步本地文件的網絡存儲在線應用。支持在多臺電腦多種操作中自動同步。並可當作大容量的網絡硬盤使用。Dropbox採用免費試用+高級服務收費的Freemium模式,最初2GB空間免費,此後則需要按月支付存儲費用。
- 主要開發語言:Python
- 存儲系統:MySQL、Memcached
- 服務器:nginx
6. BitBucket
BitBucket 是一家源代碼託管網站,採用Mercurial和Git作爲分佈式版本控制系統,同時提供商業計劃和免費賬戶。
- 主要開發語言:Python
- 開發工具:Django、RabbitMQ
- 存儲系統:redis、PostgreSQL
- 服務器:nginx
7. Reddit
Reddit是個社交新聞站點,口號是“提前於新聞發生,來自互聯網的聲音”。
- 主要開發語言:Python
- 開發工具:Cassandra、RabbitMQ
- 存儲系統:Memcached、PostgreSQL
8. Quora
Quora是一個問答SNS網站,由Facebook前僱員查理•切沃和亞當•安捷羅於2009年6月創辦。
- 主要開發語言:Python
- 開發工具:jQuery
- 存儲系統:MySQL
- 服務器:nginx
9. Zynga
Zynga是一家社交遊戲開發商,目前是Facebook第一大營收來源,2011年佔Facebook全年營收比例高達12%。
- 主要開發語言:PHP
- 存儲系統:MySQL、Memcached
- 服務器:Apache
10. Pinterest
Pinterest是全球最大的圖片社交分享網站,採用的是瀑布流的形式展現圖片內容,無需用戶翻頁,新的圖片不斷自動加載在頁面底端,讓用戶不斷的發現新的圖片。
- 主要開發語言:Python
- 開發工具:Django、Node.js
- 存儲系統:MySQL
- 服務器:nginx
11. Foursquare
Foursquare是一家基於用戶地理位置信息的手機服務網站,並鼓勵手機用戶同他人分享自己當前所在地理位置等信息。
- 主要開發語言:Scala
- 開發工具:Backbone.js、jQuery、Lift
- 存儲系統:mongoDB、hadoop
12. EverNote
EverNote是一款非常著名的筆記軟件,界面與功能十分類似Onenote。它不僅具備強大的筆記捕捉功能,還採用了獨特的分類方式,而且支持filter的自動整理、即時搜索。
- 主要開發語言:Java
- 開發工具:EHCACHE、Stripes、GWT、HIBERNATE
- 存儲系統:MySQL
- 服務器:Apache、Tomcat
13. Codecademy
在線學習編程的網站,爲用戶提供了一種學習編程的新方式。它採用基於網絡的互動編程教程,手把手幫助用戶瞭解編程語言的基本原理。
- 主要開發語言:Ruby
- 開發工具:Rails、jQuery
- 存儲系統:mongoDB
14. Instagram
Instagram是一款移動應用,可以讓你以一種快速、美妙和有趣的方式將隨時抓拍下的圖片分享給其他人彼此。2012年10月25號,Facebook以總值7.15億美元收購Instagram。
- 主要開發語言:Python
- 開發工具:diango、Solr
- 存儲系統:redis、PostgreSQL
下面來看看以上這些開源項目的相關介紹。
1. Backbone.js
Backbone.js是一個基於jQuery和underscore的JavaScript框架,提供了強大的對模型、視圖和交互的抽象,憑藉它,我們可以使用JavaScript編寫複雜交互的Web應用。
2. Cassandra
Cassandra是一個混合型的非關係的數據庫,以Amazon專有的完全分佈式的Dynamo爲基礎,結合了Google BigTable基於列族的數據模型,P2P去中心化的存儲。最初由Facebook開發,後轉變成了開源項目,它是一個網絡社交雲計算方面理想的數據庫。
3. CoffeeScript
CoffeeScript是一個使用純Ruby編寫的新編程語言,創建者Jeremy Ashkenas戲稱它是“JavaScript的不那麼鋪張的小兄弟”。因爲CoffeeScript會將Ruby編譯成JavaScript,而且大部分結構都相似,但不同的是CoffeeScript擁有更嚴格的語法。
4. Django
Django是一個基於Python的Web應用開發框架,採用MVC設計模式。
5. EHCACHE
EhCache是一個純Java的進程內緩存框架,具有快速、精幹等特點,是Hibernate中默認的CacheProvider。
6. Grails
Grails是一套用於快速開發Web應用的開源框架,它基於Groovy編程語言,並構建於Spring、Hibernate和其他標準Java框架之上,從而爲大家帶來一套能實現超高生產力的一站式框架。
7. GWT
Google Web Toolkit的縮寫,允許開發人員使用 Java 編程語言快速構建和維護複雜但性能高的 JavaScript 前端應用程序,從而降低了開發難度,尤其是與 Eclipse Google 插件結合使用時,優勢更明顯。
8. Hadoop
Apache基金會開發的一個分佈式系統基礎架構。用戶可以在不瞭解分佈式底層細節的情況下開發分佈式程序,充分利用集羣的威力高速運算和存儲。
9. Lift
Lift是一個非常優雅的Web框架,基於Scala編程語言,使用Apache 2.0許可發佈。Lift爲開發者提供了最好的方式來創建交互的、高性能的web應用。
10. Lucene
Lucene是一個開放源代碼的全文檢索引擎工具包,提供了完整的查詢引擎和索引引擎,部分文本分析引擎,目的是爲軟件開發人員提供一個簡單易用的工具包,以方便的在目標系統中實現全文檢索的功能,或者是以此爲基礎建立起完整的全文檢索引擎。
11. Memcached
Memcached是一個高性能的分佈式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提供動態、數據庫驅動網站的速度。Memcached基於一個存儲鍵/值對的HashMap。其守護進程(daemon)是用C寫的,但是客戶端可以用任何語言來編寫,並通過Memcached協議與守護進程通信。
12. MongoDB
MongoDB是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫的數據庫。其最大的特點是支持的查詢語言非常強大,其語法有點類似於面向對象的查詢語言,幾乎可以實現類似關係數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。
13. Node.js
Node.js是一套用來編寫高性能網絡服務器的JavaScript工具包,目標是幫助程序員構建高度可伸縮的應用程序,編寫能夠處理數萬條同時連接到一個(只有一個)物理機的連接代碼。實際上Node是對Google V8引擎進行了封裝,並對一些特殊用例進行了優化,提供了替代的API,使得V8在非瀏覽器環境下運行得更好。
14. PostgreSQL
PostgreSQL是以POSTGRES爲基礎的對象關係型數據庫管理系統(ORDBMS),支持大部分SQL標準並且提供了許多其他現代特性:複雜查詢、外鍵、觸發器、視圖、事務完整性、MVCC。因爲許可證的靈活,任何人都可以以任何目的免費使用、修改、和分發PostgreSQL。
15. RabbitMQ
RabbitMQ 是由 LShift 提供的一個 Advanced Message Queuing Protocol(AMQP)的開源實現,由以高性能、健壯以及可伸縮性出名的 Erlang 寫成,因此也是繼承了這些優點。
16. Redis
Redis是一個高性能的key-value數據庫,它的出現,很大程度補償了memcached這類key/value存儲的不足,在部分場合可以對關係數據庫起到很好的補充作用。它提供了Python、Ruby、Erlang、PHP客戶端,使用很方便。
17. Solr
Solr是一個高性能、採用Java開發、基於Lucene的全文搜索服務器,同時對其進行了擴展,提供了比Lucene更爲豐富的查詢語言,同時實現了可配置、可擴展並對查詢性能進行了優化,並且提供了一個完善的功能管理界面,是一款非常優秀的全文搜索引擎。
18. Stripes
Stripes 是一個使用最新的Java 技術來構建Web應用的開發框架。
19. YUI
雅虎用戶界面庫,採用JavaScript語言編寫,允許用戶使用DOM腳本、DHTML和AJAX技術構建富交互網絡應用程序。YUI庫也包含一些核心的CSS資源。
Via Devrates
相關閱讀: