TOP100summit 2017 七牛云许式伟:不用JAVA和C语言,我为什么坚持Go语言
本文编辑:Cynthia
2009年,谷歌发布第二款开源编程语言,Go语言。8年过去了,很多初创公司早期使用Go进行开发,包括云计算巨头Docker。而Go语言在中国的普及程度还比不上JAVA和C语言,但是有一家公司,坚持在使用Go,并且刚刚获得10亿元的融资,这家公司就是七牛云。
早在2009年,Go语言刚刚发布的时候,在中国的一名程序员许式伟惊奇的发现,Go语言与他带领的团队所做的CERL项目在服务器编程模型这一点上,CERL2.0与Go语言居然完全一样,包括所有细节的决策上也都相同。
有人建议许式伟将CERL开源,但是许式伟在使用Go一周后决定,不让CERL面世,因为Go已经完成了CERL的目标,并且远超预期。后来,许式伟成为Go语言在中国的布道师,并且编著了《Go 语言编程》和《Go 语言程序设计》两本书。
许式伟做CERL项目的初衷,是当时在盛大创新院重启分布式存储项目,选择了用C++语言来开发,他希望再造一个既有Erlang编程思想的优势,又可以客服Erlang语言劣势的新轮子。CERL项目经历了2个大版本,而Go语言发布后就结束了它的历史使命。
许式伟2007年建立金山实验室,选择了JAVA作为主体开发语言,2009年加入盛大创新院,选择C++作为开发语言,而2011年许式伟创办七牛云的时候,坚决的选择了Go语言,并在邮件中说,创业过程中的很多选择都可能会被证明是错的,但是选择Go将会成为最正确的选择。
2017年8月,七牛云获得10亿元的融资,成为国内领先的云存储服务平台,时至今日,许式伟依然在坚持着Go。
七牛云的第一个业务是云存储,许式伟完全用Go来开发存储系统,这是全球第一个用Go写的云存储和云服务。
2014年七牛云开展大数据相关业务,同样面临技术选型的问题,JAVA和JVM平台的语言都很有优势,但是许式伟认为Go未来将会占领整个基础设施领域,大数据是其中具有关键意义的内容,因此,最终还是面向未来做选型,使用了Go。
相比其他语言,Go有部署简单、并发性好、执行性能好、语言设计良好等优势,在知乎上一位答主这样介绍Go:
从学术角度讲,Go语言其实非常平庸,不支持许多高级的语言特征。但从工程角度来说,Go语言规范并且足够简单灵活,只要有其他语言基础的程序员都可以很快的上手。
Go有非常完善的工具链,比如gofmt自动排版Go代码,杜绝了不同人写代码排版风格不一致的问题,提高团队协作性。
Go编译生成的是一个静态可执行文件,除了glibc没有其他外部依赖,让部署变得非常方便。
单个Go应用可以有效利用多个CPU核,并行执行的性能好,执行性方便虽然不如C和JAVA,但是比原生Python应用要高级,适合写瓶颈业务。
几年的发展以后,Go已经不再是一门小众语言,通过 Google Trends 搜索 golang 发现全世界 Go 最火的地区在中国。
许式伟是Go在中国的布道师,用Go语言打造的七牛云平台服务着秒拍、小咖秀等互联网公司,那么,你会用Go吗?
七牛云CEO将担任11月9日在北京国家会议中心开幕的第六届TOP100全球软件案例研究峰会架构专场的联席主席,现场对来自全球各地的优秀软件研发开发者进行点评。
目前架构专场已入围的案例包括Uber、百度、小米、途牛、淘宝、360、中兴等大厂,从架构设计、微服务、UI架构思考、架构重构等方面介绍各自团队的开发实践。
许式伟将从对架构的理解、业务的理解以及开发实践等角度给出开发者建议,如果你想要了解Go,如果你想向Go的布道师取经,可以到现场进行交流。
更多TOP100案例信息及日程请前往[官网]查阅。4天时间集中分享2017年最值得学习的100个研发案例实践。本平台共送出10张开幕式单天免费体验票,数量有限,先到先得。
TOP100summit 2017 七牛云许式伟:不用JAVA和C语言,我为什么坚持Go语言的更多相关文章
- 许式伟看 Facebook 发币(上): 区块链, 比特币与 Libra 币
你好,我是七牛云许式伟. Facebook(脸书)于6月18日发布了其加密数字货币项目白皮书.该数字货币被命名为 Libra(天秤座),象征着平衡与公正.此前,BBC 报道说这个数字货币叫 Globa ...
- 七牛CEO许式伟:移动游戏资源存贮的大趋势
(国内知名Android开发论坛eoe开发者社区推荐:http://www.eoeandroid.com/) 9月14日,eoe移动开发者大会正式在北京国家会议中心召开,七牛云储存CEO许式伟先生做了 ...
- ueditor上传图片到七牛云存储(form api,java)
转:http://my.oschina.net/duoduo3369/blog/174655 ueditor上传图片到七牛云存储 ueditor结合七牛传图片 七牛的试炼 开发前的准备与注意事项说明 ...
- 七牛云java(服务端)通用工具类
前言 需要安装lombok插件. 功能列表 上传本地文件 上传Base64图片 获取文件访问地址 上传MultipartFile 代码 pom.xml <dependency> <g ...
- 七牛云图片存储---Java
一.新建存储空间 到七牛云官网注册一个账号 新建一个存储空间 到个人中心获取秘钥 二.新建Java项目 1.pom.xml配置 <dependency> <groupId>co ...
- Java 七牛云存储与下载
七牛云的文件上传和下载(私有空间) 1.本篇博客参考网址 https://blog.csdn.net/peaceful000/article/details/53171578 https://blog ...
- java(SSM)上传文件到七牛云(对象存储)
项目中会用到大量的图片和小视频,为了分担服务器压力,将文件都放在七牛云.这里的思路很简单, 就是移动端.pc端把文件上传到服务器,服务器做一个临时缓存,保存必要的信息到数据库后, 将文件上传到七牛云, ...
- 根据短链生成二维码并上传七牛云(Java)
通过短链生成二维码并上传七牛云(Java) 前言 网上这种帖子其实也是很多,大部分搜出来的是CSDN的,然后点进去一看都几乎一样:所以这次给个自己实践的例子记录. 这次也是通过搜索得到的一部分能实现这 ...
- 许式伟:我与Go语言的这十年[转]
2017-12-18 许式伟 Go中国 2007 年 9 月 20 日,关于设计一门全新语言的讨论正式开始,这门全新的语言,就是后来的 Go.时至今日,Go 语言已经发布到 1.9 版本,走过了整整十 ...
随机推荐
- Gulp--Less
摘要: 前面分享了一些less的是用方法,包括在grunt中,今天在分享下使用gulp来编译less文件.首先需要安装gulp,如何安装请看文章. 安装插件: gulp编译less使用了gulp-le ...
- Java查看类的成员
在一个类的内部,一般包括以下几类成员:成员变量.构造方法.普通方法和内部类等.使用反射机制可以在无法查看源代码的情况下查看类的成员.编写程序,使用反射机制查看ArrayList类中定义的成员变量.构造 ...
- Apache性能优化总结
1.介绍 首先要了解Apache采用的MPM(Multi -Processing Modules,多道处理模块),MPM是Apache的核心,它的作用是管理网络连接.调度请求.Apache2.0中MP ...
- jdbc数据访问技术
jdbc数据访问技术 1.JDBC如何做事务处理? Con.setAutoCommit(false) Con.commit(); Con.rollback(); 2.写出几个在Jdbc中常用的接口 p ...
- Centos6.3 下使用 Tomcat-6.0.43 非root用户 部署 生产环境 端口转发方式
一.安装JDK环境 方法一. 官方下载链接 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260 ...
- ios开发之--随机背景颜色
记录个随机背景颜色的方法: + (UIColor*) randomColor{ NSInteger r = arc4random() % ; NSInteger g = arc4random() % ...
- RFC文件
RFC(Request For Comments)-意即“请求评议”,包含了关于Internet的几乎所有重要的文字资料.如果你想成为网络方面的专家,那么RFC无疑是最重要也是最经常需要用到的资料之一 ...
- Resolve PSExec "Access is denied"
PSExec拒绝访问的解决办法 Just modify Windows Registry, and reboot. psexec_fix.reg: Windows Registry Editor Ve ...
- springboot学习过程笔记
1.spring-boot-devtools热部署在IDEA中配置后不起作用(Eclipse设置了自动编译,所以不用额外设置) 1).pom.xml添加spring-boot-devtools依赖后 ...
- 使用 TXT 文本存储
将爬取的数据以 TXT 文本形式存储: import requests data = requests.get('http://www.baidu.com/').text with open('/tm ...