Может ли javascript и подобные языки сценариев получать выгоду от строго типизированного?
Просто мой ум шел сегодня. Я провел некоторое время в режиме отладки IE, просматривая веб-интерфейс, как обычно, и, о, мальчик, я вижу много ошибок:) Большинство из этих ошибок связаны с тем, что какое-то значение отличается от ожидаемого (по крайней мере, насколько я интерпретирую ошибку сообщения).
В чем причина того, что JavaScript и подобные языки сценариев не сильно типизированы? Это просто, чтобы "легче" было понятнее и доступнее, или отсутствие "времени компиляции" - настоящая проблема?
Ответы
Ответ 1
Он должен обязательно иметь сильную типизацию. ActionScript 3 строго типизирован, но все же имеет наследование прототипа и тип подстановочных знаков, если вам нужны динамические объекты.
Нет недостатков в доступности этой функции, и я должен сказать, что для проекта с умеренным и большим размером сильная типизация предотвращает проблемы TON. Чтобы получить максимальную отдачу от этого, вам нужна поддержка IDE, чтобы он мог сообщать об ошибках и предоставлять варианты автозаполнения, но Javascript был бы в совершенно новом мире, если бы он имел реальные классы и сильную типизацию.
Ответ 2
Он получает гибкость от того, что не набирается. Я лично наслаждаюсь слабо типизированными языками.
Таким образом, ответ будет заключаться в преимуществах и недостатках.
Для людей, которым требуется строго типизированный язык в браузере, доступны GWT и Script #.
Ответ 3
Может ли javascript и подобные языки сценариев быть сильно набраны?
Да, они бы, JavaScript 2.0 вводит систему типов :
Тип системы JavaScript 2.0 поддерживает понятие типа, который можно рассматривать как подмножество всех возможные значения. Есть встроенные типы, такие как Object, Number и Строка; каждый пользовательский класс (раздел 6) также является типом.
Также см.: http://timkadlec.com/2008/04/an-objective-look-at-javascript-2-0-strong-typing/
В целом поддержка сильной типизации предоставляет много интересных возможностей для прохождения компиляции и оптимизации.
Ответ 4
Мой собственный подход: вы можете разбирать скрипты перед их исполнением. Это уловило бы большинство ошибок типа и означало бы, что пользователю не нужно видеть частично выполненный-затем-завершенный сценарий. Еще лучше, было бы намного легче отладить эту вещь, если бы у нее был парсер:)
Ответ 5
По большей части мне нравятся слабые типизированные аспекты большинства языков сценариев. Единственная причина, по которой я хотел бы получить строго типизированный, кроме того, для производительности, - это то, что инструменты для реорганизации сильно типизированных языков проще, чем слабые.
Ответ 6
Я создаю структуру быстрого прототипа для eLearning в ActionScript 2, когда. Моя самая большая проблема заключалась в том, что AS2 не был строго типизирован, и это вызывает много головной боли при отладке. Я думаю, что сильная ввод текста делает код более удобным для чтения. Я думаю, что слабо типизированный язык предлагает большую гибкость.
Я склоняюсь больше к читаемости, когда мне нужно вернуться и выяснить, что происходит в коде, который я написал 6 месяцев назад.
Ответ 7
Microsoft проделала длинный путь к решению проблемы сильной печати в промежутке времени с typescript. Посмотрите:
http://www.typescriptlang.org/