🔥

Тред (Старовойт Андрей)


Логично начать разговор с JavaScript (точнее ECMAScript). Как вы думаете, что за язык на приложенной картинке?
notion image

Многие узнают ActionScript 3. Но на самом деле, это еще и ECMAScript 4, спецификация языка, которая так и не была выпущена. ES4 включал типы (номинативная типизация), классы, интерфейсы, пакеты (что-то вроде ES модулей, но идейно ближе к тому, что есть в Java)

В TS и ES6 используется немного другой синтаксис (без ключевого слова function)
notion image

Кроме ES4 также была спецификация ES4X, которая предлагала синтаксис работы с XML в JavaScript коде, подобный JSX в React
notion image

А теперь самое интересное: эти спецификации были написаны в 2003-2004 годах. Получается, что многие идеи, на которых строится современный web, появились еще 15 лет назад

А еще все эти скриншоты были сделаны в WebStorm, потому что WS поддерживает ES4 и E4X... Хорошо, что все это было не напрасно, и поддержка ES4 нужна еще и для ActionScript 3. У IDEA до сих пор есть некоторое количество пользователей, которые пишут с использованием Flex (Flash)

Наличие классов, интерфейсов, XML-выражений в ES4/E4X на начальных этапах помогло быстро добавить поддержку подобных фич для TS, ES6 и JSX. Но на данный момент от этого больше головной боли, чем пользы

Ну и для тех, кто не знаком с историей ES4: спецификацию сочли слишком революционной, и вместо нее приняли ES5. Часть фич, предложенных в ES4 была переработана и добавлена в ES6 (спустя 10 лет), а другая часть видимо никогда не будет реализована