nev*_*ame 35 javascript rhino node.js narwhal
我是Node.js的新手,我一直在阅读Narwhal,这是一个基于Rhino的框架.
我的问题:
Kri*_*wal 49
如果您使用的是Node或Narwhal,请仅使用宣传与各自引擎兼容的软件包和模块.目前在编写适用于两个引擎的应用程序,包和模块方面存在许多细微差别.来自Dojo的Kris Zyp付出了相当大的努力,使他的软件包在两个系统上运行,我无法想到其他任何人.
Narwhal的输入和输出模块是阻塞的,非常类似于Python,Ruby,Perl,C,Java等的标准库.
但是,有一类应用程序无法使用阻塞IO进行有效编写,例如在服务器内存中维护其状态并与众多客户端进行状态通信的游戏.只有实验才能揭示线程或事件循环是否对单个应用程序执行得更好.但是,在大多数编程语言和库生态系统中编写"事件"应用程序更加困难和危险,因为使用任何阻塞IO可以快速避免使用非阻塞IO的好处,并且阻塞IO经常隐藏在层次结构,甚至低至操作系统界面.节点令人兴奋,因为它正在创建一个具有严格异步IO的生态系统,这使得它成为第一个系统,其中这类应用程序相当容易编写.
像Doug Crockford和Mark Miller这样的支持者认为,异步事件循环编程是大多数应用程序应该编写的方式,因为它更容易推理这些系统中的数据流,并发性和安全性,并盲目地组合这些子系统而不损害正确性或完整性.
不过,如果你想利用的JavaScript作为一门语言,但不希望购买到事件循环编程的额外的复杂性,独角鲸的设计上都JavaScriptCore的,背后Safari浏览器的快速的JavaScript引擎的工作,同时也对犀牛.使用Rhino可以访问Google的AppEngine.Narwhal旨在为您提供JavaScript引擎的灵活性,但它没有考虑Node的IO模型.Narwhal还广泛用于280 North软件生态系统,用于构建工具和服务器,用于Cappuccino Objective-J应用程序,如Jake和Jack.
Node和Narwhal都可以用于一般应用程序和Web服务器.Node特别适合网络客户端和服务器.Narwhal特别适用于Unix风格的程序和JSGI,类似CGI的Web服务器,旨在在各种Web服务器上运行JSGI应用程序而无需进行任何更改.
编写适用于Narwhal和Node的应用程序很困难,但可能.编写适用于Narwhal和Node的"软件包"是可能的,但必须刻意完成.如果一个软件包没有宣传它已经在Narwhal和Node上进行了设计和测试,你可以打赌它只适用于其中一个.
io:不使用IO子系统的模块,如解析器,格式化器,编码器和解码器,特别适合Narwhal和Node之间的代码共享.
包:有在包的NPM(节点包管理器)和图斯克(独角鲸的包管理器)中规定的方式有所不同.它们都使用package.json,但"依赖"对每个都有不同的含义.没有为独角鲸即将到来的补丁,允许其tollerate这种不一致.当软件包安装在独角鲸,它们都有着相同的模块名称空间,像Ruby.与NPM,每个包具有由相同的名称作为包模块名空间的一个子树.
模块: Node和Narwhal都为CommonJS 模块规范提供了不同的扩展.
__dirname.module.exports = x.require.once(id, scope)了一次执行模块(无论是否先前已加载),并在范围内添加了额外的自由变量(这些变量有时被错误地称为"全局变量").module.path当前模块的文件名提供CommonJS .| 归档时间: |
|
| 查看次数: |
9123 次 |
| 最近记录: |