【发布时间】:2012-01-05 05:32:35
【问题描述】:
到目前为止,我对 Javascript 的理解是,它是一种捕获事件并使网页动态化的客户端语言。
但在阅读 MongoDB 和 CouchDB (http://www.mongodb.org/display/DOCS/Comparing+Mongo+DB+and+Couch+DB) 之间的比较时,我注意到两者都使用 JS。这让我想知道为什么选择 JS 而不是其他传统语言。
我想我想了解 JS 的作用以及它相对于其他语言的优势。
更新:我不是在询问两个数据库支持的语言/驱动程序。比较表明——“CouchDB 和 MongoDB 都使用 Javascript。CouchDB 广泛使用 Javascript,包括在视图的构建中……MongoDB 还支持在服务器端运行任意 javascript 函数,并使用 javascript 进行 map/reduce 操作。”
我不理解为什么将 JS 用于后端工作。为什么首选在 CouchDB 中构建视图或使用 map/reduce 操作?为什么不使用 C/C++ 或 Java?这样的后端工作使用JS有什么好处?
答案:总结https://softwareengineering.stackexchange.com/q/121411/41398上的答案。 MongoDB 和其他 NoSQL 数据库正在使用 SpiderMonkey 来执行服务器端 JS 函数。这是维基百科的蜘蛛猴链接-http://en.wikipedia.org/wiki/SpiderMonkey_(JavaScript_engine)
PS:如果有人想对这个问题投反对票,请发表评论以解释原因。
【问题讨论】:
-
另外 2 个很好的链接——首先,由@Yannis Rizos 指出 - en.wikipedia.org/wiki/JavaScript#Uses_outside_web_pages ;另一个是服务端JS方案的比较-en.wikipedia.org/wiki/…
-
我强烈推荐阅读这篇文章。这很好地解释了为什么服务器端 JS-stackoverflow.com/q/691317/847954。谢谢@Joel Coehoorn
-
"google 的一个团队构建了 Rhino on Rails,这是一个类似于 Ruby on Rails 的 MVC 框架,它是用 javascript(JS) 编写并在 Rhino 上运行的 Java VM 的 JS 解释器。如果他们需要使用 Java VM,但希望获得一种快速的语言(JS 很快),支持鸭子类型,并且灵活。另一个例子是 CouchDB,一个面向文档的数据库,它使用 json传输格式和 javascript,因为它是查询和索引语言。他们希望数据库尽可能地是网络原生的。 stackoverflow.com/q/691332/847954,谢谢@rabble
-
另一个来自@Will Hartung 的好文章“Rhino,它是 Mozilla 的 Java Javascript 系统,将 Javascript 编译成 Java 字节码,JVM 可以选择 JIT....最后,JS 是可能是目前在实现方面最赚钱的单一语言。来自 Apple、Mozilla、Google 甚至微软以及使其成为更高级语言的努力(即基本上是具有 Algol 语法的 Scheme无宏)”stackoverflow.com/q/459379/847954
标签: java javascript c++ mongodb couchdb