为什么国内很难出高质量开源
发布于 9 天前 作者 webkixi 1129 次浏览 来自 分享

为什么国内很难出高质量开源

乱侃

今天因为VueJS展开的讨论,话锋转转,就转到这个主题了。这个主题其实也一直是我想要了解的问题,毕竟是这个FKPJS要走的路。怎么样才能做好开源。

这里先推荐一篇好文,《思考的八种境界》,文章不长,但却有些感悟,第一条就撞在胸口,《一、形成主见》,行文大概意思是:有自己的一套,即便是很浅薄。

是的,即便浅薄,那也是心血所成,正如我正在做的FKPJS,虽然浅薄,但却花费了我不少时间和精力,融入了我关于开发、关于前端的一系列想法,我可以和你娓娓道来,关于FKPJS的点点滴滴,也是这些点点滴滴的情怀,和支持我的朋友们推动着FKPJS的前行。

是这样的

回到主题,为什么国人很难出高质量的开源,这里的衡量标准,我是以GITHUB的star来做为衡量的标准。

我的这个朋友一直以来都是靠avalon来混生活,当然他远不止这一项技能。反正对于AVALON的使用大概有2年左右的时间吧,公司的运营后台也都是靠avalon在支撑着。

对于我的到来,对他不大不小有些影响,为嘛这么说,因为公司合并后,我被并入到他的部门,并且不大不小, 刚好踩他一头,而我是react的推动者,也在几个微信项目中实施和部署了FKPJS的这一套,自然大权在握,在 我的淫威之下,他也无可奈何。并且好歹说,FKPJS是我亲手打造的一套全栈框架,公司上层也挺认可。

因此,挣扎在所难免,对于开发者来说,我其实挺理解这种心情,但毕竟怎么说呢,他拿我没办法,于是他也开始 纠结、挣扎,想努力跳出我的影响范围,折腾了一个国外的react的全栈框架,又折腾了vue2.0。总之也是蛮 拼的。

但最近我两关系改善,所以呢,也就偶尔侃侃技术圈的这些卵事。期间了解到,avalon在github上的star增 长非常的缓慢,1年左右的时间也就增长了1000来star,总共也就3000~4000star,而VueJS自2.0的推出后, star疯长,大概在2万左右。

期间又了解到,vue的作者有留学背景。又曾今在google等大公司撸过代码,仰望之情顿时油然而生。难怪, 难怪,都是牛人啊。

算是自嘲也好,自卑也罢,作为同是前端开发者来说,总算给自己也找了一个不错的借口,原来都是有这样的耀 眼光环。发挥一下阿Q精神(听说最近鲁迅的文章被全面清理出教科书了,艹艹艹,我中学时最爱看的内容)。

为什么更喜欢国外开源

玩笑之余,不妨深入一点。

毕竟编程是外国人发明的,天生就有语言的优势,比如react, flux, redux,在这些名词出来前,作为一众 国内的开发屌丝,我想是很难想象这样的名词,而这对于英语母语来说是很自然的事情

杂乱的命名方式

基于英语就那么点水平,想不出来的名词,自然靠拼音堆上,尤其在工作压力之下,那些个命名有些也是确实很 搞笑,不要说语义没有,就连意思在过了一段时间后估计也无人可知,包括自己。

结构不稳定

还是基于英语的问题,当你开发出来的东西,不具备可读性。外国人看不懂,中国人也看不懂,为什么,因为 可能有一个变量就夹杂着一半的英文,一半的拼音,因为这样的东西,有可能就是一个通用接口,在你想到合适的 单词的时候,这个接口就变了。我擦,我怎么敢用这样的东西。所以罗,能追随的开发者就寥寥无几了。

其实也看过avalon的源码。。。。,然后就没看了。

有料也倒不出来

同样还是英语的问题,比如今天侃到redux,虽然我是react的粉丝,但我从没用过flux,redux,react-router等东东,所以 跟着我这个朋友,啪啪啪的把这些个东西,折腾了一遍,心中千万草泥马奔腾,不仅复杂,而且复杂,还复杂。

为什么我有这样的感慨,我是知道flux的原理的,因此,FKPJS有自己的实现,来实现单向数据流,对于我来说 简单,足够,好用。这个之后会有专门的文章。 没有多余的配置,不需要一一对应关键字,独立于react的组件 ,不同组件间可通信,异步数据的回调响应。。。。,好吧,我其实不知道该用什么术语来描述。总之,redux的这一套 大概都能实现吧

很不好意思的是,在FKPJS中的redux,我把它命名为SA,是个全局变量,是我自己倒腾出来的。但尼玛,SA是 个什么鸟,本意是store and action,我仅限于这样简单的英语单词,redux是个什么意思?谁来解释 一下!!!

基于SA,我实现了FKP-ROUTERFKP-FLUXFKP-PAGES,以及在业务中的大量使用。可以说SA在FKPJS中 是个核心存在。 但,but,1、SA没什么语义; 2、我也倒腾不出英文说明;

结论

综上所述,大概就是我所总结的原因,当然应该还有其他很多的原因,但我感觉这个比较基础。也是逃脱不了的 魔咒,只能不断提升自己的英文能力,尽量做到最好吧,大家共勉!!

nm,通篇看下来,发现这软文写得666啊,给自己打82分。

^^! 欢迎关注我的个人站 http://www.agzgz.com
^
^! github fkpjs https://github.com/webkixi/FKP-REST

28 回复

我得说国内的教育,摧毁了一个人一切做成事的基础,不只是编程。任何一个人受十几年的应试教育,意识形态就是投机的意识形态,没有耐心,没有探索,擅长的就是把一切得到的新知识蒸馏一番,以期获得最高收益。应试的训练不就是这么回事吗?

@flamingtop

做好自己就行,国内教育是有问题,但关键还在我们自身。

中国教育最失败的领域就是意识形态了,我们要扪心自问,到底是自己的问题,还是教育的问题。我看到的现实是,大多数人根本不相信意识形态那套东西。既然不相信,那为什么又要把自身的一些问题怪罪到意识形态教育上去?这其实是为自己找个借口,很多问题说白了还是自身的问题,只是有的人不愿意承认罢了。

好的开源项目有的时候并不是技术本身的问题,更多的是持续的投入,这就涉及到长期利益和短期利益权衡的问题。国外一些著名项目得到各种资助的,国内这个环境还不成熟,在利益兑现这点上,我们是落后的。国内个人做开源能够兑现利益的也就那么几个人,在这种环境下,大家做的其实就是一种情怀,只能慢慢来了。

@coordcn 棒棒哒

5分钟造火箭…

这样浮躁的环境,有情怀就不错了。

补充一个点,无长期投入,测试等就跟不上,无好的项目,也没人愿意资助,又坑回来了,555

我是从avalon转到vue的,不吹,后者对前者,是全方位的碾压。语法,结构,文档,周边,生态。 尤其是文档,你几乎很难相信这是个个人作品。

长期投入才是王道

水深火热

每次命名的时候都会难受

@webkixi 不要难受…又是一次 Brain Storm 啊~要享受

之前某 FM App泄露的源代码里面不是有欧洲众神…

Zeus / Prometheus …

也挺有意思的啊

我喜欢拿各种武器命名 predator / nimitiz / cobra …

哈哈 因为命名都能想半天

谁说国内没有高质量开源!!!!

redux是因为内部实现的时候用了Array.prototype.reduce(),如果你了解字根(类似于中文的偏旁部首)。那么,reducer这种命名就随手粘来了。对于程序员英文真的很重要啊!

@i5ting 不管环境怎么样,我们还是得保持一颗匠心,不然和咸鱼有什么分别,哈哈哈哈

@nodeman777 嗯,我只是自嘲一下,还是会坚持做开源的

我的Excel模板引擎ejsExcel就很优秀啦

还有一种情况,国人很多时候开源很多时候是我有能力要秀出来,有star目的就达到了,然后就没有然后了。

首先,一个优秀的开源项目要投入多少精力啊。国内的程序员远远没有国外的程序员那么多自由时间吧。 其次,github上国内star数多的,大部分不是项目,是各路“大神”的博客。你幸幸苦苦的一个项目搞一年两年,别人写两篇入门文章就比你的项目关注度高了,你还有兴趣去搞项目么。 最后,一些大公司,把开源的东西改改拿去用了,又回馈给社区什么了呢?

共勉。赞楼主的开源精神,不过至少要注意下基本的代码风格吧。。打开的第一个文件https://github.com/webkixi/FKP-REST/blob/master/db/mongo/common/connect.js,就发现存在以下问题:

  1. 缺少 ‘use strict’ 会报错吧
  2. require模块那const和var混用
  3. 用分号与不用分号混用
  4. 2个空格缩进和4个空格缩进混用
  5. 字符串单引号和双引号混用
  6. if后有空格,{左侧没空格

英语不咋地,真的好伤啊

楼主的开源精神是值得赞赏的。

不过你的项目如果按优秀开源项目来评论的话,我发现尚存在几个问题:

  1. 模块很多,但是尚没有分离
  2. 命名不够国际化,全部大写,也不容易记忆,也不知道什么意思
  3. 未看到有任何测试代码。
  4. 产品级的代码里不应该有太多的console.log信息

最后祝楼主的项目越来越好,质量越来越高。

star多还不容易啊? 楼主说了半天也没看到本质问题, 就是除了技术,中国人的宣传能力非常差. 例如vuejs 和 react 真是因为技术牛,好用吗, 太天真了. jQuery 这么长时间 star 才多少, nodejs项目 star 才多少.

要想star多 把用来做技术的时间用来做宣传推广就可以了.

但最后说一下 东西好不好, 过了几年有没有人在用那是另外一回事, 就想react vuejs 现在或, 过两年可能就消失了. 最后还要看大公司的资助背景, 就想node.js

在中国开源谁来买单呀

@jinwyp 你说的对,但推广也建立在产品上。nodejs和react vuejs都不在一条线上,不好讨论

@csc365kl 开源是为了改变世界好吗 ^_^!!,拿出你的情怀来

@webkixi 恩 是的 为四化建设而奋斗

所以我们还是和这个世界稍微有些“格格不入”。

我的感受是个人开源和以官方开源的形式能获取到的关注量差别比较大。个人基本要靠自己去宣传了。

回到顶部