idiom: if obj = get_client()

Someone once tried to convince me that something like the following is bad form:

if obj = get_client … end

Not sure why it matters that much or if it should always be avoided … any thoughts ?

This used to be very typical in C

Yes, and it was considered bad form there too. In both cases, it leads one to wonder, did the author *mean* to assign, or just forget the extra = in ==? If the code structure is such that you pretty much HAVE to do that, then put a comment to that effect. I've also seen many people slap parens around the assignment, i.e., "if (obj = get_client)", in *both* languages -- that will shut up the warnings some C compilers would otherwise (rightfully) generate.