While we're at it: IDL.
IDL is supposed to be a language for data analysis, especially for physics. You know, calculating things and displaying information about them.
Oftentimes, in physics, you'll want to write a program that uses a loop to iterate over a data set, run a simulation, &c. So, guess what this does?
Code:
for i = 0, 100000 do begin
[i]... put some simulation code here ...[/i]
endfor
If you said "runs the stuff in the loop 100,000 times", you're wrong.
It runs forever.
You see, you implicitly declared i to be an integer, and in IDL, regular integers only go up to 32767. After that they just wrap around. You have to explicitly declare i as "i = 0L" in order to avoid this problem.
So, you've got a
data processing language that:
1. Uses a tiny, useless size for the default integer type.
2. Doesn't auto-promote on overflow (gee, you'd think physicists would have better things to do than go looking for overflow/wrap-around bugs in their code).
3. Doesn't warn you about this stuff at all.
-- Alex