如果 node 没有显式异步这个喷点,他们还会喷什么

2015-12-12 09:58:00 +08:00
 123s
6752 次点击
所在节点    Node.js
72 条回复
jarlyyn
2015-12-12 13:11:22 +08:00
python 和 perl 都能对喷

一个说对方不规范

一个说对方太死板

so....
echo1937
2015-12-12 14:05:56 +08:00
@yangtze 额,从本体而言 Python 和 NODE 对 CPU 密集型任务都不友好,但 Python 弱很多的结论是怎么得出来的, NODE 在这方面比 Cython 和 Pypy 都高出几条街吗?
jin5354
2015-12-12 14:07:01 +08:00
反正 JS 在浏览器端一家独大,不但向前 15 年,估计向后至少 8 年 10 年依然能保持垄断,并且在 TC39 与各种社团的推动下,语言本身一直在进步。
其他端都是被带起来的,啥 nodejs ,啥 reactive-natice ,都是浏览器端工程师下班了闲着没事捣鼓出来的。就算死了,还会有新的玩具站起来。
jiongxiaobu
2015-12-12 14:08:43 +08:00
楼主一定是来骗铜币的
fy
2015-12-12 14:18:55 +08:00
怒骗铜币
aszxqw
2015-12-12 14:19:26 +08:00
@123s 对, fibjs 确实火不起来,所以我觉得很可惜。
whimsySun
2015-12-12 14:25:06 +08:00
@Mark24 在 node 这边, es 特性都是基本上通过 babel 解决;前端的话,你可以参考国外的发展,基本上也都是用 babel 。
yangtze
2015-12-12 14:42:52 +08:00
@echo1937 原生 Node 比 pypy 计算效率高 10 倍左右, Cython 不清楚,但是 Node 支持 C++ 模块,效率比原生高。
以上来自 ' 深入浅出 NodeJS '
plqws
2015-12-12 14:49:40 +08:00
微软有 TypeScript , ES7 有 async await ,我认为完全可以拿来做大项目了
123s
2015-12-12 14:56:11 +08:00
@jiongxiaobu 哈哈,不要说粗来嘛。
123s
2015-12-12 14:58:04 +08:00
@fy 话题一出,铜币拿来
chairuosen
2015-12-12 15:08:09 +08:00
if else 分支多一点 再放在异步的回调里,会疯
k9982874
2015-12-12 15:16:25 +08:00
as3 让做动画的当上游戏攻城狮,狠捞了一笔。
node.js 能不能让做网页的当上架构师捞上一笔呢?
123s
2015-12-12 15:16:47 +08:00
@chairuosen if else 哪个语言都有,不给把锅丢给 node 吧。好吧,后面你们都只喷异步了...
chairuosen
2015-12-12 15:29:32 +08:00
@123s 我是指比如这种写法,用 node 写比较痛苦。
if ( cachedData ){
return cachedData;
}else{
data = getData();
return data;
}
getData()是个异步 io 的话,就得全部改成回调,如果这个 if else 分支本来全是同步返回的,结果只有一个小分支是异步取数据,也得全改成回调。
好在有 Promise 解决这个问题
dqh3000
2015-12-12 16:52:12 +08:00
再过两年支持 es7 await 了,就显得不异步了吧?
kjkjkljkj
2015-12-12 16:58:34 +08:00
@chairuosen
楼主标题里面已经说了不考虑显式异步, 你们还拿这个说事就不好了.
另外我教你一个新姿势:

https://gist.github.com/Enkows/9d9c02a31c838481df55

现在还在拿 异步 /callback 来喷 nodejs 的多半都是没有深入了解 js 的, 不过也怪有些 node 粉只懂得说异步高性能
chairuosen
2015-12-12 17:21:20 +08:00
@kjkjkljkj 恩,这是 ES7 了,还有 ES6 的方法我也知道。。。回帖时不清楚显示异步是这个而已。。
CMGS
2015-12-12 17:22:34 +08:00
我就看看戏。。。
觉得 node 牛逼的,出门左拐去看 node 源码再来说
觉得 python 傻逼的, pypy 焦作人
另外我是 rust 党, php 才是世界上最好的语言噢耶!
otakustay
2015-12-12 17:27:25 +08:00
来表演一下正确的黑法:

1. 显式异步没有错,错在 Node 从这么多异步方案中选择了最糟糕的单 callback 模型,而 Node 之初社区已经在讨论 Promise 了
2. 拜第 1 点所赐, Node 的异常流非常坑爹,必须手动判断异常存在并且手动编码完成 rethrow ,一个语言在异常上没有自动 rethrow 的机制会让很多异常被淹没或者产生更多不确定性的负面影响
3. 官方模块抽象程度不够,如 http 和 https 竟然分了 2 个独立模块
4. 官方 API 命名不一致, fs.readFile 是对的,那谁告诉我 fs.readdir 为啥全小写了
5. 没有正确区分标准库和运行时,明年 Charkra Node 肯定要在这事上遇到不小有阻碍
6. 对 ES 新语法的支持太慢( V8 :这个锅我来背)
7. 纯计算上对多核支持太差( V8 :这个锅还是我背)
8. 一个 node_modules 文件夹死活不能配置,还叫着 npm 以后要连前端的包也能一起管理,所以未来前端也叫 node 了,生命的大和谐

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/242988

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX