Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Язык dart, ваше мнение. (https://javascript.ru/forum/offtopic/22585-yazyk-dart-vashe-mnenie.html)

Gozar 26.10.2011 23:49

Пиар Ё!
:)

x-yuri 27.10.2011 01:15

Цитата:

Сообщение от DjDiablo
Что касается меня, тут почти всё в основном обьясняется привычкой.

хорошо, что ты это осознаешь

Цитата:

Сообщение от DjDiablo
Сахара хочу, и хочу много сахара. Я люблю сахар, он делает код яснее, бережет нервы, и время.

если тебе так нужен сахар... значит тебе он нужен ради сахара, ты уже забыл что ты делаешь

Цитата:

Сообщение от DjDiablo
Извиняюсь за резкость, но прототипное наследование в javaScript, у меня кровавый понос на физическом уровне вызывает. Я не сторонник прототипного программирования, но я почему-то обречён использовать чуждый мне стиль ООП.

ты обречен долго ныть на форумах о том, почему javascript не такой как c++/c#, а потом вернуться к ним, любимым

Цитата:

Сообщение от DjDiablo
Обидно что у меня нет выбора.

он есть, просто ты его не видишь. А в классическом ООП выбора нету, да

Цитата:

Сообщение от DjDiablo
На будущее всё таки надо своять табличку решений на классах и прототипах и сравнить, для объективной оценки.

для объективной оценки, ты должен сначала увидеть преимущества прототипного программирования и потом... что именно ты сравнивать собрался?

Цитата:

Сообщение от FINoM
Я не понимаю, почему "невозможно".

возможно им статической типизации и производительности не хватает... http://javascript.ru/forum/131878-post36.html

FINoM 27.10.2011 01:44

Цитата:

Сообщение от x-yuri
статической типизации и производительности не хватает

Если я правильно понял в Дарте типизация гибридная, что не мешает так же сделать и в JS «не ломая текущий веб».
А по поводу производительности, простите чайника, но тот же Node.js достаточно быстр.

А Google — говнюки. Нет, чтоб развивать новую спецификацию Ecma и подталкивать других разработчиков на её развитие, дак они создали свой костыль, который нахер никому не уперся, особенно Микрософту. Мне очень жаль, что столько сил потрачено на, вероятно, бессмысленную разработку.

Цитата:

Сообщение от Gozar
Пиар Ё!

Пардон, а какая от Дарта Гуглу выгода? ES — открыт, популярен, развивается не только самим Гуглом.

Magneto 27.10.2011 02:10

Цитата:

Сообщение от FINoM (Сообщение 132968)
но тот же Node.js достаточно быстр

Нода быстра не потому что там используется JavaScript, а потому что там используется асиинхронная, событийно ориентированная модель. Все тяжелые операции выполняются асинхронно, и их выполняют модули написанные на C++. Хочу заметить что в Ноде все выполняется асинхронно кроме Вашего кода.

Цитата:

Сообщение от FINoM (Сообщение 132968)
А Google — говнюки. Нет, чтоб развивать новую спецификацию Ecma и подталкивать других разработчиков на её развитие, дак они создали свой костыль,

А Google и развивает JavaScript, у компании есть проект Harmony который направлен на исправление недостатков Javascript.

Цитата:

Сообщение от FINoM (Сообщение 132968)
который нахер никому не уперся, особенно Микрософту

Тут да, есть проблемма. Я думаю мы все четко понимаем что если Dart взлетит то IE будет последним браузером который внедрит нативную поддержку языка (Dart). Ситуация еще более усугубилась когда Майкрософт обьявила JavaScript (HTML, CSS) одним из основных языков (если не ошибаюсь их 5, C#, C++, VB ...) для разработки десктоп приложений в Виндовс 8.

FINoM 27.10.2011 02:29

Цитата:

Сообщение от Magneto
Нода быстра не потому что там используется JavaScript

Я думал, что она быстра из-за V8, помнится мне сравнивали циклы и побную синхронную хрень с php. Нода выигрывала. Опять же, я не силен в этом вопросе. Все мои знания заканчиваются пиаром Ноды, как очень быстрого инструмента для серверов.
Цитата:

Сообщение от Magneto
А Google и развивает JavaScript, у компании есть проект Harmony который направлен на исправление недостатков Javascript.

Молодцы конечно, но, блин, у них даже нет реализации пресловутого let, что уж говорить об (удобных) -> синтаксических_няшках и классах. Сравнительно активно развивается только ES, который существует только на бумаге, на внесение серьезных, полезных и интересных изменений в Javascript всем немножечко пофиг.

FINoM 27.10.2011 02:32

Цитата:

Сообщение от Magneto
для разработки десктоп приложений в Виндовс 8

То-то же. Dart — игрушка для гиков. В реальных проектах он может использоваться только на сервере, и даже в этом случае вопрос "зачем" остаётся.

x-yuri 27.10.2011 04:43

Цитата:

Сообщение от FINoM
Если я правильно понял в Дарте типизация гибридная, что не мешает так же сделать и в JS «не ломая текущий веб».

если цель - производительность и ты просто добавишь статический синтаксический сахар, ничего не измениться. В любом случае, у них должны быть на это причины. Ты видишь более вероятные причины?

Цитата:

Сообщение от FINoM
Пардон, а какая от Дарта Гуглу выгода? ES — открыт, популярен, развивается не только самим Гуглом.

Цитата:

Сообщение от trikadin
В первые годы завоевания дартом вейдером просторов веба, очевидно.

как вариант... :)

Octane 27.10.2011 07:50

Я согласен с мыслью, высказанной где-то на хабре, что это просто завоевание рынка, они хотят свой С#

Gozar 27.10.2011 09:35

Я так предполагаю первым ну очень быстрым приложением на Dart будет какая-нибудь игрушка, а затем клич - "теперь вам не нужны плагины, чтобы играть в свои любимые игры в своём \"любимом\" браузере". Далее все вытекающие ...

DjDiablo 27.10.2011 13:01

Цитата:

Я думал, что она быстра из-за V8,
Не надо забывать что DART логически вытекает из V8.

насчёт скорости, я думаю притензии к непредсказуемому количеству св-в.
var test={};

for (var i=0;i<1000;i++){
   test["x"+i]="sad"
}
//когда будет исполнятся эта строка интерпритатору придётся проверить есть ли свой-ство x999
// Компилятор не будет знать и подавно. Ему придётся вставить  вызов попрограмки, для проверки существования св-ва и возврата значения.
alert (test.x999);


В классах это количество вполне предсказуемо

class d{
      public int a=1;
      public int b=2;
}
d test=new d();
alert(test.a);


В случае с классами, компилятор, может указать напрямую в исполняемом коде адрес памяти в которой хранится значение. Алгоритм присваивания значения, компилятор может создать прямо здесь же.

В случае с javaScript мы не знаем сущуствует ли свойство вообще. Поэтому сначало должны выяснить 1) есть ли оно вообще, 2) что оно из себя представляет, 3) и только потом где его взять. Соответственно в коде придётся хранить индекс в таблице св-в, работать с таблицей, а затем для установки значений некоторых св-в вызывать подпрограммы.
Это сотни лишних тактов процессора.

Предположим у вас в цикле 10 св-в обьекта, цикл исполняется 1000 раз.
100 тактов обслуживания *10 переменных*1000циклов=1 000 000 -лишних тактов.


Это написано на глазок, думаю в реале всё намного лохмаче.
Что касается динамических обьектов вообще, в том же C++ или Delphi, статическими массивы быстрее динамических раза в 3.


Часовой пояс GMT +3, время: 08:24.