Задать вопрос
@beduin01

В чем разница между Dart и Go в плане их позиционирования?

С одной стороны ответ может показаться очевидным: Go - для веб-сервисов, а Dart для браузеров.

Однако как тогда получается, что один из самых производительных веб-серверов вообще на JavaScript написан? Если так, то получается Dart может тоже успешно конкурировать с Go на этом рынке?

Объясните какие ниши у данных языков перекрываются, а какие разнятся?
  • Вопрос задан
  • 6239 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
Lerg
@Lerg
Defold, Corona, Lua, GameDev
Go не только для веб сервисов уже. Он также подходит для системного программирования.
Dart же по определению "замена JavaScript", следовательно там где применяют JavaScript, можно применять и Dart. Цель Dart - дать разработчикам более подходящий инструмент для сложных и высоконагруженных веб приложений, в то же время увеличив производительность.

Dart может конкурировать с Node.js, но не с Go, так как это будет скорее "шило на мыло". По абсолютной шкале производительность Node.js не такая уж и высокая (в сравнении с C).

Очевидно, что Go и Dart принципиально разные языки, Dart динамический, а Go статический.
Ответ написан
Комментировать
@SilentFl
Dart создавался как замена js, поэтому много усилий разработчиков было сосредоточено на поддержке всех тех действий, что можно сделать из браузера. Ну и как следствие такого развития, его можно, как и js-овский Node, использовать и на сервере.
Go же создавался как язык системного программирования, с прицелом на сетевые приложения. Соответственно из Go удобно делать сетевые тулзы, веб-сервисы, различные вспомогательные утилиты, но со стороны пользовательского интерфейса будет засада - это либо html+js, либо биндинги на Qt.
Dart'ом можно пользоваться в "области Go", но это будет жутко неудобно. И на Go можно "сунуться в область Dart'a", но это тоже будет мучение еще то. Можно провести аналогию по функциональности: Dart - это js, Go - это Python, и применять их соответственно аналогам.
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
тода явно не конкурент го
да и высокопроизводительность у ноды только в определнных случаях
Ответ написан
@lookid
Обычные языки со статической типизацией, которые довольно просто в освоении. Наверняка какой-нибудь MIT будет давать курс по машинному обучению или дискретному анализу на Go/Dart/Python и прочих Java, нежели на С.

один из самых производительных веб-серверов вообще на JavaScript написан
Да ну, бред. Если в качестве ответа на запрос клиента отдается страница с Javascript, то это не значит, что сервис на Javascript написан. Он вполне может быть и на Go. Откуда вам знать серверную часть.
Ответ написан
Комментировать
@kelegorm
Я хотел бы подчеркнуть, что Dart не создавался, как "замена js", просто они конкурируют в одной области. Хочешь - пиши на Dart, компилируй в JS, хочешь - пиши сразу на JS. Кому как удобнее.

Мне удобнее писать на Dart, так как.. он более типизирован. Я не обладаю большим опытом работы с JS либами, я к JS вообще не привязан, поэтому мне одинаково ново и JS и Dart. Но Dart как язык ближе мне.

Гораздо интереснее смотреть на Dart на сервере, тут он очень серьезно конкурирует с Node.js. И вот почему: у ноды не такая большая репутация, как у js в браузере. Более того, на сервере Dart код уже не нужно компилировать в JS, и он может работать сам, нативно. И быстрее, чем JS. Опять же, удобно, когда на клиенте и сервере один язык и одни либы.

Go и Dart - это совершенно разные вещи, хотя на них можно написать одно и тоже. Dart - это скриптовый язык, а Go - компилируемый, более низкоуровневый. Если говорить о сайтах, то на Dart проще писать CMS, блоги, сайты и все такое. А на Go - лучше писать игровые и медиа-сервера (тут он будет конкурировать с Erlang).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы