Có vẻ như tôi phải đồng ý với post này khi nó khẳng định rằngđộng Hầu hết các ngôn ngữ lập trình năng động
[...] mã trong ngôn ngữ tạo kiểu động sau ước tĩnh-gõ
Nhiều mã ngôn ngữ động tôi gặp phải thực sự có vẻ là khá static (suy nghĩ của PHP) trong khi các phương pháp tiếp cận động nhìn hơi vụng về hoặc không cần thiết để thay thế.
Phần lớn thời gian, nó chỉ là bỏ qua các chữ ký loại, trong đó, trong bối cảnh gõ/suy luận/gõ cấu trúc, thậm chí không phải ngụ ý nhập động.
Vì vậy, câu hỏi của tôi (và nó không có nghĩa là quá chủ quan), trong đó động ngôn ngữ hoặc lĩnh vực ứng dụng là tất cả những tính năng ngôn ngữ năng động tiên tiến hơn (couln't đó được nhân rộng trong tĩnh/biên soạn ngôn ngữ dễ dàng) thực sự và được sử dụng một cách tự nhiên.
Ví dụ:
- Reflection
- continuations First-class
- Runtime đối tượng thay đổi/thế hệ
- Metaprogramming
- Runtime đánh giá đang
- không tồn tại hành vi thành viên
Ứng dụng hữu ích cho các kỹ thuật như vậy là gì?
Tôi không muốn trở thành người theo dõi, nhưng tôi nghĩ chúng tôi cần xác định "ngôn ngữ động" tốt hơn một chút, ít nhất là ngoài các tính năng này. Ví dụ, Haskell thường được coi là paragon của một ngôn ngữ tĩnh, nhưng nó có sự phản chiếu, tiếp tục, lập trình meta (xem mẫu Haskell) và đánh giá mã thời gian chạy. Chúng ta đang nói về gõ động hay tĩnh? Gửi động? "Năng động" là gì? – Chuck
@Chuck: Vâng, bạn nói đúng và, thành thật mà nói, nó không phải là dễ dàng.Tôi chỉ cần gắn vào các tính năng mà tôi đề xuất, bao gồm tất cả ngôn ngữ kịch bản/ngôn ngữ được nhập động và làm phần còn lại cũ negativo (Không ai coi C++ là ngôn ngữ động);) – Dario