История изменений
Исправление byko3y, (текущая версия) :
TypeScript не нужен Статическая и сильная типизация не нужна.
Если не знать кто это сказал, то можно подумать, что это слова очередного говнокодера. После TS ощущения от JS немного неприятные
Господа, давайте я вам вместо Дугласа поясню, что он хотел сказать. Прежде всего стоит понять очень важную вещь: никому никогда не были нужны статические проверки типов сами по себе. Статические проверки типов нужны только как один из инструментов проверки корректности логики. Всё.
Проблема в том, что дизайн JS не дает возможности для достаточно продвинутого вывода типов, потому автоматом TypeScript может проверить вам примерно ничего. Да, есть неплохая инициатива по писанию определений типов для популярных библиотек — это может помочь, но ровно для этих библиотек. Если вы пишете собственную библиотеку — вы снова в дерьме. Аналогичные сорцы со всеми определениями на TypeScript весят намного больше, чем код на JS. А простота чтения — это тоже очень важный фактор для проверки корректности кода.
Когда же вы всё с ног до головы утыкали определениями типов и раздули размер сорцов в три раза, то вы внезапно упираетесь в проблему: выразительных инструментов TypeScript по прежнему даже близко недостаточно для того, чтобы исчерпывающе проверить статическую корректность кода. TypeScript ловит эдак треть всех багов, ту самую треть, которая бы и так была найдена при первом же тестировании, а вот с более сложной логикой он сделать ничего не может.
Позиция же Крокфорда заключается в том, что сложная логика в JS — это самая мякотка, когда у меня функции возвращающие функции возвращающие функции. И именно в этом месте TypeScript не может помочь почти ничем, кроме самых-самых примитивных вызовов. TypeScript очень хорошо подходит для тупой прямолинейной нудной логики, которая пишется чуть ли не копипастой. То есть, примерно в том стиле, в котором он пишется в Java, где уже давно широко распространена машинная генерация и анализ кода. А скоро пойдут в массы всякие Copilot, которые и вовсе будет писать подобный код вместо программиста. Является ли это «преимуществом языка»? Конечно нет — это просто костыли под убогостью этого языка, попытка сильно позже наделить язык теми качествами разработки, которые должны были быть в языке с самого начала, а именно — возможность сосредоточиться на творческом аспекте программирования и оставить рутину компьютеру.
Исходная версия byko3y, :
TypeScript не нужен Статическая и сильная типизация не нужна.
Если не знать кто это сказал, то можно подумать, что это слова очередного говнокодера. После TS ощущения от JS немного неприятные
Господа, давайте я вам вместо Дугласа поясню, что он хотел сказать. Прежде всего стоит понять очень важную вещь: никому никогда не были нужны статические проверки типов сами по себе. Статические проверки типов нужны только как один из инструментов проверки корректности логики. Всё.
Проблема в том, что дизайн JS не дает возможности для достаточно продвинутого вывода типов, потому автоматом TypeScript может проверить вам примерно ничего. Да, есть неплохая инициатива по писанию определений типов для популярных библиотек — это может помочь, но ровно для этих библиотек. Если вы пишете собственную библиотеку — вы снова в дерьме. Аналогичные сорцы со всеми определениями на TypeScript весят намного больше, чем код на JS. А простота чтения — это тоже очень важный фактор для проверки корректности кода.
Когда же вы всё с ног до головы утыкали определениями типов и раздули размер сорцов в три раза, то вы внезапно упираетесь в проблему: выразительных инструментов TypeScript по прежнему даже близко недостаточно для того, чтобы исчерпывающе проверить статическую корректность кода. TypeScript ловит эдак всех багов, ту самую треть, которая бы и так была найдена при первом же тестировании, а вот с более сложной логикой он сделать ничего не может.
Позиция же Крокфорда заключается в том, что сложная логика в JS — это самая мякотка, когда у меня функции возвращающие функции возвращающие функции. И именно в этом месте TypeScript не может помочь почти ничем, кроме самых-самых примитивных вызовов. TypeScript очень хорошо подходит для тупой прямолинейной нудной логики, которая пишется чуть ли не копипастой. То есть, примерно в том стиле, в котором он пишется в Java, где уже давно широко распространена машинная генерация и анализ кода. А скоро пойдут в массы всякие Copilot, которые и вовсе будет писать подобный код вместо программиста. Является ли это «преимуществом языка»? Конечно нет — это просто костыли под убогостью этого языка, попытка сильно позже наделить язык теми качествами разработки, которые должны были быть в языке с самого начала, а именно — возможность сосредоточиться на творческом аспекте программирования и оставить рутину компьютеру.