Anton Soldatov
Сильверлайт
Anton Soldatov
Java serverlet че ещё
Александр
Сильверлайт
а вот это неплохая вещь была. Но ms как всегда с маркетингом налажали
Anton Soldatov
За то не налажали с TS
Anton Soldatov
К сожалению
Александр
Мне еще экосистема windows mobile жутко нравилась, очень легко было приложения под нее писать. Уже давно универсальные приложухи были, которые и на телефоне и на компе запускались, но опять с маркетингом налажали
Anton Soldatov
Он защищает от стрельбы в ногу где ты видишь, что стреляешь, не защищает где сам не видишь и на сам язык даже спецификации нет - это пиздец
Anton Soldatov
За то есть куча агитированных товарищей
Александр
За то не налажали с TS
Да а чего там лажать?
C# адаптировали под JS
Точнее наоборот. Решили сделать из JS копию C#
Александр
Anton Soldatov
Полемика в итоге про ТС такая же что в России плохо, а на западе хорошо и никакие аргументы не помогут
Anton Soldatov
По моим впечатлениям :)
Anton Soldatov
Anton Soldatov
Нет
Anton Soldatov
Вообще она не такая же
Denis
Anton Soldatov
Они там нарасширяли в два раза больше спецификации ecma
Denis
Александр
Всмысле нет? Он у тебя транспилируется в JS
И механизмы все теже, только добавили нормальную типизацию и пару других фич и ооп)
Anton Soldatov
И это нигде не описано
Anton Soldatov
Anton Soldatov
Где это утверждено как именно он транспилирует
Denis
Anton Soldatov
Не написано, а закреплено документативно:)
Anton Soldatov
Ты не можешь проверить, что он будет делать во всем интервале входных данных
Anton Soldatov
От 2022 найди
Александр
ООП я и на ES6 писал нехуево
так в том то и дело, ts делали тогда, когда es6 не было и как раз для того, чтобы на js можно было в нормальном ооп стиле с классами и типами писать)
Anton Soldatov
Или 2021 :)
Александр
а сейчас он и не нужен почти)
Denis
Александр
Это когда это?
ts появился в 2012
А es6 релизнулся только в 2015
Александр
Вот прогеры которые с C# переходилы на написание GUI под веб и ахренели немного от того, каким тогда js был))
Потому собственно TS и родился и я их могу понять.
Я от тогдашнего JS тоже немного ахреневал))
Александр
Собственно добавление в es и в js синтаксического сахара в виде классов например и прочих привычных ооп вещей и начали обсуждать, тк появились запросы на это от классической разработки с применением ооп)
Вот только JS это вообще дикая помесь ооп и функционального подхода)
В целом js и так всегда был ооп языком, но просто всем было неудобно через прототипы все оформлять, привычнее было с классами работать.
Один хрен, наследование осталось прототипным))
Александр
От 2022 найди
https://github.com/microsoft/TypeScript
тут все есть)
Спецификация врятли сильно изменилась)
Да и просто некому ее поддерживать видимо в актуальном виде.
К тому же базовая спецификация есть, в релизноты можно вот тут глянуть https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-0.html
Anton Soldatov
Anton Soldatov
Кроме того багтрек нормальный невозможно устроить без неё
Александр
Anton Soldatov
В общем я не для поспорить, если есть желание можешь погуглить указанные проблемы и сформировать мнение на основании полученной инфы
Anton Soldatov
Иначе
Anton Soldatov
Александр
Я за практику работы с TS сталкивался только с кривым типизированием от разрабов,вот тогда это болью становилось)
Anton Soldatov
Мы не договоримся в моменте :)
Anton Soldatov
На языке без актуальной спецификации
Anton Soldatov
Какие угодно
Александр
Они либо от чрезмерного усложнения, либо от криворукости по большей части.
Например когда делают типизацию входного параметра функции ввиде объединения 100500 типов))
Anton Soldatov
Никогда не узнаешь
Denis
TS унаследовал классы от ES6
Anton Soldatov
Ну к вопросу спецификации она от 2 версии, сейчас четвёртая
Александр
TS унаследовал классы от ES6
он унаследовал классы из спецификации, которая разрабатывалась раньше, чем es6 был в JS активно внедрен)
Александр
Я четко помню, что в TS они уже были, когда в JS - это достигалось только за счет babel)
Александр
Вот за первые релизы TS не отвечу. Я в 2012 еще не прогал на JS, Я еще в универе учился и прогал на с++ и C#
Denis
Александр
На TS проще применить классические паттерны проектирования, чем на чистом JS, хотя ограничений тоже много
Александр
Тк наследование в TS осталось прототипным как и в js(
Denis
Мне не нравится то, что он сыпет ошибки не там где надо, а там где надо пропускает.
Александр
Denis
Ну это нужно код открывать. Позже давай. Мне валить надо не надолго
Denis
Но у меня есть пример
Denis
Даже 2. Правда на один NDA на 50 лямов. Правда хохлам )))
Александр
Мне нравится TS по 2-м вещам
1. Типизация на этапе написания кода и подсказки по входным параметрам и структурам данных. Подсказки и ошибки по несовместимости типов
2. Унификация фронта и бека по типам данных за счет общих интерфейсов и типов
Александр
Например даж ci/cd можно настроить на поиск ошибок по не соответствию типов на фронте и беке)
Есть общий пул интерфесов и типов и они не должны отличаться при передаче по сети.
Если на фронте нужно тип дополнить, то будь добр создать наследника с новыми параметрами, что убережет от некоторого рода ошибок)
Denis
Александр
Кейс из жизни: фронт пилит новую страницу, в процессе добавил один атрибут и забыл сообщить об этом беку. Да и сам забыл, что добавил. JS по классике не ругнется на дополнительный атрибут, если на бек отправить. А вот если ci/cd на это настроить, то сервис просто не сбилдится и ругнется, что изменен интерфейс на фронте и нужно доработать его на беке)
Александр
Обратная ситуация такая же)
Бек чето поменял и запушил. Билд не прошел и вывалились ошибки на несоответствие интерфейсов, соответственно создали сразу задачу для фронта на допиливание)
Александр
Denis
Denis
Мне не понятно отличие от класса
Александр
Мне не понятно отличие от класса
ну по аналогии с другими языками и сетевыми архитектурами, интерфейс используется для описания структуры объекта на основе которой могут быть созданы классы например.
Denis
Но из того, что я видел, в ТС интерфейсы и классы полностью взаимозаменяемы
Denis
А в других языках интерфейсы совсем иначе выглядят
Александр
Мне не понятно отличие от класса
давай как джаве это опишу
interface - это по сути тип в джаве
class - это тип с реализацией/имплементацией
interface описывает структуру данных, а класс имеет и структуру и реализацию в видео конструктора, методов
В TS та же идея
Только с типами можно еще и магию делать в виде объединения, пересечения и тп
Denis