Armor was extremely effective, for the purpose it was intended to fulfill. That purpose being to protect the warrior from all the MINOR wounds that he would otherwise have sustained in melee combat. One of the things people tend to overlook is that most combatants were rendered non-combatants by non-life threatening (by today’s standards) wounds; cuts to the arms, legs, shoulders, etc., that wouldn’t kill the warrior outright, but would make it impossible for him to continue fighting, either immediately, due to shock and incapacitation, or eventually, as cumulative blood loss sapped his strength. Armor prevented nearly all of this damage, so the knight could continue the attack.
Yes, armor was vulnerable to distance weapons, such as heavy long or cross bows and polearms (pikes, lances, poleaxes, etc). That’s why they carried shields unless they knew they wouldn’t be facing distance weapons. There was also a medieval “arms race”, between bows and armor. Bows would reach the point where they could penetrate the armor of the day with relative ease, so the armorers would improve the armor and the bowyers would go back to work on making the bows more powerful.
It took anywhere from a fair amount to a LOT of strength to penetrate armor, depending on the type of armor, the weapon used, the skill of the attacker, and the point of attack. Keep in mind that, for most of armor’s reign, weapons were made of bronze, iron, or what we would call “mild” steel. They didn’t hold an edge well, by our standards, and would often bend, break, or flex (thereby blunting the force of the blow) if the strike wasn’t at just the right angle. None of these weaknesses were a problem when attacking an unarmored opponent, but an armored knight was a whole different ballgame. A very SHORT ballgame, for a naked barbarian. That was the whole point of armor, and it served it’s purpose extremely well.