作者|伍杏玲
出品|CSDN(ID:CSDNnews)
【CSDN 编者按】马化腾曾问过科技界占卜师凯文·凯利:“谁将会成为腾讯未来的敌人?”
凯文·凯利答:“在互联网世界,即将消灭你的那个人,从来不会出现在一份既定的名单里。”[1]
那是2012年,正是腾讯开始从“封闭”转型拥抱开源。
曾经的腾讯,到底有多封闭呢?
2017年,据时任腾讯研发管理部的许勇在“云+未来”峰会陈述道:“曾经的腾讯比较保守,什么事情都是关起门来自己做,内部的技术研发也是如此,各业务和产品都会重复开发很多类似的功能,比如5~6个不同版本的二维码扫描,7~8个功能类似的热补丁组件等。”
自2010年震惊互联网的3Q大战后,腾讯从封闭走向开放。
在2010年11月11日,腾讯12周年纪念庆典结束后,马化腾独自驱车回公司发出《打开未来之门》的邮件。就是从这邮件里,马化腾承诺“开放”,“这是腾讯决策层第一次将之定义为战略级的行动”。[2]
那么从2012年腾讯尝试发布了第一个对外开源项目后,几年时间过去,目前腾讯在开源上的发展是如何的呢?
GitHub开源项目73个,Star数超20万
在内部,腾讯从2011年开始在内部提倡以公共组件的形式共享和复用代码开始,目前内部各领域技术的开源项目总计超8000个。
对外,腾讯在2012年发布了第一个对外开源项目。截止发稿,腾讯在GitHub的开源项目总计73个,累计Star数超20 万,覆盖微信、腾讯云、腾讯游戏、人工智能、腾讯安全等领域。其中腾讯云Tstack、蓝鲸智云Blueking CMDB、微信开源系列、TARS等,是腾讯开源的亮点案例。
Star数排名靠前的开源项目
1、UI库:WeUI
Star:22271
WeUI是为微信Web开发量身设计的基础样式库,以改善和标准化微信用户的体验。包括组分如button、cell、dialog、progress、toast、article、actionsheet、icon。
2、组件化框架:WePY
Star:17767
WePY是一款让小程序支持组件化开发的框架,通过预编译的手段让开发者选择合适的开发风格去开发小程序。
3、Android 热修复框架:Tinker
Star:13693
无需重新安装APK,Tinker可支持DEX、库和资源更新。
但Tinker无法动态更新的有:
无法更新androidmanifest.xml,例如添加android组件。
不支持某些操作系统版本为Android21的三星机型。
由于Google Play开发者协议,Tinker无法动态更新APK。
Star:13693
Mars是微信官方的跨平台跨业务的终端基础组件。comm:可以独立使用的公共库,包括 socket、线程、消息队列、协程等;xlog:高可靠性高性能的运行期日志组件;
SDT: 网络诊断组件;
STN: 信令分发网络模块,也是 Mars 最主要的部分。
5、通用Web组件化框架:Omi
Star:8939
Omi基于Web Components并支持IE8+(omio),小程序(omip)和任意前端框架集成。
6、Android UI库:QMUI Android
Star:8006
QMUI Android 用于辅助快速搭建一个具备基本设计还原效果的 Android 项目,同时利用自身提供的丰富控件及兼容处理,让开发者能专注于业务需求而无需耗费精力在基础代码的设计上。
Star:7315
MMKV是基于mmap内存映射的key-value组件,底层序列化/反序列化使用 protobuf实现,性能高、稳定性强,目前有移植到Android/macOS/ Windows平台,均开源。
腾讯开源“全家福”传送门:
未来
腾讯从原来的“什么事情都是关起门来自己做”发展至今,可以看到曾“封闭”的腾讯不断努力地在拥抱开源。
在文章主流开源软件究竟是否会被闭源,中国开源软件推进联盟副主席兼秘书长刘澎谈到国内优秀的超级使用者,例如阿里巴巴、京东、百度、腾讯、华为、联想等企业,均为开源贡献很多优秀的代码,还对开源软件应用商业模式进行创新。
可以说,中国开源的发展离不开这些企业的加持,但是目前从GitHub的开源项目数量上看,腾讯的远远落后于阿里在GitHub的开源项目262个,在当前的开源案例中,腾讯尚未形成世界级影响力的典型案例。
未来,腾讯仍需努力。
来源:
[1][2]:《腾讯传》作者吴晓波。