Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Typescript vs Dart (https://javascript.ru/forum/offtopic/32335-typescript-vs-dart.html)

tenshi 12.10.2012 19:18

вот только вызвать метод select я могу не у чего угодно. so_dom::ensure собственно и гарантирует, что $dom будет поддерживать интерфейс so_dom со всеми его соглашениями.

DjDiablo 12.10.2012 19:33

понял, забавно.

как насчёт
interface idom {
    function select(string $bla);
}

function a(idom $dom) {
    
}

неа ?

tenshi 12.10.2012 19:36

строку или массив так не передашь..

DjDiablo 12.10.2012 19:47

конечно нет :)

FINoM 12.10.2012 20:13

Цитата:

Сообщение от DjDiablo
А вот промо-сайт автомобиля, игра в канвасе, бизнес приложения, приложения на мобильные платформы, metro-приложения - предьявляют совсем иной набор требований. Таких заказов меньше, но они есть, и их число будет только расти.

В обсуждаемой теме имеются в виду типизированные переменные (то бишь единичные, атомарные данные), а для канвасов и пр. можешь использовать типизированные массивы и воркеры. В чем проблема-то? Или ты думаешь, что заменив
for( var i = 0; ... )
на
for( int i = 0; ... )
производительность сильно улучшится?

x-yuri 12.10.2012 21:00

Цитата:

Сообщение от tenshi
а мне вот больше нравится статическая типизация с автоматическим приведением типов.

это какая-то статическая типизация времени выполнения

Цитата:

Сообщение от FINoM
Или ты думаешь, что заменив
for( var i = 0; ... )
на
for( int i = 0; ... )
производительность сильно улучшится?

Если будешь везде указывать типы, я думаю улучшится. В видео должно было упоминаться, не помню точно. Зачем по-твоему Google решили пересоздать javascript?

Цитата:

Сообщение от FINoM
А мелкософту респект, они сделали "надъязык", в котором даже чистый яваскрипт является полностью валидным.

Цитата:

Сообщение от FINoM
Лично я совершенно не вижу преимуществ статической типизации.

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

Итого, статическая типизация вам нужна, чтобы: 1) быстро обнаруживать часть ошибок за счет проверки типов во время компиляции или выполнения (tenshi, DjDiablo), 2) повысить производительность (DjDiablo). И то, складывается впечатление, что как-то слабо нужна.

Попробую своими словами объяснить, зачем нужна статическая типизация. Вы предоставляете больше информации компилятору (и всяким инструментам) и в результате получаем: 1) удобство разработки (удобная навигация по коду, поиск, место объявления, использования, подсказки, автодополнение, рефакторинг), 2) производительность. Для несложных проектов (нечеткая граница) это конечно же не важно. Лично меня в первую очередь интересует поиск по коду с учетом синтаксиса ЯП.

x-yuri 12.10.2012 21:06

... или давайте переформулирую вопрос так: зачем вам нужна статическая типизация, м? :)

Gozar 12.10.2012 21:12

Цитата:

Сообщение от x-yuri
зачем вам нужна статическая типизация, м?

Мне проще производить отладку. Да и количество ошибок должно быть меньше. Остальное мне до лампочки.

Цитата:

Сообщение от dmitry111
При чем тут браузер нуп?

Речь о плагине silverligth

Я смотрю видео, у меня нет плагина silverlight.

FINoM 12.10.2012 21:21

Цитата:

Сообщение от Gozar
Мне проще производить отладку. Да и количество ошибок должно быть меньше. Остальное мне до лампочки.

Ну вот и я о том же. Типизация нужна, как правило, на большиз объемах данных, а для этого есть специальны массивы.
Цитата:

Сообщение от x-yuri
Зачем по-твоему Google решили пересоздать javascript?

Захотелось, не? Каждый язык имеет свои недостатки, яваскрипт в том числе. Но полностью переделывать язык (отсутствие поддержки литералов объектов без кавычек, совершенно другие имена методов...) — глупо. Взяли бы, да новые версии ES реализовали (если я не ошибаюсь, там где-то были статические типы).

monolithed 12.10.2012 21:23

Цитата:

Сообщение от Nekromancer
К гвардам однозначно положительно отнушусь, на счёт остольного пока трудно сказать.

Не знаю почем они выбрали слово Guard для Contacts, но идея не плохая.

Кстати контракты уже реализованы в одном из диалектов CoffeeScipt - contracts.coffee

А гварды, для меня это, вот (пример из LiveScript):

state = | 1 => 'true'
        | _ => 'false'


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