Почему Javascript используется в MongoDB или CouchDB вместо других языков, таких как Java, C ++? - PullRequest
10 голосов
/ 24 ноября 2011

До сих пор я понимал 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 для операций преобразования / уменьшения».1009 *

Мое непонимание относится к тому, почему 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: Если кто-то хочет отказаться от голосования по этому вопросу, пожалуйста, оставьте комментарий, чтобы объяснить причину.

Ответы [ 7 ]

5 голосов
/ 24 ноября 2011

Проблема со многими языками заключается в отсутствии песочницы (возможность выполнения 'rm -rf /' в функции карты считается проблемой), javascript, из-за своих корней в браузере, имеет такую ​​проблему. Javascript является сервером представления по умолчанию в CouchDB, но протокол задокументирован и существуют другие языковые привязки (Ruby, Python и т. Д.). Он также поставляется с нативной опцией Erlang.

Существует также элегантность в использовании того же языка на внутреннем интерфейсе, что и на внешнем интерфейсе, но CouchDB не заставляет вас выбирать язык, он просто поставляется с надежным механизмом просмотра Javascript.

Подробная информация о протоколе сервера представления и ссылки на альтернативные реализации, здесь:

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

4 голосов
/ 24 ноября 2011

Потому что это язык, который они выбрали?

  • Это (разумно) динамично.
  • Функции могут быть переданы.
  • Открытые, встраиваемые реализации существуют.
  • Это вездесущий.
  • Использование модели данных JSONy.

Существует не так много замечательных опций для "живой" оценки (IMO): Lua, Scheme-y вещи и JS, вероятно, являются лучшим выбором для программ на Си.

Если он был написан на Java, есть встроенный слой сценариев по умолчанию.

2 голосов
/ 20 января 2012

javascript используется в couchdb только для построения представлений и уменьшения карты, ядро ​​couchdb писало с использованием erlang, javascript используется только тогда, когда производительность не так важна (на самом деле вы можете писать свои представления с использованием earlang и получить немного лучшую производительность) ... почему они использовали javascript? ...

1) couchdb использует json в качестве формата обмена данными .. json действительно легкий, очень быстрый и читаемый ... и он использует javascript .. этосамая большая точка .. для работы с json лучшим языком, очевидно, является javascript

2) javascript широко применяется в мире веб-программирования .. главная цель для couchdb..so..если вы программируете на ruby, pythonPHP, Java, для веб-разработки должны иметь некоторые знания javascript

3) если вы смотрите ваш код представления .. он должен быть похож на тот, что написан на Java или C ++, синтаксис пришел из C ... длясоздавать представления вам не нужны ООП или интерфейсы ....

то есть! ..

2 голосов
/ 24 ноября 2011

Хороший вопрос ... с чего бы тебе за это голосовать?

Просто для пояснения: JavaScript - один из нескольких языков, поддерживаемых MongoDB.Другие поддерживаемые языки:

  • C
  • C ++
  • Erlang
  • Haskell
  • Java
  • .NET (C # F #, PowerShell и т. Д.)
  • Perl
  • PHP
  • Python
  • Ruby
  • Scala

И еще куча всего.

Вы можете просмотреть этот список и узнать, какие клиенты доступны откуда, перейдя по адресу:

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

Надеюсь, это поможет пролить свет на ваш первоначальный вопрос.

1 голос
/ 24 ноября 2011

Вот хорошая оценка того, почему javascript так широко используется: http://drdobbs.com/web-development/231901465

0 голосов
/ 24 ноября 2011

Полагаю, правильный вопрос - «Почему бы и нет?».

Javascript - мощный язык.

Но я думаю, что одним из важных факторов для выбора было то, что каждый знает (по крайней мере, некоторые из них) об этом.Когда вы разрабатываете систему и хотите, чтобы она была успешной, вам не нужны «сложные» языки для таких простых операций, как map / Reduce.Посмотрите на примеры использования MongoDb, большинство из них связаны с сетью.Печальная правда в том, что «веб-разработчики» часто не знают или не хотят кодировать на C ++ или Java, они знают PHP и javascript.Итак, почему кто-то хочет использовать эти злые вещи (я саркастичен здесь), когда javascript тоже работает?

Facebook написан на PHP (а затем преобразован проприетарным переводчиком кода в C ++).Это не так, потому что это лучший технический выбор, но потому что:

  • это чертовски просто
  • все это знают
  • это позволяет быстрые циклы разработки

Это коммерческие причины.

(и теперь, для вашего собственного удовольствия, вы можете понизить голосование за то, что я ответил на ваш вопрос другим вопросом).

0 голосов
/ 24 ноября 2011

MongoDB написан на C / C ++. Из JS они берут ту же модель, которая использовалась JSON для хранения записей в БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...