Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在MongoDB或CouchDB中使用Javascript而不是Java、C+等其他语言+;?_Java_Javascript_C++_Mongodb_Couchdb - Fatal编程技术网

为什么在MongoDB或CouchDB中使用Javascript而不是Java、C+等其他语言+;?

为什么在MongoDB或CouchDB中使用Javascript而不是Java、C+等其他语言+;?,java,javascript,c++,mongodb,couchdb,Java,Javascript,C++,Mongodb,Couchdb,到目前为止,我对Javascript的理解是,它是一种客户端语言,用于捕获事件并使网页动态 但是在阅读MongoDB和CouchDB()之间的比较时,我注意到两者都使用JS。这让我想知道为什么选择JS而不是其他传统语言 我想我正在努力理解JS的作用及其相对于其他语言的优势 更新:我不是问两个dbs支持的语言/驱动程序。对比显示--“CouchDB和MongoDB都使用Javascript。CouchDB广泛使用Javascript,包括在构建视图时使用Javascript……MongoDB还支持

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

但是在阅读MongoDB和CouchDB()之间的比较时,我注意到两者都使用JS。这让我想知道为什么选择JS而不是其他传统语言

我想我正在努力理解JS的作用及其相对于其他语言的优势

更新:我不是问两个dbs支持的语言/驱动程序。对比显示--“CouchDB和MongoDB都使用Javascript。CouchDB广泛使用Javascript,包括在构建视图时使用Javascript……MongoDB还支持在服务器端运行任意Javascript函数,并使用Javascript进行映射/减少操作。”

我不理解为什么在后端工作中使用JS。为什么在CouchDB中构建视图或使用map/reduce操作时首选它?为什么不使用C/C++或Java?在这样的后端工作中使用JS有什么优势

答:总结有关的答案。MongoDB和其他NoSQL数据库使用SpiderMonkey执行服务器端JS函数。这是维基百科指向spidermonkey的链接-


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

下面是一个很好的评估,说明为什么javascript被如此广泛地采用。

MongoDB是用C/C++编写的。从JS中,他们采用JSON用于存储DB条目的相同模型。

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

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

  • C
  • C++
  • 二郎
  • 哈斯克尔
  • 爪哇
  • .NET(C#F#、PowerShell等)
  • Perl
  • PHP
  • 蟒蛇
  • 红宝石
  • 斯卡拉
还有一大堆

您可以查看此列表,并通过转到以下位置了解哪些客户机在何处可用:


我希望这有助于澄清您最初的问题。

因为这是他们选择的语言

  • 它(合理地)是动态的
  • 函数可以传递
  • 存在开放的、可嵌入的实现
  • 它无处不在
  • 使用JSONy数据模型
对于“实时”评估(IMO),没有太多好的选择:Lua、Scheme-y和JS可能是C程序的最佳选择


如果它是用Java编写的,那么有一个默认的脚本层“内置”。

许多语言的问题是缺少沙箱(能够在映射函数中执行“rm-rf/”被认为是一个问题),javascript由于其浏览器根而有一个沙箱。Javascript是CouchDB中的默认视图服务器,但是协议是有文档记录的,并且存在其他语言绑定(Ruby、Python等)。它还附带一个本机Erlang选项

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

有关view server协议的详细信息,以及指向替代实现的链接,请参见:


我想正确的问题应该是“为什么不应该?”

Javascript是一种强大的语言

但我想选择它的一个重要因素是,每个人都知道(至少部分知道)。当您开发一个系统并希望它成功时,您不希望使用“复杂”的语言进行简单的操作,如map/reduce。 看看MongoDb的用例,其中大多数都与web相关。令人悲哀的事实是,“Web开发人员”经常不知道或不想用C++或java编写代码,他们知道PHP和JavaScript。那么,当javascript也可以工作时,为什么有人要使用这些邪恶的东西(我在这里是讽刺的)

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

  • 这很容易
  • 大家都知道
  • 它允许快速的开发周期
这些都是商业原因


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

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++编写的,SnCalt来自C…对于创建视图你不需要OOP或接口……/P>


那就是

我想发布这个链接:另外两个不错的链接——首先,由@Yannis Rizos-指出;另一个是服务器端JS解决方案的比较——我强烈建议阅读这篇文章。这很好地解释了为什么服务器端JS-。感谢@Joel Coehoorn“谷歌的一个团队在Rails上构建了Rhino,这是一个类似Ruby on Rails的MVC框架,用javascript(JS)编写,并在Rhino上运行Java VM的JS解释器。在这种情况下,他们需要使用Java VM,但希望获得一种快速的语言(JS是快速的),支持duck类型,并且非常灵活。另一个示例类似于CouchDB,一个面向文档的数据库whic