절차지향 프로그래밍 방식으로 작성한 코드는 컴퓨터가 내부적으로 명령을 처리하는 구조와 유사해 실행 속도가 빠릅니다. 그러나 유지·보수와 디버깅이 어렵다는 단점이 있습니다.
예를 들어 C 언어로 작성한 10만 줄짜리 코드가 있다고 합시다. 이 프로그램에 새로운 기능을 추가하려면 10만 줄에 달하는 코드의 흐름을 모두 파악한 후 적절한 위치에 코드를 삽입해야 합니다. 이렇게 코드를 수정했더라도 기존의 실행 순서가 완전히 달라지기 때문에 코드가 올바르게 동작한다고 보장하기 어렵습니다.
기술과 산업이 발전함에 따라 사람들이 더 큰 규모의 서비스를 요구하면서 더욱 구조화되고 거대한 프로그램이 필요하게 됐습니다. 그러나 절차지향 프로그래밍은 코드를 유연하게 수정하기 힘들다는 점에서 시대적 상황에 부응하지 못했고, 이를 극복한 객체지향 프로그래밍이 등장했습니다.