Dmitry
Это всё правда не холивара ради, но блин )))
Dmitry
мухи и котлеты, до коней с людьми пока не дошли
Алексей
есть два ортогональных направления типизации статическая-динамическа и сильная-слабая
Алексей
строгая типизация - синоним сильной типизации
Dmitry
если брать в таком ключе, то я не прав
Dmitry
а мне это не нравится )))
Дима
Сильная типизация ето та которая нравится мне
Алексей
короче https://habrahabr.ru/post/161205/
Sergey
Сильная типизация ето та которая нравится мне
а в чем кайф, если в одном предложении?
Дима
Слабая — та которая не нравится
Dmitry
короче https://habrahabr.ru/post/161205/
я из старой школы, и для меня строгая == сильная ( не читать как === )
Алексей
а в чем кайф, если в одном предложении?
нет неявных преобразований типов, который могут привести к проблемам
Алексей
я из старой школы, и для меня строгая == сильная ( не читать как === )
я и говорю, что строгая является синонимом сильной типизации
Dmitry
Воу, ну так не стоит писать преобразования типов, именно об этом я и говорил
Дима
а в чем кайф, если в одном предложении?
В дискуссиях в которых каждый имеет ввиду свое. Не вижу смысла делить кроме как на статическую и динамическую и в этом случае предпочитаю статическую
Алексей
но у TS прежде всего статическая типизация
Дима
Сильная типизация ето та которая нравится мне
А вся эта сильная слабая — ебанина которая сводится к этому тезису
Алексей
за исключением случаев с any конечно же
Дима
Dmitry
Вот тут соглашусь, как и любового скриптового языка (с недавних пор), она слабая, но не динамическая
Алексей
Воу, ну так не стоит писать преобразования типов, именно об этом я и говорил
вопрос не в "стоит/не стоит", а в самой возможности сделать неявное преобразование
Dmitry
Так не нужно их делать
Алексей
У тс слабая типизация
ну вообще то да 0 == undefined
Dmitry
да, но 0 === undefined false
Дима
тогда почему NodeJS?
Ну просто я пишу на узком типизируемом сабсете жс, и практически не не делаю неявных преобразований типов
Дима
То есть у меня будут алерты при 0==undefined
Алексей
Так не нужно их делать
Обязательно найдётся человек, который обязательно напишет неправильный код с неявными преобразованиями
Nikita
реклама?)))
Где и чего?
Dmitry
Где и чего?
я пьян, мне простительно
Дима
В питоне тоже слабая
Nikita
Обязательно найдётся человек, который обязательно напишет неправильный код с неявными преобразованиями
Я видел как из тс себе в ногу стреляли. Причём тс не виноват, жс не виноват, автор не виноват, и всё в шоколаде. Но на выходе фигня.
Алексей
Пользуясь случаем, дефайн «скриптовый язык»
"А это уже вопрос на 64 доллара" (с)
Дима
Потому что мне не нравится
Дима
Сильная типизация ето та которая нравится мне
Dmitry
В питоне тоже слабая
а вот тут не согласен, там скорее динамическая от слова СОВСЕМ, даже хуже чем в PHP
Алексей
вы сравниваете тёплое с мягким
Dmitry
чего это?
Алексей
Потому что мне не нравится
и кстати слабая != плохая
Дима
Я всё пытаюсь утрировать, чтобы показать что сильная слабая это нонсенс
Алексей
Дима
Мне же не нравится
Dmitry
Отличная тема для обсуждения в пол второго ночи ))) как мне кажется )
Dmitry
RTFM
Причем тут маны, я спрашиваю твоего мнения )
Dmitry
маны я могу почитать в любое время, и там не будет мнения реальных людей
Dmitry
собственно за этим я и затеял разговор
Nikita
Я видел как из тс себе в ногу стреляли. Причём тс не виноват, жс не виноват, автор не виноват, и всё в шоколаде. Но на выходе фигня.
Там была такая штука: 1) Автор написал на тс либу, в утке заяц^W^Wлибе была функция, которая принимала на вход string. Тс очевидно ругался если туда передавать не стринг. Автор полагался на проверку тс. 2) либа собралась из тс в жс, была опубликована в npm и использовалась сторонними проектами. при сборке тс->жс тайпскрипт не добавляет проверки типов в рантайме, он просто все аннотации типов выкидывает нахрен (и проверки теряются). 3) В случае, если там оказывалась не строка, либа творила фигню и убивала котят и твоего домашнего хомяка. 4) юзеры либы тоже сфейлили валидацию на входе, потому что не ожидали такого подвоха
Nikita
Кто виноват и что делать?
Дима
Виноват тс
Дима
На входе нужно делать type refinement
Алексей
Причем тут маны, я спрашиваю твоего мнения )
Вид типизации - это не настолько субъективная тема, чтобы какие-то мнения высказывать. Вот какая типизация лучше - это уже вопрос обсуждения.
Дима
Из mixed, по дефолту считать что у нас он на входе
Дима
И из него уже выводить тип, кидая ошибки нерадивому юзеру
Nikita
На входе нужно делать type refinement
Проблема тс-либ как раз в том, что их авторы забивают на проверки типов, потому что их якобы делает за них тс. Но если собрать тс в жс и опубликовать (как и делают все), то проверок там в итоге не оказывается вообще.
Dmitry
Вид типизации - это не настолько субъективная тема, чтобы какие-то мнения высказывать. Вот какая типизация лучше - это уже вопрос обсуждения.
я ни в коем случае не пытался кого-то задеть. и прекрасно понимаю что этот "спор" (скорее правда разговор) ни к чему не приведет, но я по натуре своей исследователь ))
Алексей
На входе нужно делать type refinement
<наброс-на-вентилятор> Нормальный язык должен такие вещи сам проверять в рантайме как Java </наброс-на-вентилятор>
Дима
Фу, рантайм, даже комментировать не хочу)
Dmitry
уважуха
Алексей
Dmitry
так я не спорю )
Алексей
так я не спорю )
дискутировать/обсуждать
Dmitry
тебе не кажется что статья немного устарела за 5 лет?
Dmitry
снимаю вопрос