Lưu ý: điều này chủ yếu là chủ quan và dựa trên kinh nghiệm và ấn tượng của tôi.
Các ngôn ngữ gõ động rất khác với các ngôn ngữ gõ tĩnh. Những khác biệt này có thể trở nên quan trọng hơn trong phần mềm doanh nghiệp nặng hơn so với hầu hết các ứng dụng khác.
Các ngôn ngữ gõ tĩnh có xu hướng rất quy định. Một phương thức sẽ chỉ lấy đầu vào khớp chính xác với chữ ký của nó. Các cấp truy cập có xu hướng rất quan trọng và các giao diện được xác định rõ ràng, với các hạn chế dài dòng nhưng rõ ràng để áp đặt các định nghĩa đó.
Mặt khác, các ngôn ngữ gõ động rất thực dụng. Chuyển đổi loại thường xảy ra ngầm, các chức năng thậm chí có thể phát cùng nếu bạn cung cấp loại đầu vào sai miễn là nó hoạt động đủ tương tự. Trong các ngôn ngữ như Python, thậm chí các cấp truy cập sẽ dựa trên hợp đồng thay vì các hạn chế kỹ thuật (nghĩa là chỉprivate
vì bạn được bảo không sử dụng nó và nó có một cái tên ngộ nghĩnh).
Nhiều lập trình viên thích ngôn ngữ động vì chúng (được cho là) cho phép tạo mẫu nhanh. Mã thường kết thúc ngắn hơn (nếu chỉ vì thiếu khai báo kiểu) và nếu bạn muốn vi phạm giao thức thích hợp vì bạn cần một giải pháp nhanh và bẩn hoặc muốn kiểm tra một cái gì đó, điều đó có thể dễ dàng.
Bây giờ, lý do mà các công ty "enterprisey" thường thích các ngôn ngữ được gõ tĩnh chính xác là chúng hạn chế hơn và rõ ràng hơn về những hạn chế đó. Mặc dù trong thực tế, ngay cả mã được gõ tĩnh có thể bị phá vỡ bởi những kẻ ngốc với trình biên dịch, nhiều vấn đề sẽ được nhìn thấy rõ hơn nhiều trước đó trong quá trình (tức là trước khi chạy). Điều này có nghĩa là ngay cả khi cơ sở mã lớn, nguyên khối và phức tạp, nhiều lỗi có thể dễ dàng bị bắt, mà không phải chạy mã hoặc gửi nó đến bộ phận QA.
Lý do lợi ích không vượt quá nhược điểm đối với nhiều lập trình viên ngoài môi trường đó là vì đây là những lỗi thường sẽ dễ dàng bị bắt gặp khi kiểm tra kỹ mã hoặc thậm chí bằng cách chạy nó. Đặc biệt là khi làm theo một phương pháp dựa trên thử nghiệm, những lỗi này thường trở nên tầm thường để dễ nắm bắt và dễ sửa chữa. Ngoài ra, với nhiều công ty như vậy có chu kỳ phát hành ngắn hơn nhiều, năng suất thường quan trọng hơn độ cứng và rất nhiều thử nghiệm (cơ bản) đang được thực hiện bởi chính các nhà phát triển.
Một lý do khác mà các tập đoàn enterprisey không sử dụng nhiều ngôn ngữ được gõ động là mã kế thừa. Có vẻ ngớ ngẩn như chúng ta có vẻ mọt sách, các tập đoàn lớn sẽ thường bám vào các giải pháp hoạt động, ngay cả khi chúng đã quá hạn sử dụng. Đây là lý do tại sao rất nhiều công ty lớn thực thi Internet Explorer 6 và rất chậm để nâng cấp hệ điều hành của họ. Đây cũng là lý do tại sao họ sẽ thường viết mã mới bằng các ngôn ngữ "cũ" (ví dụ: các phiên bản Java cổ): việc thêm một vài dòng mã vào một phần mềm chưa phát hành sẽ dễ dàng hơn nhiều so với việc chấp thuận viết lại hoàn toàn trong một ngôn ngữ mới ngôn ngữ.
tl; dr: các ngôn ngữ tĩnh cảm thấy giống như quan liêu hơn, vì vậy các nhà quản lý enterprisey thích chúng tốt hơn.