While some Harry Potter fans instantly accept the choices made by their favorite characters—and, by extension, those made by author JK Rowling—many still question major events of the series, including why the adult Harry Potter would name one of his sons after Severus Snape, a professor who made Harry's life miserable during all his years at Hogwarts.
A few years back, one fan asked the author directly about her decision. In a since-deleted tweet, the user asked “@jk_rowling Why did you pick Snape to name Harry's kid after? I'm genuinely curious as he was nothing but abusive towards everyone.”
In a series of tweets, Rowling explained her reasoning. Though Snape was hard on Harry and his friends throughout the series, he was deeply in love with Lily Potter, Harry's mom. This unrequited love led him to resent James Potter, Harry’s father, and eventually Harry, too.
As Rowling sees it, Snape eventually sacrificed himself in order to save Harry at the Battle of Hogwarts, so Harry felt the need to honor him.
Though it's been more than 20 years since the first Harry Potter book was published, new fans are coming to the series all the time. Fortunately, Rowling always seems eager to fill in the blanks for her readers.