the #2 example in the above page is what i consider the canonical example of a language mistake designed to give coders power but which has had dramatic negative effects, the fact that an assignment can result in a value which can then be used in conditional expressions:
as you know if you are c/c++ person, what the coder probably meant was to test for equality (the == symbol):
i really wonder if this mistake might qualify for the single most common programming-language specific bug in the history of the world.
this is the kind of thing no langauge should permit. languages need to be designed for clarity of expression and resistence to such mistakes that cant be detected as errors.