Будут Ли Статически Типизированные Языки Заменены Динамически Типизированными Языками?

Я уже много лет являюсь поклонником статически типизированных языков.

Я усвоил урок на собственном горьком опыте, используя C. Слишком много систем сломалось из-за глупых ошибок при наборе текста.

Когда появился C++, я был ярым сторонником и ярым сторонником строгой типизации.

Я высмеивал светских болтунов, которые жаловались на потерю гибкости.

В конце концов, надежность была гораздо важнее гибкости.

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

Четыре года назад я присоединился к XP (методологии экстремального программирования).

Мне понравился акцент на практичности, который она добавила в разработку программного обеспечения.

Мне также понравился акцент на тестировании.

С тех пор меня зацепила идея тестирования.

Я больше не могу представить создание кода без использования TDD (разработка через тестирование).

Я даже не могу представить, чтобы у меня не было полного покрытия тестами, чтобы мои разработки были в безопасности.

Около двух лет назад я заметил кое-что.

Я стал все меньше и меньше полагаться на набор текста в целях надежности.

Мои модульные тесты не позволяли мне совершать ошибки при наборе текста.

Чем больше я зависел от модульных тестов, тем меньше я зависел от надежности на основе типов в Java или C++ (мои языки).

Я думал, что эксперимент прошел хорошо.

Итак, я попробовал написать несколько приложений на Python, а затем на Ruby (очень известный динамически типизированный язык).

Я не очень удивился, когда обнаружил, что ошибок при вводе просто никогда не возникало.

Благодаря модульным тестам мой код был строгим и последовательным.

Мне просто не нужна была статическая типизация, от которой я зависел столько лет. Я также понял, что гибкость динамически типизированных языков значительно упрощает написание кода.

Модули легче писать и легче изменять.

Никаких проблем со сборкой нет. Жизнь в мире динамической типизации принципиально проще.

Теперь я снова программирую на Java, потому что проекты, над которыми я работаю, требуют этого.

Но я не могу не признать, что чувствую притяжение динамически типизированных языков.

Я хотел бы программировать на Ruby, Python или даже Smalltalk. Кто-нибудь еще чувствует что-то подобное? Поскольку все больше и больше людей принимают TDD (что, я считаю, неизбежно), будут ли они чувствовать то же самое, что и я? Будем ли мы все программировать на динамически типизированных языках к 2010 году? 26 апреля 2003 г.

Роберт Мартин, выдающийся разработчик программного обеспечения, Автор «Agile-манифеста», автор принципов SOLID, Свободно владею C++ и Java :) Теги: #динамическая типизация #статическая типизация #tdd #программирование

Вместе с данным постом часто просматривают: