There are some fictional characters that end up being very divisive among fans: Holden Caulfield. Patrick Bateman. Humbert Humbert.
Severus Snape is one of these characters.
Critics remark that he was abusive to students, which is true, the way he treated Neville especially was abominable. They also claim that his “love” for Lily was an obsession, and he was angry and bitter for being “friendzoned.” But I recently came across this post which points out that the fact of the matter is Snape never told Lily how he felt. He never harassed her or forced himself on her.
“He became a bad friend. He betrayed her. He regretted it. He tried to save her life. He failed. He tried to protect her child. He wanted to protect Harry for Lily’s sake. He wanted to at least partially make up for the way he treated Lily. That was his motivation, not ‘he was friendzoned.’”
Don’t get me wrong, I don’t like Snape as a person. He is an asshole, and he should never be in charge of teaching children. He very clearly hates himself, thinks of himself as a failure (for Lily’s death, for not having achieved the coveted DADA position, maybe even for never telling Lily how he felt), and he projects that onto students.
But the thing about Snape as a character is that his psychology makes sense (much the same way that Harry annoyed the hell out of me in Order of the Phoenix as a whiny adolescent). Snape is a thoroughly three-dimensional character, which isn’t an easy thing to do in any work of fiction and especially hard in a fantasy world written for a young adult audience.