Objective-C는 그자체로는 메소드 호출을 C함수 호출로 변경해주는 objc_msgSend 함수를 동작하게 해주는 런타임에 의존하는, 따라서 실질적으로는 C언어와 크게 다를 것 없는 언어였다. 처음부터 C에 객체지향 개념을 더해서 확장을 만들어보는 실험의 결과물이었던 관계로 언어자체의 새로운 기능은 매우 부족했고, 이후 NeXT에 의해서 Foundation 프레임워크가 만들어졌는데, 사실 Objective-C 언어의 기능이라 여겨지는 많은 것들은 사실 Foundation 프레임워크가 제공하는 기능이라고 봐도 무방할 것이다. NeXT는 이 프레임워크를 통해서 모든 객체 클래스의 원형이되는 NSObject 클래스와 기본적인 자료형인 여러 클래스들을 디자인하였다.
Objective-C의 명분은 C를 기반으로 객체지향을 가능케하는 언어를 만드는 것이었지만, 이는 완전히 새로운 언어가 아닌 기존 언어에 약간의 확장을 덧붙인 개념으로 구현되었다. NeXT가 시작하는 시점에, 이들은 객체지향언어를 개발플랫폼의 중심으로 삼고 싶었지만, 이 시기에는 이러한 개념이 널리 통용되고 있지 않았으며, 제한적인 언어들만이 이 개념을 구현에 옮기고 있었다. 따라서 당시로서는 Objective-C는 나쁘지 않은 선택이었다. Objective-C는 객체지향적인 기능을 사용하면서도 동시에 기존의 C 코드들을 그대로 사용할 수 있었다.
더 보기 »swift에 대한 단상