Języki dynamiczne są teoretycznie w niekorzystnej sytuacji, wszystkie pozostałe są równe, ponieważ określają mniej o tym, jak działa kod (jakie są ograniczenia), a zatem mniej refaktoryzacji można wykonać automatycznie, a pojawiających się problemów nie można również automatycznie wykryć .
Ale wszystko inne nie jest równe. Najpopularniejsze języki dynamiczne pozwalają na uzyskanie bardzo zwartego, ale zrozumiałego kodu, co ogólnie przyspiesza ich rozwój i sprawia, że logika (która może ulec zmianie w refaktoryzacji) jest łatwiejsza do zauważenia wizualnie. Więc chociaż możesz stracić względną przewagę w pracy w dynamicznym języku, nadal możesz wyjść na przód, szczególnie jeśli i tak planujesz ręczne refaktoryzowanie.
Z drugiej strony istnieją języki o typie statycznym z zasadniczo tymi samymi zaletami co języki dynamiczne (tj. Kompaktowe i zrozumiałe - z typami w większości wywnioskowanymi, ale bardzo tam): Haskell jest być może wiodącym przykładem, ale OCaML / F #, Scala, i inne również należą do tej kategorii. Niestety, ponieważ są rzadziej używane niż najpopularniejsze języki o typie statycznym, nie mają dla nich tak szerokiego zestawu narzędzi (np. Do refaktoryzacji).
Podsumowując, myślę, że odpowiednio dostosujesz się do zwinnych metodologii w większości języków; Nie powiedziałbym, że jest teraz wyraźny zwycięzca, ponieważ praktyka jeszcze nie dogoniła teorii.