p*****2 发帖数: 21240 | |
m******t 发帖数: 635 | 2 大牛不要再挖坑了,:)
【在 p*****2 的大作中提到】 : 以后就是他了
|
p*****2 发帖数: 21240 | 3
真不是挖坑。不过我发现一个问题。用Meteor的话,web开发很爽,可是mobile咋办呢
?
【在 m******t 的大作中提到】 : 大牛不要再挖坑了,:)
|
p*****2 发帖数: 21240 | 4 有没有大牛给评论一下这句话
In Meteor, your server code runs in a single thread per request, not in the
asynchronous callback style typical of Node. We find the linear execution
model a better fit for the typical server code in a Meteor application. |
p*****2 发帖数: 21240 | 5
the
感觉有了这个Node就更牛逼了吧?
【在 p*****2 的大作中提到】 : 有没有大牛给评论一下这句话 : In Meteor, your server code runs in a single thread per request, not in the : asynchronous callback style typical of Node. We find the linear execution : model a better fit for the typical server code in a Meteor application.
|
d*******r 发帖数: 3299 | 6 我以前贴过 Meteor.js 和 opalang,好像都没人理。
不知道 Meteor.js 发展得如何了。 |
p*****2 发帖数: 21240 | 7
大牛搞到什么程度呀?我感觉可以上了。
【在 d*******r 的大作中提到】 : 我以前贴过 Meteor.js 和 opalang,好像都没人理。 : 不知道 Meteor.js 发展得如何了。
|
P********l 发帖数: 452 | 8 http://stackoverflow.com/questions/11771487/meteor-threading-st
里面提到了node fibers. 好牛逼.
https://github.com/laverdet/node-fibers
the
【在 p*****2 的大作中提到】 : 有没有大牛给评论一下这句话 : In Meteor, your server code runs in a single thread per request, not in the : asynchronous callback style typical of Node. We find the linear execution : model a better fit for the typical server code in a Meteor application.
|
d*******r 发帖数: 3299 | 9 不懂呀... Opa之前玩了一下,发现没人用就放弃了
【在 p*****2 的大作中提到】 : : 大牛搞到什么程度呀?我感觉可以上了。
|
b***e 发帖数: 1419 | 10 每一个request handling起一个child process? That'd remove many of the
problems, but not sure about performance. Need to watch if someone can get
a benchmark product on it.
the
【在 p*****2 的大作中提到】 : 有没有大牛给评论一下这句话 : In Meteor, your server code runs in a single thread per request, not in the : asynchronous callback style typical of Node. We find the linear execution : model a better fit for the typical server code in a Meteor application.
|
|
|
b***e 发帖数: 1419 | 11 现在有了native support for generators, Fiber可以休矣。各路async lib也都可以
洗洗睡了。
多谢京二指点,我今天试了一下0.11.9里的generators,的确是爽多了。看好
CoffeeScript跟进function* syntax。然后天下可以大同了。Generators for event-
driven加上native support for function closures那个表达力不是一般的
programming language可以望其项背的。这下子call/cc有了,跟Lisp相比大概就差一
个宏了。
【在 P********l 的大作中提到】 : http://stackoverflow.com/questions/11771487/meteor-threading-st : 里面提到了node fibers. 好牛逼. : https://github.com/laverdet/node-fibers : : the
|
n****1 发帖数: 1136 | 12 请问以下, js里面有没有办法实现typeclass之类的东西呢?
【在 b***e 的大作中提到】 : 现在有了native support for generators, Fiber可以休矣。各路async lib也都可以 : 洗洗睡了。 : 多谢京二指点,我今天试了一下0.11.9里的generators,的确是爽多了。看好 : CoffeeScript跟进function* syntax。然后天下可以大同了。Generators for event- : driven加上native support for function closures那个表达力不是一般的 : programming language可以望其项背的。这下子call/cc有了,跟Lisp相比大概就差一 : 个宏了。
|
n****1 发帖数: 1136 | 13 有点替python不值, 被js炒了冷饭. js有的python早有了, 而且python的lexical
scope要比js更健壮. |
p*****2 发帖数: 21240 | 14
说这话就外行了。
【在 n****1 的大作中提到】 : 有点替python不值, 被js炒了冷饭. js有的python早有了, 而且python的lexical : scope要比js更健壮.
|
p*****2 发帖数: 21240 | 15
get
不是process。貌似用fiber模拟的thread. 所以还是在一个process里面。
【在 b***e 的大作中提到】 : 每一个request handling起一个child process? That'd remove many of the : problems, but not sure about performance. Need to watch if someone can get : a benchmark product on it. : : the
|
p*****2 发帖数: 21240 | 16
那大牛用什么架构呢?感觉可能MEAN更靠谱些。不过如果玩玩,或者做个小项目,
Meteor优势很大呀。很容易学和用。
【在 d*******r 的大作中提到】 : 不懂呀... Opa之前玩了一下,发现没人用就放弃了
|
p*****2 发帖数: 21240 | 17
啊。我还没玩过呢。等正式版出来向你请教了。
【在 b***e 的大作中提到】 : 现在有了native support for generators, Fiber可以休矣。各路async lib也都可以 : 洗洗睡了。 : 多谢京二指点,我今天试了一下0.11.9里的generators,的确是爽多了。看好 : CoffeeScript跟进function* syntax。然后天下可以大同了。Generators for event- : driven加上native support for function closures那个表达力不是一般的 : programming language可以望其项背的。这下子call/cc有了,跟Lisp相比大概就差一 : 个宏了。
|
n****1 发帖数: 1136 | 18 zkss 洗耳恭听
【在 p*****2 的大作中提到】 : : 啊。我还没玩过呢。等正式版出来向你请教了。
|
b***e 发帖数: 1419 | 19 还是要等正版。昨天我试出三个bug 。连parser都有问题。
【在 p*****2 的大作中提到】 : : 啊。我还没玩过呢。等正式版出来向你请教了。
|
p*****2 发帖数: 21240 | 20
多谢大牛feedback,一直没试就是怕不稳定。
【在 b***e 的大作中提到】 : 还是要等正版。昨天我试出三个bug 。连parser都有问题。
|
|
|
p*****2 发帖数: 21240 | 21
我简单说几点python没有的吧
1. pure async
2. performance
3. frontend
4. JSON
5. MongoDB
6. Coffeescript
【在 n****1 的大作中提到】 : zkss 洗耳恭听
|
n****1 发帖数: 1136 | 22 我说的是语法上的,像with/yield/nonlocal/"generator expression"之类的。 你跟
我谈实现上的...
要是python哪天能compile成js了, 可以同时享受两种语言的实现上的优势了,你还能
说啥?
还有, 我想破脑袋也没看出来pure async怎么会是优势?
【在 p*****2 的大作中提到】 : : 我简单说几点python没有的吧 : 1. pure async : 2. performance : 3. frontend : 4. JSON : 5. MongoDB : 6. Coffeescript
|
p*****2 发帖数: 21240 | 23
你要是谈语法上的,一下子就比goodbug矮了一截。
python compile成js了,那不就是coffeescript吗?
pure async的优势goodbug都说了好几次了。
【在 n****1 的大作中提到】 : 我说的是语法上的,像with/yield/nonlocal/"generator expression"之类的。 你跟 : 我谈实现上的... : 要是python哪天能compile成js了, 可以同时享受两种语言的实现上的优势了,你还能 : 说啥? : 还有, 我想破脑袋也没看出来pure async怎么会是优势?
|
d*******r 发帖数: 3299 | 24 弱弱的问一下,看来generator那一套yeild什么的,是最好的single thread
concurrent pattern? 这个不是Python早就有了吗? |
p*****2 发帖数: 21240 | 25
没有很深研究过,但是我感觉Go的那一套更牛逼。
Node也早有了,这个是官方的。
【在 d*******r 的大作中提到】 : 弱弱的问一下,看来generator那一套yeild什么的,是最好的single thread : concurrent pattern? 这个不是Python早就有了吗?
|
n****1 发帖数: 1136 | 26 我又不是参加啥武林大会,高一截矮一截无所谓. 如果大家能互相compile, 语法就成
了最重要的判断标准。
python可不仅仅是coffeescript, python的非网络类库是js没法比的. 如果能编译成
js, python两边的库都能用, 既可以web开发也可以做其他的, coffeescript能么?
懒得去翻他的旧帖子了,但如果async/callback是优势,为啥js出了个yield大家就欢
呼雀跃?
【在 p*****2 的大作中提到】 : : 没有很深研究过,但是我感觉Go的那一套更牛逼。 : Node也早有了,这个是官方的。
|
p*****2 发帖数: 21240 | 27
你这个又外行了。你没理解纯的意思。很奇怪你平时工作是用什么语言的?
【在 n****1 的大作中提到】 : 我又不是参加啥武林大会,高一截矮一截无所谓. 如果大家能互相compile, 语法就成 : 了最重要的判断标准。 : python可不仅仅是coffeescript, python的非网络类库是js没法比的. 如果能编译成 : js, python两边的库都能用, 既可以web开发也可以做其他的, coffeescript能么? : 懒得去翻他的旧帖子了,但如果async/callback是优势,为啥js出了个yield大家就欢 : 呼雀跃?
|
n****1 发帖数: 1136 | 28 你说的是与外界的IO是pure nonblocking IO吧, 这个是好东西. python twist也是这
样, 可惜标准库不是.
可是nonblock IO指的是实现, sync/async所指的是接口api, 两者有联系,但nonblock
IO也可以提供sync api, 就像yield这样的. 你用"pure async"这样的词非常容易误导.
async api is terrible to work with, you disagree with that?
"Node也早有了"能给个reference么? 人家python是2001年就有了, 参见 http://www.python.org/dev/peps/pep-0255/
【在 p*****2 的大作中提到】 : : 你这个又外行了。你没理解纯的意思。很奇怪你平时工作是用什么语言的?
|
p*****2 发帖数: 21240 | 29
nonblock
导.
能不能先说说你平时用什么语言呀?给我点context先。你是用python的吗?
【在 n****1 的大作中提到】 : 你说的是与外界的IO是pure nonblocking IO吧, 这个是好东西. python twist也是这 : 样, 可惜标准库不是. : 可是nonblock IO指的是实现, sync/async所指的是接口api, 两者有联系,但nonblock : IO也可以提供sync api, 就像yield这样的. 你用"pure async"这样的词非常容易误导. : async api is terrible to work with, you disagree with that? : "Node也早有了"能给个reference么? 人家python是2001年就有了, 参见 http://www.python.org/dev/peps/pep-0255/
|
n****1 发帖数: 1136 | 30 我不做web, 平时主要用python/c, 但runtime debug非常痛苦. 业余时间java/go/
haskell都会折腾.
【在 p*****2 的大作中提到】 : : nonblock : 导. : 能不能先说说你平时用什么语言呀?给我点context先。你是用python的吗?
|
|
|
p*****2 发帖数: 21240 | 31
好吧。那先说说你下边这段话吧。你说的这个其实Clojurescript就可以做了,而且比
python牛逼多了。JVM的库的数量和质量跟python比,也没有什么不服气的吧?目前来
说,JS前端的统治力也没什么好质疑的吧?后端来说,优势是一个综合性的。不仅仅是
语法什么的比较。JS如果从语法来说确实没有优势,我也不喜欢JS的语法。
python可不仅仅是coffeescript, python的非网络类库是js没法比的. 如果能编译成
js, python两边的库都能用, 既可以web开发也可以做其他的, coffeescript能么?
【在 n****1 的大作中提到】 : 我不做web, 平时主要用python/c, 但runtime debug非常痛苦. 业余时间java/go/ : haskell都会折腾.
|
n****1 发帖数: 1136 | 32 Are you kidding me? You mean clojurescript can compile existing jvm bytecode
, like xxx.jar file, into javascript?
Academia的人用python的多, 科学计算类库也多, 不是java能比的, 虽然我更喜欢java
一点.
【在 p*****2 的大作中提到】 : : 好吧。那先说说你下边这段话吧。你说的这个其实Clojurescript就可以做了,而且比 : python牛逼多了。JVM的库的数量和质量跟python比,也没有什么不服气的吧?目前来 : 说,JS前端的统治力也没什么好质疑的吧?后端来说,优势是一个综合性的。不仅仅是 : 语法什么的比较。JS如果从语法来说确实没有优势,我也不喜欢JS的语法。 : python可不仅仅是coffeescript, python的非网络类库是js没法比的. 如果能编译成 : js, python两边的库都能用, 既可以web开发也可以做其他的, coffeescript能么?
|
p*****2 发帖数: 21240 | 33
file
java
可能我理解错的你的意思。你的意思是xxx.py都可以compile成javascript?
【在 n****1 的大作中提到】 : Are you kidding me? You mean clojurescript can compile existing jvm bytecode : , like xxx.jar file, into javascript? : Academia的人用python的多, 科学计算类库也多, 不是java能比的, 虽然我更喜欢java : 一点.
|
n****1 发帖数: 1136 | 34 无语了
xxx.py就是源文件, 也是库. python和javascript一样, 没有bytecode intermediate.
我说把python编译成js, 不编译xxx.py我编啥啊?
你到底用过python和java没?
【在 p*****2 的大作中提到】 : : file : java : 可能我理解错的你的意思。你的意思是xxx.py都可以compile成javascript?
|
p*****2 发帖数: 21240 | 35
intermediate.
编译成js就能在node上run?
【在 n****1 的大作中提到】 : 无语了 : xxx.py就是源文件, 也是库. python和javascript一样, 没有bytecode intermediate. : 我说把python编译成js, 不编译xxx.py我编啥啊? : 你到底用过python和java没?
|
n****1 发帖数: 1136 | 36 大牛, 你讨论的时候能具体一点么? 每次就那么一行, 提个反问句,我很崩溃啊.
能不能被v8执行那个是编译器的责任. 编出来的js里面要是有语法错误肯定不能运行,
可是语法正确的话, 有啥理由运行不了呢?
你最好详细一点,提出具体的"运行不了"的可能原因. 你让我证明一定可以跑, 这不是
消遣我么
【在 p*****2 的大作中提到】 : : intermediate. : 编译成js就能在node上run?
|
n****1 发帖数: 1136 | 37 你的问题等价于: 用notepad写个javascript脚本, 就一定能在V8上跑么?
这个问题好复杂哦, 有一大堆原因能让它运行不了: 内存不够, 机器有bug, etc
我只能回答, 如果你写的脚本是没有错误,那运行是可能的.
保证py->js没有错误是编译器的责任, 其他的啥都保证不了.
【在 p*****2 的大作中提到】 : : intermediate. : 编译成js就能在node上run?
|
p*****2 发帖数: 21240 | 38
,
你如果py里面调了python的库,编译成js怎么在node上跑?
【在 n****1 的大作中提到】 : 大牛, 你讨论的时候能具体一点么? 每次就那么一行, 提个反问句,我很崩溃啊. : 能不能被v8执行那个是编译器的责任. 编出来的js里面要是有语法错误肯定不能运行, : 可是语法正确的话, 有啥理由运行不了呢? : 你最好详细一点,提出具体的"运行不了"的可能原因. 你让我证明一定可以跑, 这不是 : 消遣我么
|
p*****2 发帖数: 21240 | 39
语法没有错误就能运行吗?你也是搞C的,地层的runtime都不一样怎么跑呀。
【在 n****1 的大作中提到】 : 你的问题等价于: 用notepad写个javascript脚本, 就一定能在V8上跑么? : 这个问题好复杂哦, 有一大堆原因能让它运行不了: 内存不够, 机器有bug, etc : 我只能回答, 如果你写的脚本是没有错误,那运行是可能的. : 保证py->js没有错误是编译器的责任, 其他的啥都保证不了.
|
n****1 发帖数: 1136 | 40 连着所有库一起编译成js啊, 最后的runtime已经没有python的影子了. 难道还有其他
的编译方式么?
难道在c语言里你不会写static linked executable么? 而且连C都能用emscripten编译
成js运行,有啥runtime问题?
【在 p*****2 的大作中提到】 : : 语法没有错误就能运行吗?你也是搞C的,地层的runtime都不一样怎么跑呀。
|
|
|
p*****2 发帖数: 21240 | 41
这个又表现出了你不懂什么是纯异步。而且你这么搞只是一个设想而已,实现的可行性
有多大?连同一种语言同步库都不能用于异步,更不要说是不同的语言了。
【在 n****1 的大作中提到】 : 连着所有库一起编译成js啊, 最后的runtime已经没有python的影子了. 难道还有其他 : 的编译方式么? : 难道在c语言里你不会写static linked executable么? 而且连C都能用emscripten编译 : 成js运行,有啥runtime问题?
|
n****1 发帖数: 1136 | 42 那到底啥是纯异步呢? 你套了我这么多字, 你一个定义都没给.
我可没说编译后一定需要达到纯nonblocking IO,有固然好, 没有也不是活不了.
【在 p*****2 的大作中提到】 : : 这个又表现出了你不懂什么是纯异步。而且你这么搞只是一个设想而已,实现的可行性 : 有多大?连同一种语言同步库都不能用于异步,更不要说是不同的语言了。
|
p*****2 发帖数: 21240 | 43
Node.js是纯异步的,你不能用blocking的。
【在 n****1 的大作中提到】 : 那到底啥是纯异步呢? 你套了我这么多字, 你一个定义都没给. : 我可没说编译后一定需要达到纯nonblocking IO,有固然好, 没有也不是活不了.
|
n****1 发帖数: 1136 | 44 "Node.js是纯异步的",这就是你"纯异步"的定义么?
1. 什么纯阻塞/非阻塞IO之类的,根本就应该完全由nodejs封装好, 用户根本不需要知
道后端是怎么实现的. 换句话说, 0.11之前的nodejs没有同步api, 所以根本就是一陀,
倒被你捧成金子了
2. 难道就不能用node中的nonblocking IO 来实现cpython中与glibc相关的blocking
api么? 你忘了已经node nonblocking IO实现了yield么?
3. 为啥你非要把js和node划等号呢? js离开node就无法运行了? spidermonkey和v8都
有单独的命令行, 啥时候node成了js的唯一了
4. 再次纠正你以下, 有了yield后, Node.js不是"纯异步的", 只是"纯非阻塞IO".
【在 p*****2 的大作中提到】 : : Node.js是纯异步的,你不能用blocking的。
|
p*****2 发帖数: 21240 | 45
陀,
所以跟你讲不清。
【在 n****1 的大作中提到】 : "Node.js是纯异步的",这就是你"纯异步"的定义么? : 1. 什么纯阻塞/非阻塞IO之类的,根本就应该完全由nodejs封装好, 用户根本不需要知 : 道后端是怎么实现的. 换句话说, 0.11之前的nodejs没有同步api, 所以根本就是一陀, : 倒被你捧成金子了 : 2. 难道就不能用node中的nonblocking IO 来实现cpython中与glibc相关的blocking : api么? 你忘了已经node nonblocking IO实现了yield么? : 3. 为啥你非要把js和node划等号呢? js离开node就无法运行了? spidermonkey和v8都 : 有单独的命令行, 啥时候node成了js的唯一了 : 4. 再次纠正你以下, 有了yield后, Node.js不是"纯异步的", 只是"纯非阻塞IO".
|
P********l 发帖数: 452 | 46 我觉得meteor的适用范围比较窄. 并且没办法通过小修小补解决问题.
如果想用的话,不妨先详细设计一下,再作个prototype试试,看看行不行. |
p*****2 发帖数: 21240 | 47
是。我就是想做小project用用,或者做着玩玩。毕竟开发简单很多,很快能出个
prototype。做大项目肯定不敢用。
【在 P********l 的大作中提到】 : 我觉得meteor的适用范围比较窄. 并且没办法通过小修小补解决问题. : 如果想用的话,不妨先详细设计一下,再作个prototype试试,看看行不行.
|
b***e 发帖数: 1419 | 48 从一定程度上讲,generator/yield是一个sugar。不影响node.js纯异步的特性。
我建议你做一下node.js再来讨论。你做过就知道node.js和ror/python/java相比,长
处和短处在哪里;纯异步的好处和坏处在哪里;为什么yield有用。其实node.js和
Haskell从某种程度上是相似的。Haskell一旦要做IO就要陷入monad,而且一旦陷入就出
不来。Node.js“同步”的计算其实就是纯的数学计算。一旦要做IO就要陷入CPS,而且
一旦进入CPS模式就只能一条路到底。你做Haskell应该知道CPS其实就是一个monad。在
这个理解的基础上,generator/yield可以看做是monad里的do notation。
陀,
【在 n****1 的大作中提到】 : "Node.js是纯异步的",这就是你"纯异步"的定义么? : 1. 什么纯阻塞/非阻塞IO之类的,根本就应该完全由nodejs封装好, 用户根本不需要知 : 道后端是怎么实现的. 换句话说, 0.11之前的nodejs没有同步api, 所以根本就是一陀, : 倒被你捧成金子了 : 2. 难道就不能用node中的nonblocking IO 来实现cpython中与glibc相关的blocking : api么? 你忘了已经node nonblocking IO实现了yield么? : 3. 为啥你非要把js和node划等号呢? js离开node就无法运行了? spidermonkey和v8都 : 有单独的命令行, 啥时候node成了js的唯一了 : 4. 再次纠正你以下, 有了yield后, Node.js不是"纯异步的", 只是"纯非阻塞IO".
|
p*****2 发帖数: 21240 | 49
大牛讲解的很精彩,虽然我不懂haskell。
【在 b***e 的大作中提到】 : 从一定程度上讲,generator/yield是一个sugar。不影响node.js纯异步的特性。 : 我建议你做一下node.js再来讨论。你做过就知道node.js和ror/python/java相比,长 : 处和短处在哪里;纯异步的好处和坏处在哪里;为什么yield有用。其实node.js和 : Haskell从某种程度上是相似的。Haskell一旦要做IO就要陷入monad,而且一旦陷入就出 : 不来。Node.js“同步”的计算其实就是纯的数学计算。一旦要做IO就要陷入CPS,而且 : 一旦进入CPS模式就只能一条路到底。你做Haskell应该知道CPS其实就是一个monad。在 : 这个理解的基础上,generator/yield可以看做是monad里的do notation。 : : 陀,
|
n****1 发帖数: 1136 | 50 谢谢大神提点! 我想说服二爷的是nodejs的aio runtime可以提供同步api, 用来实现
python里面的sync IO库。 而这个是Erlang/Haskell已经做到了的, 所以我不觉得我的
结论错了。 欢迎拍砖!
这个我知道, 我还看过99年那篇"A Poor Man's Concurrency Monad". 但这也说明,
这个sugar可一点也不trivial。 如果js里没有加yield, 还真不一定有做node的人去读
这篇文章, 然后去写这个sugar.
我最喜欢的还是erlang模式, 也就是GHC现在的模式:GHC runtime对外IO都是异步的.
同时通过forkIO, 用少量的kernel thread来模拟大量的user thread, 而且runtime呈
现给user thread的IO api全是同步api(open/read/write). 就算是nodejs加了yield之
后也达不到这么好的语法糖效果。
我在python里面是大量用generator的(多线程有GIL, 讨厌多进程), 还折腾过些
stackless python/greenlet之类的, 或者我是用python的异类吧. 这个也是学了lisp
/haskell的后遗症, 学完后代码风格完全不同。
我还真用过一次nodejs, 做了个玩具http proxy翻tmobile的墙用, 感受是event
callback真的很难受, 就跟在c里面用goto一样抓狂. 还有我要想从某个socket读取一
段固定长度的信息,然后立刻block(用来做限速). 这个好像在nodejs里面几乎不可能
完成,因为异步IO的缘故,等我做block动作的时候,可能一大坨数据已经被读进来了。
所以我个人觉得sync IO和AIO各有千秋, 而且暴露给用户(user thread)的最好只有同
步api。 Again, 欢迎拍砖!
【在 b***e 的大作中提到】 : 从一定程度上讲,generator/yield是一个sugar。不影响node.js纯异步的特性。 : 我建议你做一下node.js再来讨论。你做过就知道node.js和ror/python/java相比,长 : 处和短处在哪里;纯异步的好处和坏处在哪里;为什么yield有用。其实node.js和 : Haskell从某种程度上是相似的。Haskell一旦要做IO就要陷入monad,而且一旦陷入就出 : 不来。Node.js“同步”的计算其实就是纯的数学计算。一旦要做IO就要陷入CPS,而且 : 一旦进入CPS模式就只能一条路到底。你做Haskell应该知道CPS其实就是一个monad。在 : 这个理解的基础上,generator/yield可以看做是monad里的do notation。 : : 陀,
|
|
|
p*****2 发帖数: 21240 | 51
我觉得你主要是太主观了。自己搞不定就觉得别人都搞不定。自己觉得难用就觉得这东
西不应该流行。但是事实node.js已经很流行了。你应该从另一个角度去想,为什么
node这么难用,可是还有这么多人,这么多公司用起来这么来劲。你好好想想这个问题
对自己也是一个提升。
另外你说的GHC这个,听起来跟Go差不多,如果我理解没错的话。
【在 n****1 的大作中提到】 : 谢谢大神提点! 我想说服二爷的是nodejs的aio runtime可以提供同步api, 用来实现 : python里面的sync IO库。 而这个是Erlang/Haskell已经做到了的, 所以我不觉得我的 : 结论错了。 欢迎拍砖! : : 这个我知道, 我还看过99年那篇"A Poor Man's Concurrency Monad". 但这也说明, : 这个sugar可一点也不trivial。 如果js里没有加yield, 还真不一定有做node的人去读 : 这篇文章, 然后去写这个sugar. : 我最喜欢的还是erlang模式, 也就是GHC现在的模式:GHC runtime对外IO都是异步的. : 同时通过forkIO, 用少量的kernel thread来模拟大量的user thread, 而且runtime呈 : 现给user thread的IO api全是同步api(open/read/write). 就算是nodejs加了yield之
|
n****1 发帖数: 1136 | 52 我只抱怨过node.js烂, 但从没说过node.js不该流行。 说它烂是从我个人偏好出发的
, 因为我一向认为 elegance > performance. 很多人有不同偏好, 所以最终它流行
了。
咱们交流都要有核心论点, 我的核心论点是js可以轻松实现python. 论据是
a)AIO可以实现sync IO, 论证是Erlang/Haskell已经做到.
b)javascript添加的language primitive越来越多, 语法越来越像python. 论证是js
加入了yield.
但是我看了你这么多帖子也看不到论点, 你是想说js不能实现python, 还是想说我很
弱而且主观?
【在 p*****2 的大作中提到】 : : 我觉得你主要是太主观了。自己搞不定就觉得别人都搞不定。自己觉得难用就觉得这东 : 西不应该流行。但是事实node.js已经很流行了。你应该从另一个角度去想,为什么 : node这么难用,可是还有这么多人,这么多公司用起来这么来劲。你好好想想这个问题 : 对自己也是一个提升。 : 另外你说的GHC这个,听起来跟Go差不多,如果我理解没错的话。
|
p*****2 发帖数: 21240 | 53
js
我是觉得你说这些没什么意思,又要搞语言之争。
【在 n****1 的大作中提到】 : 我只抱怨过node.js烂, 但从没说过node.js不该流行。 说它烂是从我个人偏好出发的 : , 因为我一向认为 elegance > performance. 很多人有不同偏好, 所以最终它流行 : 了。 : 咱们交流都要有核心论点, 我的核心论点是js可以轻松实现python. 论据是 : a)AIO可以实现sync IO, 论证是Erlang/Haskell已经做到. : b)javascript添加的language primitive越来越多, 语法越来越像python. 论证是js : 加入了yield. : 但是我看了你这么多帖子也看不到论点, 你是想说js不能实现python, 还是想说我很 : 弱而且主观?
|