The question came up in a [discussion](https://stackoverflow.com/questions/9119625/python-boolean-comparison-logical-error/9119742#9119742) at StackOverflow.

Is there a clean distinction between the two concepts **cast** and **convert** (concerning the type of an object), or are these two words describing exactly the same? How about languages other than C++, Python and Java? **EDIT**: What if the types in question are primitive types, like `int` to `float`?