z****g 发帖数: 75 | 1 1. 简单好用,上手快,特别是对熟悉javascript的FE programmers
几行程序就能搞个HTTP server出来,做个原型真是很快、方便
想想如有用C++,Java这得多麻烦
这是很多startup选择nodejs的原因
2. 性能还行
异步编程,做request processing,这个效率比起 one thread per request(TPR)的
model
效率提高很多。
这种单线程实现 10k/sec 的request processing很轻松
其实目前所有的高性能network server都是异步实现的,只是用C++/Java实现一直很
繁琐
因为没有比较好用的lib来支持。在牛x公司里这样的c++库一直是有的, 只是多数人无
法接触到。
这个估计是ebay,linkedin之类公司选择nodejs的主要考虑。
这些公司显然内部没有牛x的在Java/c++上的异步库
Facebook自己有一个还凑合的异步库,所以它们不需要
后来linux kernel thread 性能提高以后,TPR model实现10k/sec的处理速度也行了
但是由于每个thread的stack需要很多RAM,所以总体还是比不上异步的效率高
3 但是nodejs是最终选择吗?
显然不是,因为这个破语言是动态的,大程序管理很困难,长久是没戏的
也就是一个fad |
g*****g 发帖数: 34805 | 2 你不懂就别瞎说。netty存在N年了,我老多年前就产品上做到单机20k/sec。
【在 z****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 1. 简单好用,上手快,特别是对熟悉javascript的FE programmers : 几行程序就能搞个HTTP server出来,做个原型真是很快、方便 : 想想如有用C++,Java这得多麻烦 : 这是很多startup选择nodejs的原因 : 2. 性能还行 : 异步编程,做request processing,这个效率比起 one thread per request(TPR)的 : model : 效率提高很多。 : 这种单线程实现 10k/sec 的request processing很轻松 : 其实目前所有的高性能network server都是异步实现的,只是用C++/Java实现一直很
|
z****g 发帖数: 75 | 3 类似的东西一直有,但是不好用,就这么简单
单机20k?现在单线程都能到1M/sec
【在 g*****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 你不懂就别瞎说。netty存在N年了,我老多年前就产品上做到单机20k/sec。
|
A*****i 发帖数: 3587 | 4 最大的优势就是好用,不到10行代码的一个js文件就能弄个简单的server端
npm社区也是个原因,基本上你能想到的python, java工具npm上都有对应的 |
p*****2 发帖数: 21240 | 5
顶这个。做东西确实是飞快。
【在 A*****i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 最大的优势就是好用,不到10行代码的一个js文件就能弄个简单的server端 : npm社区也是个原因,基本上你能想到的python, java工具npm上都有对应的
|
g*****g 发帖数: 34805 | 6 Netty是著名的开源架构,最近的vert.x也是基于Netty, 也就你才能说出什么java一直
没有好用的异步架构这种说法。
【在 z****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 类似的东西一直有,但是不好用,就这么简单 : 单机20k?现在单线程都能到1M/sec
|
z****g 发帖数: 75 | 7 好用不好用是个相对的概念,你觉得好用,就好用得了
nodejs更容易些吧
【在 g*****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : Netty是著名的开源架构,最近的vert.x也是基于Netty, 也就你才能说出什么java一直 : 没有好用的异步架构这种说法。
|
z****e 发帖数: 54598 | 8 最后一句结论正确
前台程序员做好换老婆的准备
dart很有可能取而代之 |
z****e 发帖数: 54598 | 9 vert.x更简单
至少对于ruby, python程序员来说
简单很多
dart也比js更简单
【在 z****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 好用不好用是个相对的概念,你觉得好用,就好用得了 : nodejs更容易些吧
|
z****e 发帖数: 54598 | 10 nodejs不仅仅是http server
可以是随便一个协议和端口的server
当然它本身只做了很简单的封装
你用socket写其实也没差多少
加点单/多线程管理的话
所以很多公司用它来作web service的server
不过这个要说是革命性的就扯淡了
其他语言抄起来太容易了
现在主要差别集中在v8上
很多公司图这个东西快,所以很大一部分不是冲着nodejs去的
而是冲着v8去的
所以dart有戏,因为dart比v8更快
vert.x也比node.js更快
要快么?我们这边有另外两个更快的
欢迎做测试啊
【在 z****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 1. 简单好用,上手快,特别是对熟悉javascript的FE programmers : 几行程序就能搞个HTTP server出来,做个原型真是很快、方便 : 想想如有用C++,Java这得多麻烦 : 这是很多startup选择nodejs的原因 : 2. 性能还行 : 异步编程,做request processing,这个效率比起 one thread per request(TPR)的 : model : 效率提高很多。 : 这种单线程实现 10k/sec 的request processing很轻松 : 其实目前所有的高性能network server都是异步实现的,只是用C++/Java实现一直很
|
|
|
z****e 发帖数: 54598 | 11 fb有自己的tornado
性能上能够满足需要了
所以就不换了
我之前贴过
只要是其他语言的这种web server,跟nodejs对比的问题
在stackoverflow上,都是一边倒地支持非js一方
无论是ruby还是python
群众对js的厌恶之情溢于言表啊
所以vert.x和dart出来拯救众生了 |
z****e 发帖数: 54598 | 12 vert.x可以直接运行python和java还有ruby代码
一样10行不到代码就可以跑一个server
而且可以让各种语言自己写modules
然后直接插入就可以用,同时效率超过nodejs,超过用了v8的nodejs
最后,这些语言设计都要超过js
【在 A*****i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 最大的优势就是好用,不到10行代码的一个js文件就能弄个简单的server端 : npm社区也是个原因,基本上你能想到的python, java工具npm上都有对应的
|
c****f 发帖数: 1102 | 13 tornado 比nodejs好写多了 问题是 python的异步lib太少 |
d********g 发帖数: 10550 | 14 1月23日Python党要大闹LinkedIn总部举行洗脑集会支持BDFL折腾原生异步轮子的决定:
http://www.meetup.com/silicon-valley-python/events/138635282/
【在 c****f 的大作中提到】![](/moin_static193/solenoid/img/up.png) : tornado 比nodejs好写多了 问题是 python的异步lib太少
|
v*****r 发帖数: 2325 | 15 agree. friendly to Front engineers is key.
Netty/vert.x claim to have great features, maybe a little late to introduce
asynchronous io & and make them available to js programmers.
"powered by netty/vert.x" 很逊色啊!
【在 z****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 1. 简单好用,上手快,特别是对熟悉javascript的FE programmers : 几行程序就能搞个HTTP server出来,做个原型真是很快、方便 : 想想如有用C++,Java这得多麻烦 : 这是很多startup选择nodejs的原因 : 2. 性能还行 : 异步编程,做request processing,这个效率比起 one thread per request(TPR)的 : model : 效率提高很多。 : 这种单线程实现 10k/sec 的request processing很轻松 : 其实目前所有的高性能network server都是异步实现的,只是用C++/Java实现一直很
|
l**********n 发帖数: 8443 | 16 nodejs是因为流行是因为javascript,整个node都是event-based。not just the http
server. event-based programming is so natural for front end development. |
q*c 发帖数: 9453 | 17
实际上, 对于快速响应的系统, nodejs 效率反而低下。 这是有 bench mark 的。
nodejs 无非是对特定的系统, 比如聊天系统, 大量的空闲连接少量的活跃连接, 非
常合适。
【在 z****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 1. 简单好用,上手快,特别是对熟悉javascript的FE programmers : 几行程序就能搞个HTTP server出来,做个原型真是很快、方便 : 想想如有用C++,Java这得多麻烦 : 这是很多startup选择nodejs的原因 : 2. 性能还行 : 异步编程,做request processing,这个效率比起 one thread per request(TPR)的 : model : 效率提高很多。 : 这种单线程实现 10k/sec 的request processing很轻松 : 其实目前所有的高性能network server都是异步实现的,只是用C++/Java实现一直很
|
g*****g 发帖数: 34805 | 18 嗯,上次那个无数个框架的benchmark,就是简单的CRUD,一堆框架秒了nodejs。
【在 q*c 的大作中提到】![](/moin_static193/solenoid/img/up.png) : : 实际上, 对于快速响应的系统, nodejs 效率反而低下。 这是有 bench mark 的。 : nodejs 无非是对特定的系统, 比如聊天系统, 大量的空闲连接少量的活跃连接, 非 : 常合适。
|
K****n 发帖数: 5970 | 19 真在startup的人不就是拿过来玩几次爽一下,下次什么流行再上什么。虽然能scale很
重要,但是都async了就可以了,用什么language和framework不重要。
等真说business serious了,那也是时候可以招些小弟,给点儿股票,让他们费神维护
了,什么动态语言不好维护就是别人的问题了。自己vest了股票直接下一家startup,
什么新什么好玩再爽接着爽。没错吧 |
p*****2 发帖数: 21240 | 20
大牛说的太赞了。我知道一个神牛,就是被SB扔凳子那个。人家就用Node.js, 别人问
为什么用呀?人家直接说,因为我没用过,别人啥话也不说了。
【在 K****n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 真在startup的人不就是拿过来玩几次爽一下,下次什么流行再上什么。虽然能scale很 : 重要,但是都async了就可以了,用什么language和framework不重要。 : 等真说business serious了,那也是时候可以招些小弟,给点儿股票,让他们费神维护 : 了,什么动态语言不好维护就是别人的问题了。自己vest了股票直接下一家startup, : 什么新什么好玩再爽接着爽。没错吧
|
|
|
z****e 发帖数: 54598 | 21 没错啊
所以100个startup99个在马路上混
这也没错吧?
【在 K****n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 真在startup的人不就是拿过来玩几次爽一下,下次什么流行再上什么。虽然能scale很 : 重要,但是都async了就可以了,用什么language和framework不重要。 : 等真说business serious了,那也是时候可以招些小弟,给点儿股票,让他们费神维护 : 了,什么动态语言不好维护就是别人的问题了。自己vest了股票直接下一家startup, : 什么新什么好玩再爽接着爽。没错吧
|
q*c 发帖数: 9453 | 22 只不过大家都只看那个成功的例子,然后以此为论据得到结论, lol
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 没错啊 : 所以100个startup99个在马路上混 : 这也没错吧?
|
g*****g 发帖数: 34805 | 23 您老就是那一个呀,这个东西还是得有眼光。
【在 q*c 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 只不过大家都只看那个成功的例子,然后以此为论据得到结论, lol
|
q*c 发帖数: 9453 | 24 和早年的运气牛逼人比还是秒跪了。 这玩意我觉的和 startup 一样, 眼光占1%。
99% 的因素都是运气。 我邻居加入 startup, 分析下来有两个选择, 他仔细继续分析
, 去了他觉得有戏的那个, 结果三个月后另外一个就上市了。 嘿嘿。 毫无办法。
我一直认为, 小钱靠拼, 大钱靠命。 古人怎么说的来着? 书到今生读已迟。 我看
挣钱也是一个道理啊。
【在 g*****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 您老就是那一个呀,这个东西还是得有眼光。
|
j********x 发帖数: 2330 | 25 node是前端工程师造后端工程师的反的旗号
成不成要看机会
【在 z****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 1. 简单好用,上手快,特别是对熟悉javascript的FE programmers : 几行程序就能搞个HTTP server出来,做个原型真是很快、方便 : 想想如有用C++,Java这得多麻烦 : 这是很多startup选择nodejs的原因 : 2. 性能还行 : 异步编程,做request processing,这个效率比起 one thread per request(TPR)的 : model : 效率提高很多。 : 这种单线程实现 10k/sec 的request processing很轻松 : 其实目前所有的高性能network server都是异步实现的,只是用C++/Java实现一直很
|
z****e 发帖数: 54598 | 26 后端不可能被造反
因为后端跟前端开发模式完全两回事
前端动不动重写一遍
后端十年代码只加不改的案例太多了
随便一个大型企业都是如此
当然会重构,但是重构跟重做毕竟不是一回事
重构是向完美进军,而一旦到了完美的境界
重构就变得毫无必要,java已经把后端做到了接近完美
nodejs到现在,连个大并发都无法解决
这搞p啊,startup马路上混的无所谓,反正今天挂了,明天换一条马路继续骗
无非就那么几个人,那么几条枪,就跟游击队一样
但是企业是正规军,今天申请破产了
失业率直接拉上去一到两个百分点,连当地政府都会被惊动
动用政治手段来挽救大企业的案例不要太多
所以后端没有造反这一说,只有改良
而且后端对于每一个程序员都会进行教育
think big,想长远一点,不要只想一两年后
想十年以后,你这个东西还会怎样
比如今天,我们讨论时候就否决了一个google的plugin
因为google仅承诺这个链接在2015年前有效,那2015年之后呢?
startup一般想不了这么远,直接拿来就用了,但是企业不一样
企业尤其是大企业会告诉你,我们不在乎这点眼前的蝇头小利
我们要做十年二十年的系统,这个东西如果有这个risk,你就不要用了
然后我建议,我们用java做,因为java平台非常stable
而且我们可以down到所有我们需要的lib,并且理论上java程序员可以维护这些代码
所以所有人都一致同意,用java,不要js,因为js不稳定,我们不是小企业
没有必要在马路上混,我们愿意用今天的投入换取明天后天以及十年以后的回报
这也是为什么这家企业能做到股票成分股的原因
做java的大部分都经过这个训练
所以这个思维方式就不一样,根本不存在造反的说法
【在 j********x 的大作中提到】![](/moin_static193/solenoid/img/up.png) : node是前端工程师造后端工程师的反的旗号 : 成不成要看机会
|
z****e 发帖数: 54598 | 27 保底靠拼,发财靠命
我的底线就是在大公司混一辈子
但是平常我自己也会折腾
【在 q*c 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 和早年的运气牛逼人比还是秒跪了。 这玩意我觉的和 startup 一样, 眼光占1%。 : 99% 的因素都是运气。 我邻居加入 startup, 分析下来有两个选择, 他仔细继续分析 : , 去了他觉得有戏的那个, 结果三个月后另外一个就上市了。 嘿嘿。 毫无办法。 : 我一直认为, 小钱靠拼, 大钱靠命。 古人怎么说的来着? 书到今生读已迟。 我看 : 挣钱也是一个道理啊。
|
j********x 发帖数: 2330 | 28 就跟说男人跟男人不能搞,因为男人没有b。。。
革了命就是压缩后端的空间,后端当然都存在。
你这脑子纯粹就是个灌水的料,谈设计逻辑啥的都是笑话。。。
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 后端不可能被造反 : 因为后端跟前端开发模式完全两回事 : 前端动不动重写一遍 : 后端十年代码只加不改的案例太多了 : 随便一个大型企业都是如此 : 当然会重构,但是重构跟重做毕竟不是一回事 : 重构是向完美进军,而一旦到了完美的境界 : 重构就变得毫无必要,java已经把后端做到了接近完美 : nodejs到现在,连个大并发都无法解决 : 这搞p啊,startup马路上混的无所谓,反正今天挂了,明天换一条马路继续骗
|
z****e 发帖数: 54598 | 29 你对backend没有概念
【在 j********x 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 就跟说男人跟男人不能搞,因为男人没有b。。。 : 革了命就是压缩后端的空间,后端当然都存在。 : 你这脑子纯粹就是个灌水的料,谈设计逻辑啥的都是笑话。。。
|