我为什么不看好node.js?

福嘞娃 发布于 08/30 12:05
阅读 5K+
收藏 0

首先第一:一开始就犯了N多错误,并且无力回天

Node 之父 Ryan Dahl 近日在柏林 JS 大会上发表了主题演讲,这也是 Ryan Dahl 做的第二次关于 JS 的公开演讲,第一次是在 2009 年,当时是宣布 Node 项目诞生,而这一次,演讲主题却是 “Design Mistakes in Node” 。

目前网络上还没有该演讲的相关视频,仅公布了 PPT。根据 PPT 内容可以看到,Ryan Dahl 在前半段主要讲述了过去他在设计 Node 时犯的一些错误,包括安全性、构建系统、package.json、node_modules、index.js 等等,并表示 Node 存在的种种不足导致有许多严重 bug 问题且不可回避。 

第二:单线程,异步、无协程

node.js并没有像php这种有swoole多线程的扩展,并且异步回调地狱容易割裂代码,引来项目的不可控,并且也没有当下最流行的协程支持,npm的包80%都是重复的,并且都是前端包,对后端的包屈指可数,并且很多框架包只对该框架支持,两个项目要装两次。

第三:没有任何一家企业把node.js做为主力开发语言,阿里也只是做个前端渲染。

第四:定位尴尬,在web后端领域已被java、php占领多年,更有Golang\Python等这些语言的存在,要在web后端分一杯羹没什么优势可言,前端领域也不一定需要node.js,处在一个可有可无的状态

加载中
3
宇润
宇润

来锤一下,swoole是多进程+协程,而不是多线程

1
angelboy
angelboy

前端可以用用,node后端真心不行,好多npm包也是前端的人写的,要改真特么费劲
js两大害,call 和 apply ,传值混乱的一比

左华栋
左华栋
回复 @sxgkwei : 我们目前用 nest.js 框架,还比较好用
angelboy
angelboy
回复 @sxgkwei : 是,就是说js这玩意坑逼呢,一个对象莫名其妙的多了那么多属性,不知道哪里来的
sxgkwei
sxgkwei
call 和 apply 是 js 标准语法自带的吧。嘿嘿,js 早就挖好了坑等你来跳
1
yak
yak

MFC  ATL  Winform WPF你看好哪一个?

1
张亦俊
张亦俊

你永远不知道用node调度复杂IO型应用的爽快感,虽说事实上是libuv的功劳

1
l
leeyinghui1107

我现在就在用node做项目,用起来很顺手,从后台数据采集、报警控制、restful server 、web server,全部都是nodejs实现,好处是一个平台全搞定。

1、说回调地狱的,都是根本没用过的,不予评价。

2、依赖问题,确实比较麻烦,不过npm上的包包很多,带来的便利更多。

3、很多底层通信模块,包括socket、serial的通信效率很高,

4、单线程带来的资源占用非常低

 

缺点主要还是代码保护问题

5、服务、应用用pm2封装后,可靠性非常棒。

0
福嘞娃
福嘞娃

这里是我用es2框架与阿里的node框架egg.js做的IO测试

测试结果egg.js的RPS只有es2的十分之一

https://www.oschina.net/question/2827956_2280071

0
angelboy
angelboy

对于一个写过node.js、go、php、java后端的人来说,我顶你的观点,node做后端最多也就做做脚手架或者一次性任务,还得配上ts用java面向对象的方式写,用ts构建一些小restful项目也还凑合,但是不能是大项目。二来基本上没有什么后端node的人,招聘是很大问题

0
letwang
letwang

PHP 多进程控制内置扩展 PCNTL

PHP 多线程控制内置扩展 pthreads

市面上会点皮毛Node的前端 好像10K起步了。

0
树上的风筝
树上的风筝

我觉的一门语言的发展,看一些大公司的推动了。如果很多大公司像阿里和腾讯等公司推动这们语言,估计会发展的很好

0
dozier
dozier

亲爹觉得儿子生的有点丑,就看有没有干爹们来养活了,我是c++的程序,web的话使用nodejs让我觉得很方便。

返回顶部
顶部