gistfile1.txt
nodejs --> V8 --> C++ 解释 --> 编译机器码
java --> JVM C++ 解释 --> 编译机器码
NodeJS适合运用在高并发、I/O密集、少量业务逻辑的场景
https ://segmentfault.com/q/1010000002958599
理论上, 你可以做 java 做的任何事情. 实际上, js 的数字和字符并没有具体设置, 占用的内存更多,
在进行计算的时候, 没有 java 高效. 而 java 虽然做了具体的数字和字符区分,
但是需要虚拟机和垃圾内存检测, 性能上要远低于 C++ 和 C.
写同步会带来另一个麻烦,node都是单线程的,同步容易引起阻塞,node在大并发下的优势就没了
1、为什么nodejs为什么只适合做中间层?
不妨换个思维,nodejs去做业务层、数据层会怎样?我用纯nodejs做过应用,发现业务逻辑层太难写了,
由于nodejs天生的语言缺陷,复杂的逻辑在碰到一堆callback的时候代码简直没法看,
即使用了promise之类的库,也没法完全弥补这个缺陷。
大型的网站架构非常注重可维护性,代码可读性低,可维护性自然低了。
2、为什么撼动不了java的地位?
两者的定位本来就不同,为什么要取代呢?两个语言存在不一定要是你死我活的,
大型it项目往往是多语言结合的,取长补短,复杂的业务逻辑用java来做,用nodejs处理一些路由映射和参数校验,
前端工程师也能部分参与后台工程师的工作,这样项目可扩展性其实更好。
---jackqin
https ://www.zhihu.com/question/21667825
nodejs更适应敏捷开发
nodejs开发速度更快,维护成本低
nodejs运行更快
但是:
能招到的会node的人相比会java的少太多
java对开发者技能要求更低
java的库和框架更成熟
提供API服务,用NodeJS 实现RESTFull API是很容易,用express MVC框架即可
安全性、稳定性和可维护性主要体现在开发者的身上了
nodejs目前还是比较适合逻辑不复杂的网络应用
http ://ourjs.com/detail/532f0650c911679a2800000a
降低50%的页面加载时间
我们的整个医药互联网的业务都构建在Node.JS+Express+Swagger+ReactJS基础上,性能上从来没有成为问题。
但是JS自身的几个特性导致了不少坑,比如:js中没有整型数,所有的数字都是浮点数,
然后,对没有经验的开发者就常常遇到浮点数精度的问题了。--八剑 雨诺股份