为什么在MongoDB或CouchDB中使用Javascript而不是其他语言,如Java, c++

Why Javascript is used in MongoDB or CouchDB instead of other languages such as Java, C++?

本文关键字:其他 语言 Java c++ Javascript MongoDB CouchDB 为什么      更新时间:2023-09-26

到目前为止,我对Javascript的理解是,它是一种客户端语言,捕获事件并使网页动态。

但是在阅读MongoDB和CouchDB (http://www.mongodb.org/display/DOCS/Comparing+Mongo+DB+and+Couch+DB)之间的比较时,我注意到两者都使用JS。这让我想知道选择JS而不是其他传统语言背后的原因。

我想我正在努力理解JS的作用和它比其他语言的优势。

更新:我不是在问这两个db支持的语言/驱动程序。对比显示:"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函数。这是维基百科对spidermonkey的链接- http://en.wikipedia.org/wiki/SpiderMonkey_(JavaScript_engine)

PS:如果有人想要否决这个问题,请发表评论来解释原因。

许多语言的问题是缺乏沙箱(能够在地图函数中执行'rm -rf/'被认为是一个问题),javascript,因为它的浏览器根源,有一个。Javascript是CouchDB的默认视图服务器,但是协议是文档化的,并且存在其他语言绑定(Ruby, Python等)。它还附带了一个本地Erlang选项。

在后端使用与前端相同的语言也是一种优雅,但CouchDB不会强迫您选择语言,它只是附带了一个可靠的Javascript视图引擎。

关于视图服务器协议的详细信息,以及到备选实现的链接,在这里:

http://wiki.apache.org/couchdb/View_server

因为这是他们选择的语言?

  • 函数可以传递。
  • 存在开放的、可嵌入的实现。
  • 无处不在。
  • 使用JSONy数据模型

对于"实时"评估(IMO)来说,没有很多好的选项:Lua, Scheme-y的东西和JS可能是C程序的最佳选择。

如果它是用Java编写的,则有一个默认的"内置"脚本层。

javascript在couchdb中仅用于构建视图和map reduce, couchdb核心使用erlang编写,javascript仅在性能不那么重要时使用(实际上您可以使用earlang编写视图并获得更好的性能)…为什么他们要用javascript?

1) couchdb使用json作为数据共享格式…json真的很轻,非常快速和可读…它使用javascript。这是最重要的一点。对于json来说javascript

显然是更好的语言

2)javascript在web编程界被广泛采用,couchdb的主要目标是…如果你用ruby,python,php,java编程,对于web开发必须有一些javascript的知识

3)如果你看一下你的视图代码,它应该类似于用java或c++编写的代码,sintax来自c…创建视图不需要OOP或接口....

这是!…

这是一个好问题……为什么会有人投你反对票?

只是为了澄清,JavaScript是MongoDB支持的几种语言之一。支持的其他语言包括:

    C
  • c++
  • Erlang
  • Haskell
  • Java
  • 。. NET (c# f#, PowerShell等)
  • Perl
  • PHP
  • Python
  • Ruby
  • Scala

和一大堆。

您可以查看此列表,并通过以下命令查找哪些客户端可以从哪里获得:

http://www.mongodb.org/display/DOCS/Drivers

我希望这有助于阐明你最初的问题。

这是对为什么javascript被如此广泛采用的一个很好的评价。: http://drdobbs.com/web-development/231901465

MongoDB使用C/c++编写。从JS中,它们采用与JSON相同的模型来存储DB条目。

我想正确的问题应该是"为什么不呢?"

Javascript是一门功能强大的语言。

但我想选择它的一个重要因素是每个人都知道(至少部分)它。当你开发一个系统并希望它成功时,你不希望使用"复杂"的语言来执行map/reduce这样的简单操作。看看MongoDb的用例,大多数都是与web相关的。可悲的事实是,"web开发人员"通常不知道或不想用c++或Java编写代码,他们知道PHP和javascript。那么,为什么有人想要使用这些邪恶的东西(我在这里讽刺),当javascript工作?

Facebook是用PHP编写的(然后由专有代码转换器转换为c++)。这不是因为它是最好的技术选择,而是因为:

  • 这太简单了
  • 人人都知道
  • 它允许快速开发周期

这些都是商业原因。

(现在,为了你自己的满意,你可以为我用另一个问题回答你的问题投反对票。)