Do we have to pick just one term?
I like guns, weapons, firearms, bang-sticks, pieces, gats, arms, shooters, hand cannons, walking artillery, powder-actuated power tools, and things that go bang in the night.
When referring to a specific object in serious conversation, my personal habit is to designate it by what class of firearm it is-- pistol (which I use to identify both revolvers and autoloaders), shotgun, rifle, or whatever. When I was a kid, the older generation of my family would always correct me if I referred to anything but a shotgun as a "gun". They'd say, "That's not a gun, that's a pistol," "that's not a gun, that's a rifle," which I found (and still find) perfectly silly.
I think both firearm and weapon are more formal terms than gun. If someone repeatedly uses them in a normal conversation (not a class that they're teaching or a news report, etc.), I'll probably get the impression that they're trying to put themselves above me by using fancy talk. Kind of like if someone keeps calling me "thou" and "thee" when they're not preaching a sermon.