Я уже много лет являюсь поклонником статически типизированных языков.
Я усвоил урок на собственном горьком опыте, используя C. Слишком много систем сломалось из-за глупых ошибок при наборе текста.
Когда появился C++, я был ярым сторонником и ярым сторонником строгой типизации.
Я высмеивал светских болтунов, которые жаловались на потерю гибкости.
В конце концов, надежность была гораздо важнее гибкости.
Кроме того, мы могли бы сохранить наше программное обеспечение гибким И статически типизированным, если бы просто следовали хорошим принципам управления зависимостями.
Четыре года назад я присоединился к XP (методологии экстремального программирования).
Мне понравился акцент на практичности, который она добавила в разработку программного обеспечения.
Мне также понравился акцент на тестировании.
С тех пор меня зацепила идея тестирования.
Я больше не могу представить создание кода без использования TDD (разработка через тестирование).
Я даже не могу представить, чтобы у меня не было полного покрытия тестами, чтобы мои разработки были в безопасности.
Около двух лет назад я заметил кое-что.
Я стал все меньше и меньше полагаться на набор текста в целях надежности.
Мои модульные тесты не позволяли мне совершать ошибки при наборе текста.
Чем больше я зависел от модульных тестов, тем меньше я зависел от надежности на основе типов в Java или C++ (мои языки).
Я думал, что эксперимент прошел хорошо.
Итак, я попробовал написать несколько приложений на Python, а затем на Ruby (очень известный динамически типизированный язык).
Я не очень удивился, когда обнаружил, что ошибок при вводе просто никогда не возникало.
Благодаря модульным тестам мой код был строгим и последовательным.
Мне просто не нужна была статическая типизация, от которой я зависел столько лет. Я также понял, что гибкость динамически типизированных языков значительно упрощает написание кода.
Модули легче писать и легче изменять.
Никаких проблем со сборкой нет. Жизнь в мире динамической типизации принципиально проще.
Теперь я снова программирую на Java, потому что проекты, над которыми я работаю, требуют этого.
Но я не могу не признать, что чувствую притяжение динамически типизированных языков.
Я хотел бы программировать на Ruby, Python или даже Smalltalk. Кто-нибудь еще чувствует что-то подобное? Поскольку все больше и больше людей принимают TDD (что, я считаю, неизбежно), будут ли они чувствовать то же самое, что и я? Будем ли мы все программировать на динамически типизированных языках к 2010 году? 26 апреля 2003 г.
Роберт Мартин, выдающийся разработчик программного обеспечения, Автор «Agile-манифеста», автор принципов SOLID, Свободно владею C++ и Java :) Теги: #динамическая типизация #статическая типизация #tdd #программирование
-
Time – «Умный» Трекер Времени
19 Oct, 24 -
Adblock Plus Сделал Веб-Браузер Для Ios
19 Oct, 24 -
Программируем Под .Net Micro Framework
19 Oct, 24