Каково текущее состояние языка программирования Google Dart? [закрыто]

15

Дарт давно вышел (в интернет-годы), но, судя по Google Trends , он не получил много ажиотажа, и тот факт, что он работает только в Chrome, тоже не помогает. Тем не менее, Chrome завоевывает долю рынка каждый день, что позволяет лучше взглянуть на Dart.

Какова общая картина сейчас? В каком штате находится язык? Люди высоко ценят это? Рыночная доля? Веб-приложение витрина? Некоторые реализации функций, которые заставляют вас говорить «Я должен использовать это»?

Михалис Багос
источник
2
Этот вопрос может быть оценен как слишком локализованный во времени, и не уверены, как сделать его менее локализованным, не спрашивая мнения о самом языке.
Матье
1
@Matthieu: слишком локализован? Шутки в сторону?
Джим Г.
1
@JimG. Для языка с версией 0.06 , который обновляется каждый месяц , я думаю, будет справедливым сказать, что этот язык может не совпадать в следующие 6 месяцев, и что любое вынесенное сегодня решение будет бесполезным.
Матье
1
Дарт работает в современных браузерах, компилируя его в JavaScript.
Сет Лэдд
2
Я не очень понимаю, почему это было закрыто. Для этого требуются факты (доля рынка / использование), ссылки (онлайн-примеры и т. Д.), Состояние, в котором находится язык (технический предварительный просмотр, как отмечено в ответах), реализации функций (факт / ссылка / конкретный опыт). Пост даже содержит некоторую информацию, аналогичную ожидаемой информации, которая является четкой и
точной

Ответы:

27

Короткий ответ на вопрос "Каково состояние Дартс?" это: это в технологии предварительного просмотра. Это особый способ сказать: «Мы запустили рано, чтобы мы могли открывать исходные тексты и работать открыто». «Предварительный просмотр технологии» также означает, что «мы еще даже не в Alpha, у нас много работы, но там достаточно, чтобы вы могли поиграть и дать отзыв».

Время в Интернете может работать на новостные сюжеты или итерации потребительских продуктов, но, вероятно, не на такое амбициозное и широкое, как усилия Dart. Помните, дартс это больше, чем просто язык. Это также набор библиотек, улучшенный интерфейс DOM, виртуальная машина, редактор и интеграция с Chrome. Команда очень усердно работает над множеством параллельных потоков, но я лично ожидаю, что пройдет шесть месяцев, прежде чем у нас будет большинство компонентов.

Это не правда, что Dart работает только в Chrome. Dart компилируется в JavaScript и ориентирован на современные браузеры. Несомненно, Chrome будет первым, кто запустит его с собственной поддержкой Dart, но обеспечение того, чтобы Dart компилировался в производительный и эффективный JavaScript, является основным ограничением и особенностью проекта.

Общая картина заключается в том, что Dart станет средой разработки "батарейки" для современных веб-приложений. Главная цель Dart - обеспечить, чтобы сеть оставалась продуктивной и приятной платформой для разработки и развертывания приложений. Это означает, что нужно поставить много частей: язык, библиотеки, редакторы, виртуальные машины и интеграцию с браузером. Все вместе, мы считаем, что Dart будет привлекательным вариантом для современных разработчиков веб-приложений.

Большая большая картина в том, что мы хотим привлечь разработчиков приложений в сеть, и мы хотим, чтобы веб-разработчики писали более сложные веб-приложения. Если они используют Дарт, это здорово. Но в конце концов, язык не имеет значения. Единственное, что имеет значение, - это то, что сложные, клиентские, высокоточные, с малым временем ожидания, красивые современные веб-приложения создаются.

Язык находится в состоянии развития. Мы видим новые выпуски спецификации примерно раз в месяц. Основные функции отсутствуют, такие как отражение, но мы продолжаем итерацию. Мы только что добавили поддержку map () в коллекцию, например. Гилад Брача, парень, который знает свои языки (создал NewSpeak и работал над Java Lang Spec), и Джош Блох, парень, который знает свои библиотеки (написал Effective Java и работал над библиотеками Java Collection), работают над языком и библиотеки, вместе с большой командой.

Тяжело обобщать мнение людей о Дартсе, и это, вероятно, не имеет для вас большого значения. Вы должны сделать свои собственные выводы после игры с Дарт. Мой опыт показывает, что разработчики приложений для других платформ, таких как Java, C # или Flex, считают Dart привлекательным и знакомым. Мой опыт работы с разработчиками JavaScript разделен. Если этот разработчик JavaScript также создавал приложения для других платформ, они с оптимизмом смотрят на Dart (или, по крайней мере, на решение, которое он пытается предоставить). Если этот JavaScript-разработчик вырос на JavaScript и программировал только на JavaScript, то возникает больше сомнений. Это может быть фундаментальное беспокойство по поводу языка, или нерешительность в выходе из зоны комфорта, или просто просто не сталкиваться с крайними случаями с JavaScript. Это просто обобщение, но я

Что касается доли на рынке, это очень рано в игре. Наверное, это не тот вопрос, потому что Дарт даже не отправляет. Более интересный вопрос будет: «Какова доля рынка приложений в Интернете?» а потом пойди разберись, как мы можем решить это.

Что касается демонстрации веб-приложения, команда Dart создала Swarm, отличную программу для чтения новостей. К сожалению, у нас есть только в исходном коде прямо сейчас: http://www.dartlang.org/samples/index.html

Что касается некоторых «убийственных» функций, я бы сказал, что есть несколько довольно интересных:

  • дополнительные типы являются гладкими, они добавляют аннотации и документацию для людей и машин.
  • Изоляты - это отличный способ безопасного параллелизма.
  • Библиотеки (модульность) крайне необходимы для веб-стека, а у Dart есть библиотеки и классы.
  • Снимки позволят очень быстрый запуск
  • Связанные библиотеки (такие как коллекции, секундомер и т. Д.) Будут унифицировать базы кода и сокращать код для отправки
  • Хороший новый интерфейс DOM, который делает работу с DOM намного более приятной. Это похоже на нативный код Dart.

Я надеюсь, что ответил на ваши вопросы. Я думаю, что единственный вопрос, который имеет значение, заключается в следующем: «Помогает ли мой язык создавать сложные, высокоточные, модульные, современные веб-приложения с малой задержкой?» Конечное состояние всего этого просто помогает большему количеству разработчиков приложений доставлять более успешные приложения в современный веб.

Сет Лэдд
источник
пришел к этой теме во время просмотра вашего видео Introduction to Dart. Готовы к практическим занятиям по Дарт. :)
SachinGutte
8

Вы не можете измерить возраст языка программирования в «интернет-годах». На самом деле, вы не можете измерить какие-либо реальные технологии в интернет-годы. Все, что вы можете измерить за годы интернета, - это ажиотажи, но они не отражают реальность.

Дарт является публичной с 3 месяцев. Сравните это со «свежими» и «горячими» техническими специалистами в этой области, такими как CoffeeScript или Node.js, которые публикуются уже 2 года и почти 3 года соответственно. Также стоит отметить, что оба являются относительно небольшими шагами по сравнению с Dart. По сути, CoffeeScript подразумевал подключение JavaScript-генератора к анализатору на основе Ruby, а Node.js означал привязку неблокирующего ввода-вывода к Google V8.

Dart - это попытка перепроектировать интерфейсное веб-программирование на всех уровнях: синтаксис, языковые функции, среда выполнения, API. Например, сравнивать Dart с CoffeeScript, это все равно, что сравнивать прототип личного пилотируемого самолета на солнечной энергии с Shelby GT 1968 года. Конечно, у первого есть гораздо больший потенциал, но инвестирование в него, не говоря уже о его посадке, требует большой смелости. У последнего есть много известных недостатков, но они известны, что делает все это предсказуемым и надежным.

Конечно, это всего лишь предположение, но я думаю, что Dart - это тупик, который в конечном итоге будет использован для продвижения JavaScript или других решений. Если вам нужен динамический язык, CoffeeScript и Parenscript уже выполняют то, что обещает Дарт. Если вы предпочитаете статически типизированный язык, то haXe и Opa сработают. У всех четверых есть преимущество на Дарт. И все они предназначены для компиляции в JavaScript по умолчанию, а не как запасной вариант.

back2dos
источник
3
Я думаю, что хотя Дарт является новым языком, я не видел в нем ничего особенно инновационного . Насколько я могу судить, он в основном состоит из функций старых языков. Так что на самом деле это не очень похоже на «прототип индивидуального энергетического автопилота личного самолета».
Тихон Джелвис
@ back2dos +1 «Вы не можете измерить возраст языка программирования в« интернет-годах ». Фактически, вы не можете измерить какую-либо реальную технологию в интернет-годах». Это открыло для меня новое понимание. Почему нельзя и как можно измерить технологию до и после Интернета?
Ubermensch
@TikhonJelvis: сравнение было больше о зрелости. Тем не менее, солнечная энергия, автопилот и авиация все существуют, поэтому описанный мною аппарат похож на Дарт, «просто» рекомбинация существующих идей. Задача инженерии - не рекомбинировать, а заставить ее летать;)
back2dos
Сравнение дартса с другими языками не входит в это обсуждение, и, насколько я могу представить, в любое обсуждение, так как они в любом случае разные вещи. Dart - это больше, чем препроцессор, и он определенно не ориентирован на сервер. Я согласен с предположениями о будущем дротика, и это одна из тех вещей, на которые я рассчитывал получить ответ
Михалис Багос
@MihalisBagos: Ну, поскольку Dart может компилироваться в JS, вы можете запустить его уже на Node.js, чтобы его можно было использовать на стороне сервера. Кроме того, время сложно измерить осмысленно, поэтому, чтобы понять, как далеко может зайти Дарт, сравнение с заданным языком на более позднем этапе с понятным количеством функций является в значительной степени лучшей системой отсчета, которую вы можете получить.
back2dos
5

Дарт все еще в техническом превью. На данный момент языковая спецификация имеет версию 0.0.6, где-то на этой неделе ожидается 0.0.7. Это далеко не "завершено". В репозитории есть несколько примеров: http://www.dartlang.org/samples/index.html.

Вот один взгляд на то, что лучше в терминах синтаксиса, чем в JavaScript: http://www.grobmeier.de/10-reasons-why-dart-is-cooler-than-javascript-03012012.html Отказ от ответственности: это мой пост , Здесь я должен сказать, что мне нравится JavaScript, но в некоторых моментах он имеет причуды, которые мне не очень нравятся.

Существует также растущее сообщество вокруг него: http://www.dartosphere.org

Некоторым людям удалось перенести Box2D на Dart, другого парня, подключенного к CouchDB. Во всяком случае, нет ничего, что вы должны использовать в производстве.

Вскоре к команде присоединился Джош Блочуа, который работал над рефакторингом API. Вы можете ожидать некоторые изменения даже в Core API.

Поддержка браузера: вы можете транскомпилировать Dart в JavaScript, желательно с помощью Frog (не DartC, он компилируется в огромные файлы JavaScript). Dartium - один из браузеров, который поддерживает нативный Dart, где обсуждается спорная ветка Webkit.

Мое личное ожидание - получить что-то более конкретное в середине следующего года. Исходя из моего опыта, разработчики Google делают много, чтобы сделать язык правильным и хорошим, заимствуя не только Java, но и Erlang и JavaScript.

Вот пример игры, портированной с JavaScript: http://blog.sethladd.com/2011/12/10-lessons-from-porting-javascript-to.html

Можно ожидать, что Дарт прибудет на Android, возможно, даже как «основной язык». Люди говорят, что это придет в AppEngine.

Лично я думаю, что Дарт очень элегантен и уже довольно хорош. Кроме того, я думаю, что он будет иметь долю рынка, когда он будет завершен.

Вы найдете ответы на многие вопросы в этом FAQ: http://www.dartlang.org/support/faq.html#compare-to-coffeescript

Кристиан
источник
Спасибо за практический ответ, очень интересные ссылки!
Михалис Багос
0

Дарт был на веках (в интернете лет)

Он даже широко не используется и незрел. Технологии, готовые к производству, существуют уже 10-15 лет ... для Дартса нельзя даже сказать, что это пре-альфа. Новые технологии всегда хорошо смотрятся на бумаге, когда их никто не использует.

это не получило много шумихи

Я думаю наоборот. Обидно, что такой плохой, отсталый язык получил столь положительные отзывы. Он восходит от прекрасного ООП Ecma / Java Script с паразитическим наследованием, замыканий и обратных вызовов к некой деревянной, десятилетней ООП, взятой из Java со всеми ужасными практиками программирования, с которыми поставляется Java.

Некоторые реализации функций, которые заставляют вас говорить «Я должен использовать это»?

Никто. Если вы знаете Java и у вас нет толерантности к знаниям для правильного изучения Ecma / JavaScript, Dart, вероятно, единственное, что вам подойдет.

Вы знаете, как работает Google. Они часто используют Java, поэтому, вероятно, именно поэтому они создали такой ужасный язык ... они просто привыкли к нему.

Кроме того, он еще больше фрагментирует сеть, и я могу только надеяться, что Mozilla и Opera никогда не реализуют это (потому что MS наверняка не добавит поддержку некоторого языка, похожего на java google). Помимо всей концепции DATED, мы должны избавиться от языков, таких как C ++ или Java, по крайней мере, при кодировании интерфейсов, потому что они очень неэффективны. Это все равно что заменить С ++ на Ассемблер, потому что программисты, которым за пятьдесят, отказываются учиться чему-то новому.

Slawek
источник
2
Возможно, вы захотите немного смягчить языковые предубеждения; Ваш первый абзац дает хорошее резюме, и в итоге вы получаете хорошее наблюдение, но те теряются во всем "ужасном".
Патрик Хьюз
+1 к снижению, C ++ все еще очень жив (как ассемблер) для конкретных приложений. Возможно, это не лучший инструмент для любой работы, но в большинстве случаев это потрясающе. Например, ассемблер используется в игровых движках.
Пол Химстра
Я не говорил, что Java или C ++ - это плохо ... и то, и другое плохо для пользовательских интерфейсов, которые используются JS (в основном) для программирования. Оба хороши в других областях. Дарт - это просто наивный подход людей, которые программируют только на Java, поэтому они, вероятно, думают, что Java хороша для всего. Кроме того, я работал с MFC и Java над пользовательским интерфейсом, так что я думаю, что у меня есть право так говорить :) Это все равно, что сказать, что Assembler более продвинут, чем C, потому что ASM - это все, что вы знаете :)
Slawek
Я работал с Java и JavaScript и могу сказать, что ваш пост ужасен и наивен. Языки программирования не являются религией, и у Дарт довольно хороший подход. Я не думаю, что мы можем или должны избавиться от таких языков, как Java. Это просто хакерская речь без каких-либо рассуждений.
Кристиан
Рассуждая? В JS вы можете сделать то же самое, что и в Java ... всего на пару раз быстрее + ​​код намного проще в управлении и изменении, если мы говорим об интерфейсах. Время = Деньги. Это было достаточно плохо, когда у нас были браузеры VBScript и ECma ... зачем возвращаться в 90-е? JS - это специфический язык для очень специфического случая, почему заменить его на что-то общее?
Славек
0

Дарт - ошибочная концепция, следующая по стопам Javascript. Google должен сотрудничать в создании стандартной среды выполнения для веб-браузеров (вроде HTML 6). Аналогично байт-коду Java или IL от Microsoft.

Мы не должны стандартизироваться на определенных языках, но на время выполнения. «Браузер - это операционная система». Правильно? WTF Google? Следуйте своему собственному видению !!!

Лорд тидус
источник
2
Байт-код Java - это особый язык. Как это CIL.
Йорг Миттаг