Isaac Schlueter 8月14 最近有关node.js核心API有很多的争论,观点和请求;我这里基于以下几点,对这个项目的技术做一下澄清:
回调依然是实现异步的默认方式;Generators 和 Promises 的模式非常有意义,但不会设成默认;
Streams流会更持久,更快,和完全向下兼容。兼容模式(或老模式)的API更干净,你可以“暂停”流,然后再次安全地读取;我们会不断公布对流扩展的细节;
Domains会被重构以便支持更通用的持续追踪系统,或者由用户启动可选的错误处理机制;虽然他可以由用户来定制,但会一直放在Node的默认安装包里;
一个稳定的C API slime已经被添加, 以便用户编写出稳定的扩展插件;因为V8的API在0.12有重大改变,因此所以的可执行插件都不能工作了,而且绑定合适版本的openssl/zlib/c-ares/等等非常困难,我们正在处理
module(模块)系统不会被改变,所以功能已经完成一年,以后只会修改那些肯定会重现的BUG;
TypeScript和CoffeeScript不会被加入核心库,但因为模块系统已经不会变更,现在支持的以后也会一直支持;
因为一些新语言特性已经加入V8,在Node中他们会按自己的方式工作,我们没有关闭、开启的标志;请自己尝试你的代码,如果不支持会弹出错误信任;
VM模块已经被重写,以便将"contextify"模块放入核心库;这样"上下文"将会向大家希望的那样工作,VM模块已经添加了多文档的支持;
同步子线程机制最终被添加;
v0.12版本已经基本完成;一旦我们开发完了,我们会发布;v0.12版本之后,我们会不会添加新的API,我们将会关注性能提升,修BUG还有提高稳定性;
我们在node.js上做了重大改动。如果你的程序现在可以工作,我们将尽一切可能确保它能继续工作,而且最快,最靠谱;
这并不民主,但是这里有足够的空间去容纳不同意见,如果你有另人惊喜的,对node核心库的重大改进,并且你发现你的意见并不会被采纳,那么就请Fork joyent/node 项目,创建一个新的分支和图标,做你任何你想做的事情吧。
Isaac是有多恨coffee啊
coffee 不行 , JS才是王道,这里有很多原因存在。
能否详细解释一下?
扯淡
谁能解释一下啊?各种看不懂。
你應該誤會Isaac了 並不是討厭coffee,而是指這類的模組並不適合放進node.js的核心模組之中 他在不少研討會的場子上都有提到node.js的設計理念 核心維持精簡、只專注在最重要的需求,而不是一窩蜂的加功能,然後搭配npm蓬勃的生態圈
像TypeScript or CoffeeScript都只是JS Transcompiles 現階段並沒有重要的一定得放到核心不可 愛用者也可以透過npm install就裝來用,也不會有什麼不方便吧 ;p
js本身是很优雅很性感的,用了coffee,感觉戴套一样
同感~
没踩过坑的人都这么说
呵呵
Isaac不是node的创始人, 是npm的开发者, nodejs现在的维护者.
实际控制人 ryan基本甩手掌柜了
同步子线程是啥?
coffee 的弱点让 TJ 大神已经阐述过了,是个SEX戴套的感觉。
还有个原因是交流费劲,JS作者也倡议共同JS编码,便于交流。
可以自己 fork 一个,然后增加内置coffee的node版本,让大家用,我相信你。
coffee就是个语法糖,其实学习成本还是不算高的,而且代码也不见得易读。。网上看源码,只要看到coffee的就直接x了··
@robertlyc 的确, 现在是iSaac在维护node
all : function(next){
db.cookie.all(function(err,users){
var pos = 0;
function nextCommand(){
function next2(){
pos += 1;
if (pos < users.length)
process.nextTick(nextCommand);
else
next();
};
controller.test(users[pos].username,next2);
} nextCommand();
});
}
最后我还是喜欢写这种代码,coffee如果能完全兼容js的话大概还可以,毕竟窝不喜欢coffee的所有特性。为了把function(xxx,xxx)写成(xxx,xxx)->而带上一大堆不喜欢的特性实在不划算。 PS:类挺棒的,但是恶心的地方也很多。
应该是child_process 支持Sync方式了吧……
缩进的写小段程序好看,程序逻辑多了,业务复杂了,有更新的时候就麻烦了
@jiyinyiyong 汇编不行,二进制才是王道,同样有很多原因在…
@robertlyc 你踩到坑了,避免就好了不是么。。再说最佳实践不是挺多的么。js确实太过于灵活,爽也头疼有时候,但coffee写起来就不是很爽。。。
一个星期以前看这个帖子的时候,我和楼上很多人一样不喜欢coffee script。
不过现在,呵呵。我恨不得把我之前写过的代码全部采用coffee script重写一次。
至于为什么,晚上写一篇文章来谈谈最近使用coffee-script的感受。
PS:@yangff ,把你的代码用coffee写是这样的,不知道你觉得怎么样:
all = ->
db.cookie.all (err, users)->
pos = 0
nextCommand = do ->
next2 ->
pos += 1
if pos<users.length then process.nextTick nextCommand else next()
controller.test users[pos].username, next2
@brighthas 这个是,虽然大家都会,用得少,看着自然也不怎么习惯。
混着看两种“语言”很不舒服,团队作事,用起来很麻烦。
next2 ->应该写成next2 = ->
next() 中的 next在哪声明的?
漏了,sorry。编辑器拷过来一行行按空格效率低啊 all = (next)-> db.cookie.all (err, users)-> pos = 0 nextCommand = do -> next2 -> pos += 1 if pos<users.length then process.nextTick nextCommand else next() controller.test users[pos].username, next2
@jiyinyiyong 我也不算太喜欢coffeescript,可能是自身本来对这个就不熟悉吧。但是他们说coffeescript编译出的代码,可能比自己写的javascript效率还要高一些,不知道真假。。如果真是这样的话,那coffeescript就非常值得用了。
我也喜欢Coffee
我决定就像Quora上说的,为什么有的人不喜欢Coffee?因为它很新
所以我想写惯了JS的可能会不喜欢,但像我这样的新码农对Coffee是爱不释手啊