Десять лет TypeScript — TypeScript
Даниэль Розенвассер
1 октября 2022 г. 6 9
Сегодня день рождения TypeScript!
Но этот день рождения особенный — 10 лет назад, 1 октября 2012 года, TypeScript впервые был представлен общественности.
Первые дни
Когда TypeScript впервые дебютировал, было много скептицизма — и это понятно. Для некоторых пользователей JavaScript попытка команды внедрить статические типы в JavaScript могла показаться злым заговором или шуткой.
Но у этих функций есть свои достоинства, верно? Проверка типов, обнаружение ошибок еще до того, как вы сохраните файл, и использование богатых функций редактора, таких как завершение кода, навигация и рефакторинг? Мы знали, что у команд внутри и за пределами нашей компании возникают огромные проблемы со сложными кодовыми базами JavaScript, и мы знали, что JavaScript будет использоваться везде . Итак, кто не хотел бы, чтобы мощные инструменты помогли написать это? У команды было видение того, каким может быть TypeScript, и на самом деле, если вы оглянетесь на наш первый анонс, ценностное предложение было в основном таким же, как и сегодня!
К счастью, это видение нашло отклик у других. Вначале мы создали небольшое, но трудолюбивое и полное энтузиазма сообщество, готовое экспериментировать и переживать опыт, пока мы все еще повторяли, учились и создавали то, что еще даже не достигло версии 1.0.
Мы видели новые захватывающие усилия, такие как проект DefinitelyTyped, новые члены сообщества, помогающие со StackOverflow и нашим средством отслеживания проблем, авторы, пишущие книги и учебные пособия для языка, и новые библиотеки, делающие ставку на TypeScript.
Эти терпеливые, трудолюбивые и энергичные разработчики заложили основу для роста сообщества TypeScript.
Тем не менее, большинство разработчиков JavaScript не знали TypeScript. Так как же эта команда собиралась убедить разработчиков JavaScript в важности статических типов в языке с динамической типизацией? «Типы против отсутствия типов» были… спорной темой, и это восходит к по меньшей мере полувеку в мире программирования.
Но мы действительно хотели создать потрясающие инструменты JavaScript с помощью типов.
Можно ли это сделать?
Выдержав испытание временем
Правда в том, что это требовало совершенно другого подхода к разработке, чем мы привыкли, а также настойчивости, охвата и сопереживания. TypeScript должен был быть бесплатным и с открытым исходным кодом, и делаться по-настоящему открыто. Он также должен был беспрепятственно взаимодействовать с существующим JavaScript, развиваться вместе с JavaScript, и чувствовать себя как JavaScript. TypeScript никогда не собирался создавать отдельный, отличный и предписывающий язык. Вместо этого TypeScript должен был быть описательным 9.0015 — инновации в системе типов вокруг соглашений и шаблонов, найденных «в дикой природе» экосистемы JavaScript. Это позволило нам встречаться с людьми там, где они были, и эта философия действительно хорошо соответствовала целям проекта.
На самом деле удивительно, насколько хорошо соблюдаются цели разработки TypeScript.
Например, некоторые цели проектирования, такие как
- «Не накладывать накладные расходы во время выполнения на создаваемые программы».
- «Соответствовать текущим и будущим предложениям ECMAScript».
- «Сохранить поведение всего кода JavaScript во время выполнения».
- «Избегайте добавления синтаксиса уровня выражений.»
- «Используйте согласованную, полностью стираемую систему структурных типов».
на самом деле указывают на то, что TypeScript просто является средством проверки типов для JavaScript, добавляя только синтаксис, необходимый для проверки типов.
Поэтому мы сосредоточились главным образом на системе типов и избегали добавления нового синтаксиса и поведения во время выполнения. 10 лет спустя это может показаться очевидным, но языки программирования часто пытаются дифференцировать себя, основываясь на том, как выглядит их исполняемый код — плюс, многие типизированные языки управляют своим поведением во время выполнения на основе типов.
Но эти подходы не имеют смысла, когда вы пытаетесь строить и интегрировать JavaScript.
Нетипизированный JavaScript должен был работать так же при вставке в файл TypeScript, а преобразование TypeScript в JavaScript должно было быть таким же простым, как удаление типов. Сначала нам потребовалось несколько неверных шагов, чтобы понять это, но это была возможность для обучения, и команда избегала синтаксиса времени выполнения большую часть 10 лет.
В настоящее время, когда в TypeScript отсутствует полезная функция времени выполнения, мы не добавляем ее просто в TypeScript.
Мы работаем в рамках TC39(орган стандартов JavaScript), чтобы направлять или продвигать новые функции, чтобы
Еще один успешный принцип заключается в том, что TypeScript не пытается быть всеми инструментами в наборе инструментов. Одна из наших дополнительных целей — не «предоставлять сквозной конвейер сборки. Вместо этого сделать систему расширяемой, чтобы внешние инструменты могли использовать компилятор для более сложных рабочих процессов сборки».
Много раз TypeScript получал запросы на роль линтера, упаковщика, оптимизатора/минификатора, оркестратора сборки, упаковщика (снова) и многого другого.
Линии не всегда четко определены, особенно когда TypeScript уже делает много в качестве средства проверки типов, компилятора и языковой службы. В экосистеме JavaScript, где лучшие практики продолжали развиваться на протяжении многих лет, было невероятно важно, чтобы TypeScript оставался гибким и гибким, чтобы соответствовать различным потребностям.
Учитывая все разные сборщики, разные среды выполнения, разные оркестраторы сборки и разные линтеры за последние годы, было крайне важно, чтобы TypeScript хорошо интегрировался с каждым из них, не пытаясь вытеснить какой-либо из них.
Для нас было честью сотрудничать с авторами инструментов в этой области, поскольку все мы работаем над тем, чтобы сделать TypeScript и JavaScript проще в использовании.
Назад к сегодняшнему дню
Сегодня TypeScript — это процветающий язык, которым пользуются миллионы разработчиков по всему миру. В опросах и языковых рейтингах, таких как Ежегодный опрос StackOverflow, Octoverse Report GitHub и Языковой рейтинг Redmonk, TypeScript неизменно входит в 10 (если не в 5) самых используемых и любимых языков.
Конечно, контекст важен — использование TypeScript коренным образом переплетается с JavaScript, и каждый разработчик TypeScript также является разработчиком JavaScript. К счастью, даже когда спрашиваешь разработчиков JavaScript, используют ли они TypeScript и нравится ли им это — как в опросе о состоянии JS — ответ звучит громко «да»!
Сегодняшний успех намного выше того, что основная команда представляла себе TypeScript даже несколько лет назад, не говоря уже о десятилетии назад. Основная команда усердно работала над TypeScript, но мы знаем, что основной причиной этого успеха является сообщество. Сюда входят внешние участники TypeScript, авторы библиотек и обычные разработчики, которые сделали ставку на TypeScript и доказали эффективность языка, участники DefinitelyTyped, организаторы сообщества, эксперты, которые нашли время, чтобы ответить на вопросы, научили других и проложили путь. для новичков — каждому пользователю TypeScript, от всего сердца, спасибо . Вы были частью создания чего-то великого. Мы надеемся, что следующие 10 лет TypeScript будет радовать вас!
404 · MPL
Уведомление : Неопределенное смещение: 0 в /var/www/vhosts/mpl. org/htdocs/assets/common.php в сети 350
Locations Close 9007 Закрыто на Рождество и Новый год…
с пятницы, 23 декабря, по понедельник, 26 декабря, и с пятницы, 30 декабря, по понедельник, 2 января 2023 г.
Время работы и местонахождение публичной библиотеки Милуоки Закрыть
Аткинсон 1960 У. Аткинсон авеню.
Информация о филиале »
часов Сегодня: 9:00 — 17:00вид на залив 2566 С. Кинникинник пр.
Информация о филиале »
часов Сегодня: 9:00 — 17:00Капитолий 3969 Н. 74-я улица
Информация о филиале »
часов Сегодня: 9:00 — 17:00Центральная улица 2727 W.
Информация о филиале »Fond du Lac Ave.
часов Сегодня: 9:00 — 17:00Центральный 814 В. Висконсин авеню.
часов Сегодня: 9:00 — 17:00 Информация о филиале »Центральный подъезд 814 В. Висконсин авеню.
Информация о филиале »
часов Сегодня: 9:00 — 17:00Восток 2320 Н. Крамер ул.
Информация о филиале »
часов Сегодня: 9:00 — 17:00Хорошая надежда 7715 В. Дорога Гуд-Хоуп
Информация о филиале »
часов Сегодня: 9:00 — 17:00Мартин Лютер Кинг 310 В.
Саранча ул.
Часов Сегодня: 9:00 — 17:00Митчелл-стрит 906 У. Исторический Митчелл-Стрит.
Информация о филиале »
часов Сегодня: 9:00 — 17:00Типпеканоэ 3912 С. Хауэлл Авеню.
Информация о филиале »
часов Сегодня: 9AM — 5 PMВиллар Сквер 5190 Н. 35-я улица
Информация о филиале »
часов Сегодня: 9:00 — 17:00Вашингтон Парк 2121 бульвар Н. Шермана.
Информация о филиале »
часов Сегодня: 9:00 — 17:00Заблоки 3501 В.