There are several nicer areas, and there are some horrible areas. Like, depressingly bad or scary. Many many blocks of rowhomes and only one or two in all those blocks that are actually inhabited, the rest boarded up or used for squatting or other things... many collapsing, falling apart. Elderly that are left in those areas afraid to leave their homes. I still remember going downtown with my friends when we were teenagers and getting lost and ending up somewhere in West Baltimore about 1030 at night, people standing on street corners with non concealed handguns at their hip... I didn't stop for a single red light until we figured out how to get back on 95, ha.
Federal Hill, Canton, the general vicinity of the harbor, Little Italy, Fells Point, north Charles all have nice areas, charming historic homes, great restaurants, etc. But there is still crime in all those areas as well, it's just not as scary as parts of like West Baltimore. A friend's son was car jacked in Fells over the summer for example.
All large cities have these issues I presume. Baltimore sticks out because it's homicide rate is extremely high in comparison to its present day population numbers. And that high rate is just the people who died... There's a huge amount of shootings where the people survive too.
I love Bmore, it's my hometown but can't pretend it's safe either. But I still visit there, there's a lot to see and do, you just need to know where to go and what to avoid.