Microsoft продолжает развитие и продвижение языка TypeScript, который она предлагает в качестве альтернативы традиционному JavaScript. В версии TypeScript 1.8 реализован целый ряд новшеств, в том числе усовершенствованные возможности управления структурой программы и передачи аргументов в программные модули, а также более быстрый компилятор. Новый язык можно использовать в Visiual Studio 2013 и 2015, в ряде других инструментов и в автономном варианте.
Как известно, JavaScript, недавно отметивший свое двадцатилетние, уже давно является самым востребованными инструментом Web-программирования (на стороне клиента, в среде браузера), а по некоторым оценкам — и самым популярным языком программирования в мире. Во многом такой успех объясняется простотой языка, которая изначально делала его доступным для освоения пользователями-непрограммистами. Одна из основных его особенности — слабая (динамическая) типизация данных, проще говоря, отсутствие описания типов данных, что является, вообще говоря, нарушением классических принципов программирования. Хотя, по мнению исследователей, именно эта «неправильность» стала основной причиной его массовости. Вполне возможно, что устойчивое лидирующей положение JavaScript определяется также его независимостью — язык не принадлежит ни одной из компаний или организаций, хотя сама торговая марка является собственностью Oracle (получена с приобретением Sun).
Однако то, что хорошо для «непрофессионалов», часто создает проблемы для профессионалов при создании достаточно сложных программ, требующих высокого уровня управления программным кодом. Попытки улучшить JavaScript делались неоднократно, очередной такой проект начала в 2012 г. Microsoft, предложив свой TypeScript. Отметим, что до этого Редмонд предлагал свой вариант JavaScript под названием JScript, но он все же был реализован в исходной идеологии языка (кажется, основной задачей было уйти от использования в названии Java). TypeScript же был создан именно с нацеленностью на профессиональных разработчиков, с устранением «неправильностей» исходного языка. В пользу нового варианта говорило уже то, что его разработчиком стал Андерс Хейлсберг, автора Turbo Pascal, Delphi и C#, известный приверженец «классического программирования».
Главными новшествам TypeScript стали реализация строгой (статической) типизации данных (этот момент отражен в названии языка, Type = тип) и более жесткие требования к используемым программным структурам и интерфейсам. При этом TypeScript полностью обратно совместим с JavaScript (модули JavaScript могут использоваться в TypeScript), более того, TypeScript был изначально реализован на базе JavaScript (код, написанный на TypeScript, компилируется в JavaScript). То есть TypeScript позволяет выполнять смешанное использование динамической и статической типизации данных.
Достоинства и недостатки двух подходов (динамическая типизация данных vs. статическая) хорошо известны на теоретическом и практическом уровнях: первый (JavaScript) упрощает процесс собственно написания кода, второй (TypeScript) повышает управляемость и надежность кода. Первый лучше подходит для относительно простых программ, второй — для более сложных. Учитывая эти моменты, Microsoft и развивала TypeScript, стараясь, с одной стороны, упростить написание исходного кода, а с другой — повысить его эффективность.
До сих пор реализация TypeScript исходила из предположения, что используемые в программе библиотечные модули должны оставаться неизменными, но в версии 1.8 реализован новый механизм передачи аргументов между модулями, что позволяет изменять уже задействованных компоненты библиотек. Строковые переменные теперь можно описывать в виде литералов. Кроме того, для создания исполняемого кода применяется компилятор ChakraCore с повышенной производительностью.