애플은 왜 objective-c 를 고수하는가?

idotrip의 이미지

현재 obj-c 가 쓰이는 분야에서 나름 인정하는 성공한 케이스는........

단하나! 애플사의 Mac OS 와 아이폰 개발환경 입니다.

그외에 개발환경에선 사실상 쓰이는 곳은 전무합니다.

그렇다면 과연 성공했다 봐야 할까요? 아님 실패?

교육적 학론적 언어로써만 가치가 있는걸까요?

대체 애플이 왜 개발자도 쓰기 어려워하고 생산성 낮고 개발자 인프라도 빈약한 언어를 끝까지 고수하는걸까요?

obj-c로 했다면 사실 C++로 지원하는것도 그다지 무리가 아닌데 말입니다.

이건 추측컨데 오로지 경쟁사와 차별을 두고 시장진입을 어렵게 할려는 술수에 불과한거 같다고 봅니다.

tedfromsky의 이미지

a

jeeeyul의 이미지

언어의 호불호에 대해서 논하는 건 지루한 일이지만...

Objective C가 사용된 이유라면,
기술적으로만 놓고 보자면, 그 상단부에 얹어진 코어 도큐먼트, 바인딩 패턴등이 있지 않을까 합니다.
실험적으로 등장했다 사라진 가비지 컬렉터나,
오늘날의 ARC컴파일러도, 이런 NSObject가 가지는 리테인 모델에 의존성이 있죠.

그리고 자바 보다야 어떨지 모르겠으나,
C++보다는 훨씬 쉽고 유연한게 사실이죠.
그런 면에 나름의 매력과 재미를 갖춘 언어임에도 틀림없구요.

정치적 측면에서는 저는 확신은 없습니다만,
OS9이 똥이 똥을 싼 형상이 된 마당에,
애플의 입장에선 NS의 것을 그대로 갖고 오는 것 이외에
현실적인 대안은 없었을 겁니다.

IDE 지원의 경우에는:

바인딩 타겟과 셀렉터로, 블록으로 인한 반쯤 다이나믹 타이핑 특성이 있다보니
정적 컴파일 시점에 완전히 제대로 지원하는 것이 애초부터 좀 불가능한 면모도 있습니다.
그래도 엑스코드가 하는정도로도 충분합니다.
(뭐 로컬 변수 리팩토링 하다 뻗는거 보면, 죽여버리고 싶긴 합니다.)
이거 쓰다보니 XCode3에서는 플러그인 만들어서 Xcode를 확장할 수 있었는데
4에서 막아 버린게 생각나서, 좀 화딱지가 나긴 하는군요.

여튼 IDE가 거의 아무것도 안해줘도 NodeJS같은 것도 나오는 것 보면 말이죠,
이게 뭐 그리 큰 문제인지는 모르겠습니다.

제가 실질적으로 갖는 유일한 불만은 이거 하닙니다.

지들부터 다 ObjC로 만들던가:

굉장히 초보적인 코코아나 iOS앱이 아니고서는 ObjC만 가지고 할 수 있는 일이 거의 없습니다.
서드 파티 라이브러리도 부족하지만, OS라이브러리도 ObjC로 포팅된 건 너무 쬐금이에요.
어지간하면 다 C나C++을 써야 하고,
이들을 연동하기 위해 다시 ObjC 래핑 작업으로 한 세월을 보내야 합니다.

뭐 근데, 지들이 제안한 언어로 런타임을 제공 못하는건 윈도 런타임도 마찬가지긴 하죠.
하지만 윈도에선 적어도 별도 래핑 과정 없이 C를 섞어 써도 됩니다!

ps.안드로이드도 네이티브 SDK안 쓰고는 게시판 수준 왜엔 만들기가 어렵습니다.
달빅 머신의 메모리 관리가 J2ME를 모델로 했거든요.

minspapa의 이미지

모르는것들 많이 알게해주신 분들께 감사드리면서..
제 생각엔, 이 세상에 출현된 모든 언어들은 분명 장 단점이 있고, 어떤 시스템이 있을때, 그 시스템에 특성화 되거나, 보다 더 유용한 언어를 사용하는게 맞을테니..
osx에서는 obj-c가 c,c++ 언어들에 비해 분명 단점보다 장점이 있기 때문에 사용하지 않나 싶네요.
특정 언어가 대세다... 라는 말은 그 언어의 장점이 부각되는 시스템이 많이 사용되고 있다... 라는 의미인것 같네요...
거꾸로는 대세인 언어로 구현 가능한 시스템을 많이 만들고 있다.. 라는 의미인것 같습니다...

페이지