Why don't people name their sons "John" anymore?

Probably a few of them were named after their fathers, so the sons took a different nickname. Bill’s son is known as Will and Bob’s son is known as Rob.

I went to school with a Billy who then changed to Will as he got older, and a Richie who changed to Rich.

Probably a good point, but it doesn’t explain why nicknames that change the first letter of a name were once so common but have now almost completely died out.

I’d wager that some of it is that the motivation for having variant nicknames was to keep a broader variety of names in circulation, even if the pool of “official” names was still quite small. As the pool of “official” names widened, the need to have sixty different variations of “William” and “Margaret” dried up, and the most variant versions fell away. Add to this the tendency of some of these nicknames (Molly, Peggy, Polly, Sally, etc.) to be given as separate names, cleaving their assocation with Mary / Margarget / Mary again / Sarah. After all, if you’ve known a Polly who wasn’t a Mary but never known one who was, the connection isn’t that obvious.

I don’t know whether it’s “the answer,” but that totally makes sense. Thanks.

For what it’s worth, among my students, I do have one Peggy-who’s-actually-Margaret and one Mary.

Though it’s also a Catholic school, which probably skews the numbers for both of those upwards.

I’m reminded of Louisa May Alcott’s 19th-century novel Little Women in which a newborn girl is named “Margaret” after her mother (another practice that used to be more common than it is now), and consequently gets the nickname “Daisy” because her mother’s already using “Meg”.