🔥

Тред (Тимофей Плотников)


Пойдём от частного к общему и, прежде чем обсуждать разные ЯП, поговорим про камень преткновения современности - JavaScript 👾 Его обожают и ненавидят. Критикуют дизайн, но используют в каждом утюге. Ваши версии, какова причина такого дуализма мнений?
Полностью согласен со всем что вы ответили под этим твитом. Думаю дуализм складывается из двух (хех) важных факторов: отличная идея для языка но посредственная реализация. Сейчас поясню 🧵 twitter.com/jsunderhood/st…

Начнём с идеи. Идея была благородная — встроить язык программирования в браузер, который в то время мог отображать только статические документы. Причём этот язык должен быть прост в освоении для веб-мастеров и не самых одаренных программистов (первый звоночек) 🧵

Ту же самую цель преследовал SQL - быть доступным широкому кругу людей. Сказано - сделано. Осталось лишь решить каким должен быть язык для браузера. Примерно сразу становится понятно что это должен быть динамический интерпретируемый ЯП 🧵

Итак, благородная цель — есть. Примерное представление о будущем языке — есть. Но было ещё кое-что... Надвигающейся релиз Netscape (второй звоночек). Он должен содержать в себе интерпретатор какого-либо ЯП для написания скриптов для веба... 🧵

Вот тут мы и подходим к посредственной реализации. Не знаю насколько правдивы рассказы про "дизайн языка за 7 дней", но то, что над дизайном подумали мало это видно 🧵

Чем проще ты хочешь сделать язык, тем дольше ты должен думать над его реализацией. Убирая сложность из user land ты прячешь её под капот. А это не так просто 🧵

Например, почему в JS решили всё приводить к строке?Да скорее всего потому что так было тупо проще. Зачем париться о привидении типов, если всё можно в строку! 🧵

Привидение типов это лишь один пример из многих "странностей" JS, не буду духариться насчет остальных, уверен вы уже много об этом слышали) Как мне кажется, ему просто не уделили достаточно времени в начале, а теперь он тянет груз прошлых ошибок 🧵

Всё вышесказанное понятно, но почему же он так популярен? Тут всё просто: дизайн языка не влияет на его популярность. Влияет рантайм. Разрабам нужен был самый короткий путь их кончиков пальцев в браузер, они его получили :)