由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 看了一下Meteor很不错
相关主题
为什么说Javascript 是披着C 外衣的Lisp?大家有没有觉得Scala不如Haskell美?
周末上点有用的信息goodbug吃数据库应用开发饭的,根本不懂UI,牛逼吹得最大
学了这么多语言发现还是coffeescript最好用go channel和clojure core.async哪个好
说了半天异步是大势所趋没什么疑问了今天跟公司confirm了,没有人用Scala
clojure这语言真不错现在还在“学”脚本语言的,都弱爆了
大家讨论过了node.js了吗?haskell 可以运行在iOS上了
给你们推荐个思路:异步Go被人吐槽了
fp就是Declarative Programming最新haskell实现可用40+ cores
相关话题的讨论汇总
话题: python话题: js话题: io话题: meteor话题: node
进入Programming版参与讨论
1 (共1页)
p*****2
发帖数: 21240
1
以后就是他了
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.

相关主题
大家讨论过了node.js了吗?大家有没有觉得Scala不如Haskell美?
给你们推荐个思路:异步goodbug吃数据库应用开发饭的,根本不懂UI,牛逼吹得最大
fp就是Declarative Programminggo channel和clojure core.async哪个好
进入Programming版参与讨论
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都有问题。
相关主题
今天跟公司confirm了,没有人用ScalaGo被人吐槽了
现在还在“学”脚本语言的,都弱爆了最新haskell实现可用40+ cores
haskell 可以运行在iOS上了haskell有潜力成为最好的web framework
进入Programming版参与讨论
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的吗?

相关主题
haskell 怎样解决库的版本问题?周末上点有用的信息
haskell在生产环境的生产力到底如何?学了这么多语言发现还是coffeescript最好用
为什么说Javascript 是披着C 外衣的Lisp?说了半天异步是大势所趋没什么疑问了
进入Programming版参与讨论
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都不一样怎么跑呀。

相关主题
说了半天异步是大势所趋没什么疑问了给你们推荐个思路:异步
clojure这语言真不错fp就是Declarative Programming
大家讨论过了node.js了吗?大家有没有觉得Scala不如Haskell美?
进入Programming版参与讨论
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。
:
: 陀,

相关主题
goodbug吃数据库应用开发饭的,根本不懂UI,牛逼吹得最大现在还在“学”脚本语言的,都弱爆了
go channel和clojure core.async哪个好haskell 可以运行在iOS上了
今天跟公司confirm了,没有人用ScalaGo被人吐槽了
进入Programming版参与讨论
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, 还是想说我很
: 弱而且主观?

1 (共1页)
进入Programming版参与讨论
相关主题
最新haskell实现可用40+ coresclojure这语言真不错
haskell有潜力成为最好的web framework大家讨论过了node.js了吗?
haskell 怎样解决库的版本问题?给你们推荐个思路:异步
haskell在生产环境的生产力到底如何?fp就是Declarative Programming
为什么说Javascript 是披着C 外衣的Lisp?大家有没有觉得Scala不如Haskell美?
周末上点有用的信息goodbug吃数据库应用开发饭的,根本不懂UI,牛逼吹得最大
学了这么多语言发现还是coffeescript最好用go channel和clojure core.async哪个好
说了半天异步是大势所趋没什么疑问了今天跟公司confirm了,没有人用Scala
相关话题的讨论汇总
话题: python话题: js话题: io话题: meteor话题: node