Về mặt lý thuyết, các ngôn ngữ động đều bất lợi, bởi vì chúng chỉ định ít hơn về cách thức hoạt động của mã (các ràng buộc là gì) và do đó, việc tái cấu trúc có thể được thực hiện tự động ít hơn và các vấn đề phát sinh cũng không thể được phát hiện tự động .
Nhưng tất cả những thứ khác không bằng nhau. Các ngôn ngữ động phổ biến nhất cho phép mã rất nhỏ gọn nhưng dễ hiểu, thường làm cho sự phát triển trong chúng nhanh hơn và làm cho logic (có thể thay đổi trong tái cấu trúc) dễ dàng phát hiện hơn. Vì vậy, mặc dù bạn có thể mất một số lợi thế tương đối khi làm việc bằng ngôn ngữ động, bạn vẫn có thể đi ra phía trước, đặc biệt nếu bạn dự định thực hiện tái cấu trúc bằng tay.
Mặt khác, tồn tại các ngôn ngữ được gõ tĩnh với các ưu điểm cơ bản giống như các ngôn ngữ động (nghĩa là nhỏ gọn và dễ hiểu - với các loại chủ yếu được suy luận, nhưng rất nhiều ở đó): Haskell có lẽ là ví dụ hàng đầu, nhưng OCaML / F #, Scala, và những người khác cũng nằm trong danh mục này. Thật không may, vì chúng ít được sử dụng nhiều hơn các ngôn ngữ gõ tĩnh phổ biến nhất, nên chúng không có nhiều bộ công cụ cho chúng (ví dụ: để tái cấu trúc).
Vì vậy, như một điểm mấu chốt, tôi nghĩ bạn sẽ làm đầy đủ với các phương pháp nhanh nhẹn trong hầu hết các ngôn ngữ; Tôi sẽ không nói rằng có một người chiến thắng rõ ràng ngay bây giờ vì thực tế chưa bắt kịp với lý thuyết.