The integer division is more surprising in a dynamic language because it might stay undetected until the day you happen to pass round numbers to your function.
I don't know of any of them that expect 2 / 3 to be an integer.
And as ufo says, it creates subtle bugs because it works right on most data until you just happen to get a pair of ints. Then boom.
eg in Matlab all numbers are doubles unless you take action to make them otherwise.
> There should be one-- and preferably only one --obvious way to do it.
If I divide 1 in half, I'm left with 0.5.
(/ 2 3) ; => 2/3
(/ 2.0 3) ; => 0.6666667