开源软件正在逐步改变全球软件开发的格局,越来越多的企业开始使用开源软件,并反过来为开源项目贡献力量。
一提到开源,大部分人首先想到的是免费。但其实价格并不是开源软件唯一的优势,其他优势还包括:
- 避免重复造轮子:对于企业来说,有现成的工具可用,节省了重新开发的成本;
- 质量更高、更安全:由于源码开放,其他开发者可以参与共享,安全漏洞的发现和修复将会更加及时;
- 自由、可定制:企业可以摆脱软件厂商的束缚,并可以根据自己的需求很方便地进行定制。
下面就来看看全球著名的一些互联网企业使用了哪些开源项目。
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
#p#
下面来看看以上这些开源项目的相关介绍。
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资源。