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 版本,走过了整整十 ...
随机推荐
- 变分推断(Variational Inference)
(学习这部分内容大约需要花费1.1小时) 摘要 在我们感兴趣的大多数概率模型中, 计算后验边际或准确计算归一化常数都是很困难的. 变分推断(variational inference)是一个近似计算这 ...
- 教你解锁被锁住的苹果mac电脑的文件跟文件夹,同时也可删除被锁的文件跟文件夹(转)
在Mac OSX 下无法删除的文件可大概分为下列三种情形 1.档案(夹)被锁定 2.文件正在使用中 3.没有权限的档案(夹) 一.「 为什么档案会被锁定 」 1.个人自行替档案加上 2.在拷贝或是整理 ...
- 初试WebSocket构建聊天程序
上一篇文章中使用了Ajax long polling实现了一个简单的聊天程序,对于web实时通信,今天就来试用一下基于WebSocket的长连接方式. WebSocket简介 为了增强web通信的功能 ...
- linux给当前用户添加环境变量
比如当前用户为oracel,则添加环境变量操作为: vim /home/oracel/.bashrc
- PyCharm 基础设置
设置主题:File -- Settings -- Editor -- Color & Fonts -- Font -- Scheme 设置为 Darcula 设置字体:File -- Sett ...
- 编译poco-1.7.8
运行build_vs140.cmd,运行之前可以修改一些参数,例如编译64位 buildwin 140 build shared both x64 nosamples notests devenv 修 ...
- React Native(十二)——嵌套WebView中的返回处理
情景描述: 从一个名为"My"的组件点击进去,进入一个列表(该列表内容为webView中内容),其中一个webView也可以点击进入详情页(也为webView),但是如果对导航栏不 ...
- 使用IEDA新建jsp项目以后使用javax.servlet.*报错
新建一个jsp项目,然后再里面配置完了一切写了一个servlet的文件: 点击运行的时候出现了javax程序包不存在的错误,百度了许多都在说是tomcat的事情,吧tomcat/lib下面的servl ...
- windows7内核分析之x86&x64第二章系统调用
windows7内核分析之x86&x64第二章系统调用 2.1内核与系统调用 上节讲到进入内核五种方式 其中一种就是 系统调用 syscall/sysenter或者int 2e(在 64 位环 ...
- 今日Java——Cay Horstmann访谈
这是本人在InfoQ中文站审校的文章,原文链接是:http://www.infoq.com/cn/articles/java_cay_horstmann,感觉内容很不错,分享给大家看看. 近日Info ...