为什么在MongoDB或CouchDB中使用Javascript而不是Java、C+等其他语言+;?
到目前为止,我对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的链接-为什么在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还支持
PS:如果有人想否决这个问题,请发表评论解释原因 下面是一个很好的评估,说明为什么javascript被如此广泛地采用。MongoDB是用C/C++编写的。从JS中,他们采用JSON用于存储DB条目的相同模型。这是一个好问题……为什么会有人投票反对你 只是澄清一下,JavaScript是MongoDB支持的几种语言之一。支持的其他语言包括:
- C
- C++
- 二郎
- 哈斯克尔
- 爪哇
- .NET(C#F#、PowerShell等)
- Perl
- PHP
- 蟒蛇
- 红宝石
- 斯卡拉
我希望这有助于澄清您最初的问题。因为这是他们选择的语言
- 它(合理地)是动态的
- 函数可以传递
- 存在开放的、可嵌入的实现
- 它无处不在
- 使用JSONy数据模型
如果它是用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