Какой язык программирования порождает меньше всего труднонаходимых ошибок?

Какой язык программирования порождает меньше всего труднонаходимых ошибок?
Какой язык программирования порождает меньше всего труднонаходимых ошибок? - caleb_woods @ Unsplash

Какой язык, по вашему мнению, позволяет среднему программисту создавать функции с наименьшим количеством труднонаходимых ошибок? Это, конечно, очень широкий вопрос, и меня интересуют очень широкие и общие ответы и мудрости.

Лично я обнаружил, что трачу очень мало времени на поиск странных ошибок в программах на Java и C#, в то время как код на C++ имеет свой отдельный набор повторяющихся ошибок, а Python/similar имеет свой набор обычных и глупых ошибок, которые были бы обнаружены компилятором в других языках.

Также мне трудно рассматривать функциональные языки в этом отношении, потому что я никогда не видел большой и сложной программы, написанной полностью функциональным кодом. Прошу вашего мнения.

Edit: Совершенно произвольное уточнение труднонаходимой ошибки: Требуется более 15 минут для воспроизведения, или более 1 часа для поиска причины и устранения.

Простите, если это дубликат, но я не нашел ничего по этой конкретной теме.

Чем мощнее система типов языка, тем больше ошибок будет отловлено на этапе компиляции.

На следующем рисунке сравниваются некоторые известные языки программирования с точки зрения мощности, простоты и безопасности их систем типов. [ Источник ]

alt text

*Факторинг возможности использования небезопасных конструкций.

C# попадает в ряд небезопасных из-за ключевого слова "unsafe" и связанного с ним механизма указателей. Но если вы хотите рассматривать их как своего рода механизм встроенных посторонних функций, то не стесняйтесь и поднимите C# выше.

Я отметил Haskell '98 как чистый, но GHC Haskell как не чистый из-за семейства функций unsafe*. Если вы отключите unsafe*, то соответственно поднимите GHC Haskell вверх.


LetsCodeIt, 27 мая 2023 г., 08:01