NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

虚拟座谈会:GitHub 开源大牛谈中国开源

  • 2015-02-03
  • 本文字数:3709 字

    阅读完需:约 12 分钟

最近,githuber 发布了一份“ GitHub 中国开发者 2014 年度报告”,比较详尽地分析了中国开源的发展现状,其中对 star 排名前几位的开源项目负责人进行了访谈,InfoQ 整理了其中比较通用的部分,尝试总结出这些大牛们对中国开源的发展看法和建议。

githuber 采访的开源大牛分别是:

  • ECharts 林峰
  • ThinkJS 李成银
  • Cocos2d-x 林顺
  • Pen 小鱼
  • Vue 尤雨溪

对国内开源现状的看法

李成银

目前国内的开源项目基本上都是团队内部在开发,即使是非常成功的项目 PR 也非常非常少,所以目前来说国内的开源环境仍然不够活跃不够开放。一个项目出来会被很多人骂,不过关键就是别人骂了我们我们还不知道,也就无法改进。我们觉得骂本身不是坏事,说明用户还是需要你的项目的,只是项目不够好而已。但是关键是骂也要去 Issue 里骂,这样我们才能看到。总体来说国内的开源环境已经比之前要好了,Issue 多起来了,PR 也有一些,不过目前来说还不够成熟,不能像国外的项目一样能够通过 PR 完成很多功能。

其实也不能怪大家,国内和国外的工作情况就不一样。国外大家把编程当兴趣来做,工作也没有国内这么忙,所以有更多的时间和兴趣投入开源项目中。国内经常加班,压力很大,大家对于开源的热情就不高,更多的是把开源项目当做一个宝库,遇到问题的时候去找现成的解决办法,而不是参与其中。

此外,大家更喜欢用国外开源项目还有一个原因,就是国外的项目更加稳定,不太容易出现项目无人维护的情况。国内的开源项目有时候开发者会放弃并停止更新,这样依赖这些项目构建的项目就会很难处理,而国外的开源项目即使维护者停止更新,他也会找到其他人继续维护,比如前段时间的 Express,这就让用户很有安全感。

个人、团队、公司在开源项目的不同角色和选择

可以总结一下 ECharts 的发展模式吗?比如先从兴趣出发最后得到公司支持,或者从诞生就由公司支持和运作等等。如果其他开发者也想遵循这个模式的话,有什么话想对他们说吗?

林峰我很幸运,这事本身就是自己的兴趣,也是公司的需要,遇到各种好领导放任自如的让我随意发挥,并且当事情越做越大的时候能够不断的给于支持和帮助。

做好一个项目,最最重要的,团队的力量,要找到那些志同道合,才华横溢的小伙伴与你并肩,ECharts 团队是个跨部门的虚拟组织,我们面向百度全体 FE 招募,组建时我立了个规矩,“如果你忙或者没时间做这件事情,请暂时离开,我们随时欢迎你归来”,刚开始几个月我两周清一次场,各种进进出出,但半年后团队就基本稳定至今了,用叮叮的话我们也成了一个小小的家庭。

你觉得公司在开源项目中扮演的是什么角色呢?在当前国内的大环境下,如何在公司中做一个成功的开源项目呢?

林峰:公司是不会无缘无故启动一个跟自身业务无关或者自己都用不到的项目。好的项目能获得更多人的关注、反馈、代码贡献,开源后如果能让这个项目发展更好不仅对公司自身项目需求有意义,甚至可以让公司在某个领域确立自己的技术领导地位(想想看 Android、Linux、jQ、Bootstrap),这无疑是对公司极好的事情。

公司是否可以运作一个开源项目跟公司状况和基因有关,这个真不好说。只能说一点,在公司内做开源项目,这个项目本身是否对公司带来价值是关键,短期的长期的都最好要有。

什么事都是有利有弊,你觉得公司主导的开源项目相比个人或者社区主导的开源项目利在哪里,弊又在哪里呢?

林顺有公司或者资本提供支持的开源项目,相对于个人或者没有资本支持的开源项目的优势:有更多的资源投入,对开源项目的后期发展至关重要,允许有更多专职的研发人员,产品的迭代周期和质量也能得到很好的控制,提供更加持续长久的维护,可以让开源产品走的更高、更远。至于弊端,那就得看对开源项目的态度,如果本着服务行业,推动行业升级,用开放的心态来做开源项目,并不会存在着什么弊端,全世界范围内也并不乏有各个公司支持的开源项目。当时我们的操作系统公司做的不好了,引擎项目发展的却是很好,愿意投资我们的有好几家,但是最后还是觉得陈昊芝思路很开放,能坚持不把一个开源的项目做成闭源商业项目,最终和他一起做,一路走来,也发现我们当初的选择是最正确的。

如果其他公司也想走开源路线,有什么话想对他们说吗?

林顺:非常欢迎一起加入开源路线,开源项目不论是对个人和对公司,能学习到很多宝贵的知识,社区里汇集的智慧是巨大的宝贵的,国外资深程序员教你两招,你就能发现原来代码还能这么写,框架还能这么设计优雅。另外,和社区做好互动,有效采集用户需求和反馈,是推动开源项目往正确方向发展的关键,也是产品化和易用化的捷径。

你觉得作为个人开发者来开发和维护一个开源项目难度大吗?中间有没有想要放弃的时候呢?

小鱼:难度还是要看项目吧。不过我相信人多不一定能解决问题,因为技术问题普遍都有天花板,对于核心思想和技术,大多情况下应该是由更少的人产出的。思想定了,核心技术定了,添加功能可能并没有想象中那么难。而对于有没有放弃,我通常是这样想的,最差的可能就是放弃。坚持会发生很多美好的事情,比如写博客。如果有很多紧要的事,时间不多,有时候也只能放弃,只做觉得紧要的。

尤雨溪这要看项目的规模了。一般来说适合个人维护的项目,最好是专注于解决一个较小的专门问题的库,否则可能会占用过多精力。项目的规模大到一定程度以后,最好是由社区或者团队来共同维护。说实话 Vue 现在的 issue 增长速度已经挺累人的了,好在现在也有很多社区开发者会积极地帮忙回答问题,让我省了很多精力。

你觉得纯个人开发开源项目和有公司背景的开源项目比起来有什么本质的区别呢,作为一个开发者应该如何选择?

小鱼: 本质上都是开源。个人并没有统计过个人开源的东西更成功,还是公司开源的东西更成功。不过像 ElasticSearch 大多代码都是一个人写的,非常成功;Docker 是一个公司维护的,非常成功;Bootstrap 是 2 个人开发的,公司维护的,非常成功。本质上我觉得是开源的产品真正有用,就会有人用;如果有公司给时间和金钱支持,那相当好;而最好的是有一个社区,大家一起维护。比如你可以在 Google 上找到关于 jQuery 的几乎所有答案,这就是社区的力量。所以如果你有一个好的项目,那么尝试培养一个社区,比一个人写,或者只有公司支持没有人开发的僵尸项目好。

尤雨溪有公司背景的开源,其背后肯定是有商业利益的推动,所以只要公司的商业利益和项目的发展状况是正相关的,这个项目就会有比较稳定的财力和人力支持。但这类项目通常更受公司决策的影响,对社区的意见不如个人开发的项目来得敏感。个人觉得选择一个项目的时候是个人还是公司开发并不是关键,关键是看背后的公司 / 个人是否靠谱。

开源对程序员的意义

林峰太有意义了,学习啊!看大牛们的代码是一种幸福,从模仿到领悟到融入自己的程序里,这就是成长。身边很多大牛们都把 GitHub 视为游乐场或者玩具店,不是说儿戏了,是要有玩家的态度和享受玩的快乐,要在上面学会折腾,GitHub 上有无数好的项目,多动手,多折腾,尝试融入到这些开源社区去做些贡献,一开始哪怕就是跟 Issue 凑热闹,给些使用反馈,文档错别字纠正都是有意义的,然后就是贡献自己的想法,帮助别人解决问题,当你开始贡献代码,或许你就能体会到开源对你的意义。

林顺参与开源项目对于程序员来讲是一种高效、快速学习成长的方法,不仅如此,如果你是一个技术爱好者,参与开源项目你有可能找到自己的兴趣,擅长结合点。当然,如果能找到和商业的结合点,进而从事自己喜欢的工作,那就更爽了,这点是很难得的。

一般有秩序的开源社区都提供很好的知识和经验交流平台,深入参与到开源项目中,对个人的技术成长和视野会有很大的帮助。

GitHub 在全球的火爆程度无需多表,提供非常高效的项目开发协作机制,是了解开源项目运作机制的很好入口。在 GitHub 上,开发人员可以随时与全世界的人共享代码,也允许接受来自全球不同地方的人贡献各种 idea,代码片段,也是社区交流的基础,越来越多的开源项目迁移到 GitHub 上。

小鱼开源是一种共享的精神。意义可能有很多种。让别人受益,自己得到改进反馈,让更多人从代码认识你,诸如此类,于每个人不同。开源并没有直接改变过我的生活,不过我喜欢写写代码,还能帮到人,于我已经是很大的乐趣,而有乐趣的生活就是我的意义。

对于 GitHub,他只是工作 / 协作平台,这样的平台还有更多选择。不过我一直用它,是因为其他产品都做的太丑,无论是细节还是体验,而我更愿意选择好用的工具,即使付费。

尤雨溪:我觉得开源的意义对于普通开发者来说,可以看别人的源码学习自然是最主要的了。在 GitHub 上利用高级搜索去搜自己语言排在前列的项目和开发者,可以学到很多东西。另外每周看看 trending 的新项目也可以发现很多好东西。另一方面,尽可能多地开源自己的代码也有好处,因为这可以迫使你对自己的代码保持一个高水准的要求,而不是得过且过。

感兴趣的读者可以访问 githuber 查看 GitHub 中国开发者 2014 年度报告和完整的采访内容。


感谢崔康对本文的策划,丁晓昀对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2015-02-03 09:2310290
用户头像

发布了 501 篇内容, 共 248.3 次阅读, 收获喜欢 57 次。

关注

评论

发布
暂无评论
发现更多内容

探索全球 AI 产品市场:50 个国内外导航网站助力推广

出海的猹

AI 导航网站 出海

深度学习之“线下标注”

矩视智能

深度学习 机器视觉

bsc链一键发币平台哪个好?PandaTool最受欢迎

加密先生

被卷到“准下岗”,这九种编程语言要消失了!

这我可不懂

Python 编程语言

聊聊复杂网络环境下hdfs的BlockMissingException异常|参数dfs.client.use.datanode.hostname

明哥的IT随笔

hdfs TCP/IP

大厂旗下的APP们成为自研大模型的“磨刀石”|TE洞察

TE智库

人工智能 BAT 大模型

真香!为什么设计行业流行部署云桌面?

青椒云云电脑

云桌面

【开源】低代码引擎 TinyEngine 源码正式开放啦!!!

OpenTiny社区

开源 前端 低代码

[Go 夜读 第 148 期] Excelize 构建 WebAssembly 版本跨语言支持实践

xuri

开源 Excel webassembly Go 语言 Excelize

2024成都电子展|成都国际电子信息展览会

AIOTE智博会

电子信息展 成都电子展 电子信息博览会

代理价格监控和分布式价格监控有什么不同点?

巨量HTTP

http代理 分布式代理

融云 CallPlus + X,通话场景一站式解决方案

融云 RongCloud

API 社交 融云 CallPlus SDK 通话

分布式微服务架构中的关键技术解析

这我可不懂

分布式 微服务架构

2023英特尔on技术创新大会:英特尔研究院展示多项技术“魔法”

E科讯

开放原子开源大赛 | Pika赛题正式启动,诚邀报名!

开放原子开源基金会

开始报名!龙蜥社区走进 Arm MeetUp 议程硬核剧透来了

OpenAnolis小助手

开源 操作系统 arm Meetup 龙蜥社区

RTC才是物联网企业的杀手锏!

X2Rtc

音视频 物联网 IoT RTC

Vue3中的Ref与Reactive:深入理解响应式编程

互联网工科生

前端框架 Vue 3

英特尔研究院副总裁、英特尔中国研究院院长宋继强:英特尔技术为全行业带来卓越贡献

E科讯

OWASP Top 10漏洞解析(1)- A1:Broken Access Control 访问控制失效

华为云PaaS服务小智

云计算 华为云 漏洞分析

你眼中的程序员 vs 程序员眼中的自己,是时候打破刻板印象了丨KubeCon 主题活动

阿里巴巴云原生

阿里云 容器 云原生 AIGC

从研发域到量产域的自动驾驶工具链探索与实践

Baidu AICLOUD

自动驾驶 工具链 仿真

一站式运营营销平台

Quincy

运营 用户增长技术 营销数字化 用户留存 `后端

流量治理的基石——基于字节码增强的全链路流量标签透传

华为云开源

微服务 微服务架构 字节码

Java虚拟线程简介

FunTester

C4D在影视动画制作中的局限性

Finovy Cloud

C4D

【聚梦想 创非凡】2023荣耀开发者沙龙 ● 广州站 精彩回顾

荣耀开发者服务平台

互联网 用户增长 云服务 生态合作 行业经验

1024程序员节之天马低代码开发者大赛篇

Openlab_cosmoplat

低代码 1024程序员节

中国首个接入大模型的Linux操作系统;ChatGPT支持图片和语音输入;抖音上线方言自动翻译功能丨RTE开发者日报 Vol.57

声网

虚拟座谈会:GitHub开源大牛谈中国开源_GitHub_崔康_InfoQ精选文章