精华 请别拿“死”人做文章
发布于 2 个月前 作者 i5ting 4082 次浏览 来自 分享

请别拿“死”人做文章

先引用一段乔任梁事件的一段评论,然后再讨论Node.js之父Ryan Dahl被过度解读的问题。

自从有了网络,人们可以随便起个名字在网络上发出自己的声音,一部分人便开始亢奋了!言论自由固然好,可一旦太过自由,也就开始可怕了!除了那些正常的声音之外,还出现了攻击、谩骂、泄愤、嘲笑、拉帮结派、或是有目的的制造舆论!

之前人们评说王宝强离婚事件,口诛笔伐,把他们夫妻二人的各种历史挖到骨头说到烂。如今乔任梁走了,又成了娱乐大事件,网上盛传有关他去世的丑闻。一个鲜活的生命黯然离世,依然有人能毫不留情的对逝者肆意抹黑。

我不是乔任梁的粉丝,也不想讨论他到底因何离去,我只想说,逝者应该得到应有的尊重,这是中国人自古遵循的道理。无论有关他的新闻是否属实,都已经没有讨论的必要了,为什么不能让人安静的离开,难道真的没有一点同情心吗?这简直是赤裸裸的网络暴力!

Node.js之父Ryan Dahl在2012年就离开社区的,我们必须要承认他作为创始人的伟大创举,但不能标签化,ryan不代表node,从他离开社区后,对于社区而言,他就“死”在曾经的丰功伟绩上,未来与他无关!但是总有些人想拿这事儿做文章过度解读,

我只想说,真TMD不要脸,这种死人的光也是沾,而且沾得那么脸不红气不喘!

Node.js之父在2012年就离开社区的,然而这5年发展的依然很好,并无影响。这篇文章本来没什么问题,但有些人借位营销就恶心了。以下精选了cnodejs.org上关于此事的大家的精彩评论。

狼叔说:Node.js不是最好,也不是最差,是性价比比较高的,可惜node做后端一直不温不火,java,php利益相关,只有新项目用,微服务架构下,会更好一些。很多人node是用错的,不是用node就什么都用,分清场景。不误解,不传谣,合适自己的才是最好的

对于编程而言,一定是希望更好的执行效率,可控。Node.js做到了好的执行效率,至于如何控制是开发人员要解决的问题,这也是Node.js里最难的点:异步流程控制。

stuartZhang 9楼•11 分钟前

@i5ting 同意狼叔的观点。我想补充的是:Ryan提及的“大型服务系统”是 《DNS服务器集群》类的 底层基础设施。这个领域一般都是Cpp的主场。类似于我单位里的LBS服务组件,Go都不一定是最佳匹配的工程技术,因为Go是GC语言 且 有垃圾回收延时 — 因此,我不认为Go或JAVA比较js高级多少,他们无非是50步笑100步。此外,如果不考虑Cpp的开发者比较多、容易招聘的话,我认为Rust才是 最佳 与 最折中的 工程技术选择(内存安全 与 开发效率,还不需要那么多的老司机)。
所以,我认为Ryan的观点 与 Node.js在后端“胶水语言”的使用场景并不冲突。即,这两者就不在同一个维度上:
	1.	Ryan说的是 被“胶水语言”包装核心引擎。
	2.	Node.js是包裹核心的“胶水”。

alsotang 8楼•3 小时前

一个同时能弄好机器学习和web开发的人。。。学不来。。。

整个Node社区对此事并不并不感冒,大家其实都不在意的。但鉴于很多朋友提问疑惑,还是有必要简单解释一下的。

Node不是万能的

Java是万能的吗? Php是万能的吗?

这世界真有万能药?别骗自己了

Node也许不是构建大型服务的最佳选择

注意标题上用的是【也许】,左耳朵陈皓说过互联网应用99%都是io密集型应用,而这也确实是node的强项。说Node也许不是构建大型服务的最佳选择,这话是可以接受的,但不代表Node不能,如果这样解读就有点不厚道了,很明显是误导无数小白的。

所以套用一句万能的话:不是Node不行,是你不会用。

再说说构建大型服务,何谓大型呢?国内的bat和qunar算么?国外的Uber、沃尔玛、PayPal算么?明显是站不住脚的。

服务部分可能会有歧义,目前Node在前端服务部分做的非常好,但后端rpc等略显不足,不过这是有原因的,国内Java、PHP这些在后端已经占有了相当大的量,Node是很难直接切入进去的,尤其是基础设施、大数据等部分都是非常成熟的情况下。目前能做的是新项目和中小创业公司,没有历史包袱,才能勇往直前。Node在做rpc服务,和Java相比没有明显优势,尽管它使用简单,性能出色,但依然很难让做Java的同学使用Node,尤其是语言上的偏好,JavaScript的黑魔法太多,缺少类型系统和OO机制,没法更好的应对大规模编程。在变好,但路还远。

Node目前存在的问题也是很明显的

  • 异步流程控制的历史包袱过重,导致入门的学习曲线略陡(在没有人指点的情况下)
  • EventLoop部分是个黑盒子,很难优化
  • 人才断层,高级的少,初级的多
  • 基础设施不够完善,对架构师要求更高一些

每一条路都有无数的坑,都有优缺点,还是要辩证的看待问题。既然选择了,就风雨兼程,且行且珍惜吧!

Node.js现在比以前更好

  • 社区驱动,由独立的Node基金会负责,不用担心归属和弃用问题
  • npm是目前最大的包管理工具,生态依然构成,几乎强大到变态
  • 更好的性能和稳定性,LTS支持非常好
  • 更好的异步流程控制,Async/await + Promise
  • 从Node v8.5开始支持ES6模块
  • 更好的下一代Web框架:Koa 2

Google 加入了 Nodejs 的 Vip 队伍

发布个好消息:Nodejs 基金会发布,Google 加入了 Nodejs 的 Vip 队伍。

https://medium.com/@nodejs/node-js-foundation-welcomes-google-as-platinum-member-5a30f1ef7451

结语

还是引用上面的文章:

无良娱记和网络暴民们该醒醒了,有精力多关注一下自己的生活,怀着善意去看这个世界,无论于人于己都是功德一件!

我们作为普通民众,在这个信息爆炸的时代也要提高自己的判断力。我们作为旁观者,对消息的真假往往无从判断,对于不明确的事件不要急于下定论,要学会冷静对待,换位思考,避免以讹传讹,高调评论是非,哗众取宠,充当意见领袖。无论我们看到什么,听到什么,慢一点,等一等,纵观事态发展,思考后再做判断。听风就是雨,绝不是智者所为。

在是非面前,淡然的心态才是难得!

娱乐有度,请别拿逝者做文章!

22 回复

谣言止于智者,玩了那么多语言,老了,只想玩个 node,其他的玩不来了。

个人觉得,cnode社区与 phphub, ruby-china 差别比较大,cnode 社区中新手确实比较多。

@i5ting 这是受什么刺激了?我转的文章都过去那么多天了,而且我绝对没有借机炒作的意思。

我转文章的目的是希望引起大家的思考,并没有引起多少嘴炮,大家基本上都是在讨论技术选型问题。

node的异步模型问题,我想我是有权力指出来的。尤其是真正想拿node来做后端的。

后端非一门语言能够撑起来的,我想成熟的后端不会否认这点。

node对前端的贡献大于后端,这恐怕也不会有什么大的疑问。

招聘的重点也在前端,这也没什么问题。

我建议前端的必学node,后端的自己选择也没什么大问题吧。

我同样也表达了,项目大小跟个人能力有关,跟语言框架没多大关系。

狼叔这篇文章应该跟我没多大关系,我们观点上没有什么根本冲突,受刺激的一般都是一些自称全栈的人。

再次让这些人不爽:全栈 != 前端不强,后端不行

这个论坛上能有资格称全栈的不多,建议大家先把某一端精通了再去拓展其他领域,这样比较现实。

@coordcn 哈哈,没有针对你,是架构群里的讨论让我不舒服了。忍不住给node正个名。某些语言的布道者还是要注意点

fullstack这个词儿又被一些人弄low了,哎!!!大家还真是需要先把某一端精通了再去拓展其他领域,这样比较现实

@htoooth 中高级都不说话,或功成身退,或潜水不够自信,哈哈

@ResJay ?这篇文章不软吧

用“死人”来形容Ryan欠妥,Ryan的文章我看了,本意并不是贬低node,概括为一句话就是“技术选型包括语言的选型是要根据场景的”,我想这一点只要是有一定编程经验的人都能明确认识,没什么可争议的。但是我坚决支持狼叔对node的热爱之情

@richenlin 这话说的确实有点损,ryan确实不是在贬低node,而是有些人想借题发挥,老是鼓吹某些语言,而且很多黑粉和观望者会放大这种谣言。。。

我对ry是尊敬的,原文中这样写的:

Node.js之父Ryan Dahl在2012年就离开社区的,我们必须要承认他作为创始人的伟大创举,但不能标签化,ryan不代表node,从他离开社区后,对于社区而言,他就“死”在曾经的丰功伟绩上,未来与他无关!但是总有些人想拿这事儿做文章过度解读,

我只想说,真TMD不要脸,这种死人的光也是沾,而且沾得那么脸不红气不喘!

你说的很对:“技术选型包括语言的选型是要根据场景的”,赞一个

ClojureScript 用户就热闹得围观了. Node 对 Web 开发带来的好处是有目共睹的, 至于某些场景搞不定也在情理之中.

@htoooth 新手多,不就代表着,又越来越多的人在学习node吗

@walter211 对于前端开发人员来说 Node 整个生态的工具链是非常有用的. Gulp Webpack 等等全都是在 Node 生态当中成熟起来的. 前端开发人员能做的事情多多了.

不知道8.9 LTS支持ES6模块是默认的还是要想前面版本那样用flag的?

@jiyinyiyong 大佬,我想请教node什么场景搞不定啊

@walter211 最典型的:视频解码 就不推荐 使用nodejs来做。

如果出于一些原因,不得不 在js里 处理一些计算强度比较高的 任务。那么,开发者 自己就有 责任:

  1. 把一个大计算 打碎成 若干段 子计算任务。
  2. 以接力的方式,逐次 执行 各段 子计算任务。
  3. 在比邻的 子计算任务之间:
  • 要么 使用requestAnimFrame()进行分隔。这是在前端。
  • 要么,使用process.nextTick()进行分隔。这是在后端。

比如说,解码Big JSON String为POJO并做处理。目前,我就是使用 Oboe.js 来以流的方式,分多个处理时钟依次执行,以避免:集中执行计算,造成整个进程 近似 假死 的现象。

@i5ting 求狼叔,点评。

@stuartZhang 擦,感谢大佬回复,关注了

@stuartZhang 视频解码可以用C++来做,NodeJS支持调用C++的。使用别的语言,再快也快不过C++吧?

@zhanzhenzhen 支持。node-ffi 能够确保对C Native Module的调用是 无缝的。另外,我们正在使用node-java来集成legacy code。

回到顶部