Just as there seem to be an incredible number of slang terms to describe those who are intoxicated, so there are many used to describe fools and idiots. I recently came across an impressive list in Stuart Berg Flexner's 1982 book Listening to America. Here are just a few samples from that list, which covers about seven unusually large pages:
addlebrain, in use since 1674
hockey puck, 1970s
jelly bean, 1915
nincompoop, 1676 (originally spelled niconpoop)
out to lunch, 1950s
playing with half a deck, late 1960s
Chances are you are surprised at how old some of these slang terms are. The list illustrates how someone in each generation manages to come up with a new way to call somebody else else an idiot.