Anonymous
в смысле, срать в консоль в рантайме?
Ты понимаешь разницу между компиляцией и рантаймом?
Дима
в смысле, срать в консоль в рантайме?
Ты уверен, что понимаешь смысл статической типизации?
Anonymous
Парсинг javascript кода это не рантайм javascript. Если под рантаймом с натяжкой иметь ввиду сам браузер, что он дескать запущен и только в консоль может что-то писать, то как бы да. Как и сейчас, я могу написать x = o o o o o и браузер справедливо скажет, парень это не js код, тут ошибка синтаксиса
Maksim
Ты уверен, что понимаешь смысл статической типизации?
да, статическая типизация нужна на моменте компиляции, в том же C++ например никакие типы не едут в бинарник, просто падает компиляция
Anonymous
Ты уверен, что понимаешь смысл статической типизации?
Да, статическая типизация это проверка типов на стадии анализа кода, до непосредственного его запуска
Anonymous
Что именно вообще смущает?
Костя
и все встанет на место
Anonymous
Это ничем не отличается от ошибок синтаксиса Ошибка синтаксиса упадет на стадии парсинга, а ошибка рантайма - тогда, когда она случится в динамике
Maksim
Так, и?
то что в случае с js проверка будет происходить не у разработчика (ну и у него тоже) а в рантайме у конечного пользователя
Дима
ЯСНО
Дима
Закругляемся
Anonymous
Anonymous
Но тем не менее ошибки синтаксиса НЕ ошибки рантайма JS
Anonymous
Это рантайм браузера а не JS
Костя
я так понимаю речь о том, что ты не узнаешь об ошибке, пока не задеплоишься, но для этого есть jslint
Anonymous
я так понимаю речь о том, что ты не узнаешь об ошибке, пока не задеплоишься, но для этого есть jslint
Или пока не откроешь свой localhost:3000 или какой там локальный адрес для разработки
Anonymous
Но jslint (eslint) конечно правильнее
Maksim
Или пока не откроешь свой localhost:3000 или какой там локальный адрес для разработки
или пока не зайлешь в нужное место где динамически подгрузится какой-то скрипт с ошибкой, да?
Костя
с сопоставлением типов он, наверняка, справится)
Anonymous
с сопоставлением типов он, наверняка, справится)
будет обязан, если заявит поддержку стандарта с статической типизацией :)
Костя
ну, это то же самое, что пытаться сишный файл редактировать в огромном проекте без проверки того, что проект компилится
Anonymous
или пока не зайлешь в нужное место где динамически подгрузится какой-то скрипт с ошибкой, да?
Мне просто интересно, а ошибки синтаксиса ты тоже называешь ошибками рантайма?
Anonymous
момент истины
Maksim
Мне просто интересно, а ошибки синтаксиса ты тоже называешь ошибками рантайма?
серьезно? а что ошибки синтаксиса не в рантайме эксепшены кидают?
Anonymous
Ты издеваешься сейчас или серьезно?
Maksim
у тебя есть текстовый файл со скриптом, пока браузер не начнет его исполнять никто об ошибке синтаксиса не узнает
Anonymous
Ну окей, ты можешь называть ошибки синтаксиса ошибками рантайма JS, но это все равно не меняет ситуацию с статической типизацией как сейчас обрабатываются ошибки синтаксиса, так и будут обрабатываться ошибки типов
Maksim
а исполнение браузером это уже рантайм
Anonymous
Рантайм браузера
Anonymous
Не рантайм JS :)
Maksim
Рантайм браузера
с чего вдруг, может у меня v8 отдельно? или нода, какой вообще рантайм браузера
Anonymous
все не рантайм js кроме рантайма js
Anonymous
и рантайм js наступает только после парсинга javascript кода
Maksim
демагогией занимаешься
Anonymous
нет
Anonymous
Ты делаешь подмену понятий
Anonymous
Изначально ты задал вопрос как комитет сможет сделать типы в языке, и тебе исчерпывающе ответили, что так же как и сейчас работает проверка синтаксиса, на том же уровне
Anonymous
И эти типы не будут динамическими, потому что нельзя будет на ходу менять тип переменной
Anonymous
Рантаймные - да
Anonymous
динамические
Maksim
я спрашивал про статику
Anonymous
это не те типы о которых мы говорим
Anonymous
Тебе нужно понять разницу между стадией подготовки кода к запуску и той стадией когда код непосредственно исполняется
Anonymous
Типы, которые можно задавать и менять на стадии исполнения - динамические, они сейчас есть
Anonymous
Те типы которые можно задать на стадии до исполнения - статические, и их в стандарте еще нет
Костя
речь о том, что если ты в именах переменных ошибешься, то это обнаружится только в рантайме, а сопоставить типы можно на этапе проверки кода без его выполнения
Maksim
проехали, мне уже не интересно
Anonymous
Рантаймом называют только стадию когда запускается код
Maksim
слишком долго
Anonymous
речь о том, что если ты в именах переменных ошибешься, то это обнаружится только в рантайме, а сопоставить типы можно на этапе проверки кода без его выполнения
только потому, что в js есть global, и по стандарту переменная может появиться в global в рантайме это не статическая ошибка
Anonymous
это действительно ошибка рантайма, что переменной с таким именем сейчас нет в global
Костя
ну я о том и говорю)
Anonymous
ну там сыр бор пошел когда я сказал что комитет введет типы в синтаксис
Anonymous
типа как он сможет
Anonymous
да легко)
Maksim
у кого есть айфон 7?)
Костя
но есть все же проблема
Костя
все новое, что появляется, можно не использовать
Костя
и тогда никакой транспайлер не нужен
Anonymous
так так?
Maksim
ввести может и введет, только ни flow ни ts это и близко не станет
Костя
а с типами как это будет работать
Anonymous
ввести может и введет, только ни flow ни ts это и близко не станет
я утверждаю что комитет пойдет по пути flow
Костя
типа, хошь используй, не хошь - ну и хрен с тобой?
Maksim
Есть у кого предположения почему этот проклятый адрес бар прыгает? Айфон 7, хром
Anonymous
я утверждаю что комитет пойдет по пути flow
но это конечно только мое личное восприятие будущего
Anonymous
типа, хошь используй, не хошь - ну и хрен с тобой?
Ну и сейчас в flow и TS типы опциональны
Anonymous
Их можно не указывать, тогда будет обычный js
Anonymous
обратная совместимость, вот это все
Костя
потому что в рантайме их и так нет
Костя
код транспилится в обычный жс без типов энивей
Дима
Типы — это симулякр