Для меня это: сильный тип
"строгий контроль типов" подразумевает, что язык программирования устанавливает серьезные ограничения для смешивания, которому разрешают произойти, предотвращая компиляцию или выполнение исходного кода, который использует данные в том, что считается недопустимым путем
Почему это важно? Поскольку я люблю ошибку компиляции намного больше, чем ошибка периода выполнения.
Я предполагаю, что лучше предоставить некоторую информацию и некоторые причины, почему это важно.
Выразительность.
То есть, он позволяет легко выразить дизайн и идеи и не требует технических обходных решений для создания работоспособности.
1 ) Строгая типизация и функции которые его поддерживают .
C # / Java v1.0 были строго типизированными языками, но иногда вам приходилось нарушать статическую типизацию, потому что просто не хватало выразительности, чтобы делать некоторые вещи и статически типизировать (т. Е. Вам нужны были приведения при извлечении объектов из нетипизированного сборник например).
Дженерики, конечно, значительно улучшают ситуацию, и все становится еще лучше на языках, которые поддерживают дженерики более высокого порядка (например, Scala).
2 ) Лаконичность. Если это очевидно, мне незачем писать. Вывод типа - отличный инструмент для этого.
3 ) Отличная библиотека. Если это часто нужно, мне незачем писать.
Поддерживается таким образом, чтобы обеспечить быстрое развертывание после хорошего тестирования.
Лаконичный, но однозначный синтаксис.
Visual Basic: Понятно, что происходит, но очень многословно.
Perl: Это довольно лаконично, но вы можете получить более понятные программы, если будете нажимать на клавиатуру случайным образом.
C #: Совершенно верно: D
Я терпеть не могу чисто явную, именительную, статическую типизацию, то есть в стиле Java. Мне кажется, что я могу эффективно программировать только на языках, которые предлагают хотя бы одно из следующего:
Утиная типизация похожа на Python, PHP, Perl, Ruby.
Хорошая система шаблонов, поддерживающая вариативные, статические if и т. Д. (Например, система шаблонов D) плюс хотя бы некоторое распространение типов (например, ключевое слово C # var
или ключевое слово D auto
) . Я использую D некоторое время, и его система шаблонов достаточно хороша, поэтому я часто называю это «утиной типизацией во время компиляции».
Без хотя бы одного из них мне часто кажется, что я застрял в полной смирительной рубашке.
Это помогает в работе. Я думаю, что хорошо знать более одного языка. Как бы мне ни нравился C#, я не считаю его лучшим во всем. Поэтому для себя я просто смотрю на поставленную задачу и на некоторые требования, а затем стараюсь выбрать язык, который лучше всего подходит.
Поддержка функций первого класса (или более высокого порядка)
Важно, чтобы код выглядел как псевдокод в том смысле, что его легко читать и писать. Для этого нет объективной меры, потому что со временем язык и программист склоняются друг к другу.