Nhiều scripting language nổi tiếng (Javascript, Python, PHP) không cần (và không có cách nào để) khai báo biến, cứ ghi ra là có. Ví dụ lụm trên mạng:
Python:
counter = 100 # An integer assignment
miles = 1000.0 # A floating point
name = "John" # A string
print counter
print miles
print name
Javascript (như trên):
counter = 100
name = "John"
console.log(counter);
console.log(name);
PHP
$txt = "Hello world!";
$x = 5;
$y = 10.5;
Nhưng, có ai nghĩ đến cái sự nguy hiểm tiềm tàng của điều này không:
# Python
received = False
while not received:
recieved = True # lặp cho tới ngày tận thế
Chỉ có Javascript (hình như cả Perl nữa) là có strict mode giúp tránh khỏi những điều này, cho nên Javascript thành scripting language yêu thích của mình, thật đáng tiếc khi đội Nodejs không thèm phát triển lên cho ngang cơ với Python.
Khi mà thuật toán trở nên phức tạp hơn, việc phát hiện những lỗi logic như thế này rất khó khăn.
Các bạn nghĩ sao về điều này? Với mình, một ngôn ngữ mạnh như Python mà lại bị điều này, một điều rất khó chịu, thế mà vẫn trở thành ngôn ngữ phổ biến, nổi tiếng.