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

idotrip의 이미지

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

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

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

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

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

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

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

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

kslee80의 이미지

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

위 문장의 근거를 요구합니다.

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

경쟁사는 어디고 시장은 어느 시장인지요?
정태영의 이미지

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

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

생산성이 낮다면 애플에서 그 적은 개발자 수로 지금과 같은 킬러 앱들을 생산해내진 못했겠죠.

obj-c 에서는 nil 객체의 메쏘드를 호출해도 문제가 되지 않습니다. C++ 에서는 null->somemethod(); 는 바로 invalid memory access 에러를 일으키죠. 이런 식으로 사용자의 실수를 보듬어(?)줄 수 있는 배려들이 있고, 실제 사용해보면 생산성은 C++ 을 쓰나 obj-c를 쓰나 거기서 거긴거 같아요. 그냥 문법이 조금 익숙하지 않을 뿐이죠.

최신 obj-c에서는 garbage collector 등도 들어갔으니 c++보다는 좀 더 편하게 개발할 수 있을지도 모릅니다. 사실 전 객체지향쪽으론 좀 방관자라서 -_-a

--
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

chunsj의 이미지

이런 떡밥을 물고 싶지는 않은데, 손이 물었네요....

일단 ObjC로 된 걸 C++로 바꾸는 것이 힘듭니다. 반대로는 쉬워도. 그리고 상대적으로 생산성도 높습니다.
내가 그 언어를 모르니 생산성이 낮아 라는 말을 하시는 것은 아니죠?

애플이 ObjC로 된 걸 C++로 한번 다시작성한(?) 것이 하나 있는데 그건 WebKit이었습니다. 물론 이전과
같은 ObjC framework도 제공은 됩니다만 C++을 ObjC로 덮었다고 알고 있습니다.

Scarecrow의 이미지

꺼꾸로 알고 있으신듯합니다.

WebKit의 오리지날은 qt기반의 KHTML입니다. ^^

tjdtn1001의 이미지

KDE.........

idotrip의 이미지

외국인들은 obj-c 는 시장성없는 중복 개발작업의 전형적인 아마추어적인 실패작이라 합니다.

어처구니없는 문법에 난해한 기호 사용으로 가독성 떨어지는 코드 생산으로

초기에서부터 개발자들에게 외면을 받았던터에 NeXT사가 뭔가 다르길 보여주는 쇼맨쉽이 투철한 스티브잡스의 생각으로 구사일생으로 혜택을 받은 언어에 불과하다고 하네요.

kyiimn의 이미지

Quote:
외국인들은 obj-c 는 시장성없는 중복 개발작업의 전형적인 아마추어적인 실패작이라 합니다.

근거는요?

keizie의 이미지

'옆집 아저씨가 그러는데' ...

sheep의 이미지

이분은 한글로 쓰면 잘 못 알아 들으실 듯 싶네요...

인용:

외국인들은 obj-c 는 시장성없는 중복 개발작업의 전형적인 아마추어적인 실패작이라 합니다.

citation needed....

--------
From Buenos Aires, Argentina
No sere feliz pero tengo computadora.... jaja
닥치고 Ubuntu!!!!!
To Serve My Lord Jesus
blog: http://sehoonpark.com.ar
http://me2day.net/sheep

--------
From Buenos Aires, Argentina
No sere feliz pero tengo computadora.... jaja
닥치고 Ubuntu!!!!!
To Serve My Lord Jesus
blog: http://sehoonpark.com.ar
http://me2day.net/sheep

M.W.Park의 이미지

C++이나 Objective C 나 제가 보기엔 그 나물에 그 밥입니다만... ㅋㅋㅋ

논리가 이상한건 아닌지? 젤 열심히 잘 사용하고 돈도 많이 버는 애플사도 외국인이 주축이지 않나요?

애플사가 OS부터 application 레벨 및 embeded 레벨까지 광범위한 영역을 커버하는 것은 무슨 의미일까요?

ps. 정작 자신은 잘 모르면서도 남의 말을 인용해서 무엇인가를 까는 신기한 재주를 가지고 계시는군요.

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

jick의 이미지

제가 외국회사에서 일해서 아는데..
제가 외국회사에서 일해서 아는데..
제가 외국회사에서 일해서 아는데..
제가 외국회사에서 일해서 아는데..
제가 외국회사에서 일해서 아는데..
제가 외국회사에서 일해서 아는데..

이 분은 그냥 이 말이 하고 싶으셨던 것 같네요. 나머지는 모두 곁다리. (이해가 잘 안 가시는 분은 이분의 전력을 보시면 됩니다.)

* 외국 회사에서 일하는 분들이 발에 채이는 커뮤니티에서 이 무슨 해괴한 자뻑 시츄에이션이란 말인가.

JEEN의 이미지

여기 계신분들은 님이 알맹이 없는 내용으로 커뮤니티를 어지럽히는 전형적인 트롤이라고 할 듯 합니다.

어처구니 없는 얘기에 말도 안되는 논리전개로 이해심이 떨어지는 이야기 전개로,

처음부터 여기 계신분들에게 외면 받았던 터라, "외국회사에서 일해봐서 안다는" 생각으로 어떻게 해보려는 님은 정말로 트롤이라고 생각할 듯 하네요.
_______
use perl;

use perl;

kslee80의 이미지

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

결국, 원글에 쓴 위 문장의 근거는 몇몇 외국인들의 개인적인 생각이라는 것이군요.
한마디로 그정도밖에 안 되는 빈약한 근거로 저런 주장을 하고 있다는 이야기군요.

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

그렇다면, 그 빈약한 근거를 기반으로 판단한 위 문장에서
경쟁사는 누구고, 시장은 어느 시장인지를 밝혀주시죠.
eminency의 이미지

외국회사 간지 며칠 되지도 않으셨잖아요 -_- 그나마도 신빙성이 떨어지지만...

그저 비웃음만...;

노루가 사냥꾼의 손에서 벗어나는 것 같이, 새가 그물치는 자의 손에서 벗어나는 것 같이 스스로 구원하라 -잠언 6:5

익명 사용자의 이미지

혹시 2MB?

Scarecrow의 이미지

이 떡밥도 참 유명한 떡밥중에 하나일듯 싶군요.

그런데 떡밥 내용중의 대부분은 아주 오래전에나 해당될 내용입니다.

내용의 핵심은
Objective C는 동적이고 C++은 정적이라는 겁니다.

C++의 정적인 특징은 template metaprogramming이라는 거까지 창조해낼 정도죠.

동적이라는 부분의 특징은 reflection이라고 할 수 있는데
사실 C++자체만으론 reflection이 되지 않아...
Objective C주의자들에게 공격을 많이 받았던거 같습니다.

하지만 그게 오래전에나 해당될 내용이라는 것은
qt의 경우 metaobject를 통해 그러한 동적인 특성이 모두 제공됩니다. ^^

이제 추세는 qt vs objc 떡밥이 아닐까 합니다. ^^

chunsj의 이미지

Reflection이 Java가 하는 정도라면 그게 그다지 크게 의미가 있는지는 모르겠지만,
결정적으로,

존재하는 클래스를 다른 클래스로 치환하거나 존재하는 클래스에 메소드를 추가하는
것은 - 상속이 아닙니다. - Qt가 아니라 무슨 쌩쑈를 해도 C++에서는 안됩니다.

bsakiag의 이미지

objC는 dynamic-binding 하나를 위해 너무 많은것을 포기한 언어 처럼 보입니다.
넥스트스텝이 처음 탄생할 시점에는, 그 시절의 타 언어에 비해 비교 우위가 있었겠지만...

ObjC 처럼 d-binding을 지원하면서 native compile이 되는 언어가 또 있나요? (또는 있었나요?)
(대충 흉내 만 내는거 말고 최소한 objC정도로 d-binding을 지원하는..아마 없을듯..)

없다는 전제하에.. (있더라도 존재감(?)이 거의 없다면...)
그 오랜 세월동안 d-binding 과 native compile이 되는 언어가 없다는 것은,
objC의 이런 특성이 (최소한 지금까지는..) 실패작이라는 것을 의미하는 것이 아닐런지요..?

죠커의 이미지

Objective-C 언어는 개인적으로 맘에 들지 않는 언어중의 하나입니다.

스몰토크보다는 지저분하고 C++보다는 파워풀하지 못합니다. 그리고 레거시 자료나 라이브러리도 부재하죠. 단지 애플이란 폐쇄된 시스템에서만 쓸만한 언어인 듯 합니다.

- 죠커's blog / HanIRC:#CN

imyejin의 이미지

외국에서는 업무시간에 트롤질하며 노나보군요. 좋은 회사 다니시네요.

아니면 설마 퇴근하고 놀 사람이 없어 외로와서? ㅋㅋ

외로워도 슬퍼도 울지 않는 캔디를 본받으3

임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

idotrip의 이미지

그레도 다 늙은 아줌마 펜클럽 회장하는것 보단야 훨씬 가치 잇다고 봄니다...

namo의 이미지

아.. 이분이라기 보다.. 저 베너 알아요.`~`

소타의 이미지

Obj-C가 다른 플랫폼에서도 컴파일 잘 되지 않나요?
애플의 플랫폼이 폐쇄적이다 라는 것은 코코아나 카본 같은 라이브러리 레벨(이마저도 폐쇄적인 단어와는 어울린다고 생각하지 않지만!)이지 Obj-C라는 언어에 대해서는 해당되지 않습니다.

"시장성없는 중복 개발작업의 전형적인 아마추어적인 실패작" 이게 정확히 무슨 의미죠?? 대충 해석한게 아닌지?
그냥 들은대로 영어로 써주면 여깄는 사람들이 잘 해석해 줄텐데..

idotrip의 이미지

죄승합니다. 제가 아직 영한 번역에 있어서는 좀 능력이 딸리네요.

들은 원문을 직접 쓰겠습니다.

redgirl의 이미지

여기서 오래 보기는 힘들 것 같네요 ㅎ

즐거운 세상....

즐거운 세상....

namo의 이미지

윈도우에서 gcc를 사용하기 위해 MinGW 설치하면 옵션으로 Objective-C도 선택할 수 있더군요..

koseph의 이미지

애플에서도 우선 말씀하신 C, C++ 소스 코드도 거의 수정없이 가져다 집어넣어서 컴파일 해서 사용할 수 있습니다.

단 프레임워크가 Objective-C 2.0이라는 것인데 이게 하위에 C, C++를 두고 위에서 superset으로 정의한 것이라 아무래도 개발 작업을 objective-C로 해야 하는 분위기입니다.

근데 이게 개발자들의 진입 장벽이 된다는 주장은 좀 오버이신듯 합니다.

요즘 잘 나간다고 하고 있는 iPhone 어플리케이션 개발자 중 반 이상이 objective-C를 처음 쓰는 개발자라는 것이 그 증거라고 할 수 있겠네요.

그리고 지금의 성장세를 보고 있노라면 주장하시는 바와 같이 실패한 언어라기 보다는 성공하고 있는 언어가 아닌가 싶은데요.
---------------------------------
There's always another way, dear.

---------------------------------
There's always another way, dear.

neogeo의 이미지

template 등등도 수정없이 바로 컴파일이 되는 건지 궁금합니다. boost 같은것도 거의 바로 컴파일이 된다면 주저없이 iphone 개발을 한번 시도해 봄직도 하겠군요!

Neogeo - Future is Now.

Neogeo - Future is Now.

정태영의 이미지

http://en.wikipedia.org/wiki/Objective-C#Objective-C.2B.2B

--
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

neogeo의 이미지

주어진 글만으로는 정확히 확인하기가 힘들군요.

일단 저런 제약이 저렇게 많으면 C++ 을 바로 컴파일하는건 거의 불가능하다는 소리에 가깝군요. ( default constructor 나 쓰는 C++ class 가 얼마나 된다고... exception handler 가 많이 다르면... )

C 정도만 obj-c 에서 바로 컴파일 가능하고, C++ 은 소스 수정을 상당히 해야만 가능하다는 의미로 해석이 되어버립니다만... ( 거의 다시 짜야 하겠네요 )

boost 컴파일 같은건 꿈도 못 꿀 일이겠군요...

그런데 이 내용이 Objective-C++ 에 해당하는건지 obj-c 에는 어떻게 되는 건지도 애매하군요. obj-c 자체가 사실은 C++ 컴파일이 제대로 되지 않아서 따로 저런게 있는건지 아니면 obj-c 랑 C++ 을 단순히 섞어쓰려다 보니 생긴건지 의문입니다.

일단 주어진 글로는

C++ 로 짜여진 app 의 대부분은 컴파일 불가능이겠군요.. ( 급실망중 ㅠ_ㅠ )

Neogeo - Future is Now.

Neogeo - Future is Now.

lifthrasiir의 이미지

그냥 기존의 C++ 코드와 연결하는 용도로 쓴다고 보면 딱 맞을 것 같습니다. Objective-C만으로는 C++ ABI를 따라갈 수 없으니 궁여지책으로 마련한 것 같아요.

sangwoo의 이미지

이분 잊을만 하면 수면위로 올라오시네요.
----
Let's shut up and code.

----
Let's shut up and code.

idotrip의 이미지

수면위? 무슨뜻이죠?

hiseob의 이미지

http://lmgtfy.com/?q=%EC%88%98%EB%A9%B4%EC%9C%84

그리고 질문은 QnA 게시판 가서 하세요

kasworld의 이미지

Don't feed the animals

주어는 없습니다. ^_-

sixt06의 이미지

objC 언어 만으로는 왜 Apple이 objC를 고수하는지 알 수 없습니다.
objC + Interface Builder의 강력한 조합을 사용해 보신분은 왜 objC를 사용하는지 알 수 있죠.
사실 objC도 객체 binding 이외는 C나 C++를 사용하기 때문에 언어 자체의 기능이 떨어진다고 볼수는 없지만,
objC의 IBAction과 IBOutlet로 객체간의 연결을 비쥬얼하게 하는것은 상당히 직관적인 디자인 방법이라고 생각합니다.

xylosper의 이미지

Interface Builder가 무엇인지 찾아보았는데요, 제가 실제로 써본적이 없어서 잘못생각하는 것일수도 있겠습니다만, 딱히 Objective C니까 가능한 조합은 아니지 않나요...?
당장에 C++의 Qt Designer에서도 드래그로 시그널-슬롯을 연결할수 있구요..

lifthrasiir의 이미지

Qt는 C++를 자체적으로 확장해 쓰기 때문에 다른 곳에 바로 적용하기는 좀 그렇지요. (물론 ligsigc++나 boost.signals 같은 걸 쓸 수도 있긴 합니다만 그걸 직접적으로 사용하는 툴킷은 저도 모르겠습니다.) Objective-C는 기본적으로 특정한 환경에 특화되어 만들어진 언어기 때문에 그런 필요에 맞춰서 기능을 넣을 수 있었겠죠. 그게 장점이자 단점이라고 봅니다.

xylosper의 이미지

Interface Builder라는게 Objective-C자체에 내장되어있는 것인가요?
전 Interface Builder같은것을 별도의 구현물로 생각하고 Objective-C가 아니면 구현할수 없다(혹은 어렵다)라는 의미로 생각해서, 다른 언어여도 얼마든지 구현이 가능하다는 의미로 C++의 구현예인 Qt를 든것입니다.

lifthrasiir의 이미지

Objective-C : Interface builder = C++에 signal/slot 확장 : Qt Designer 같은 관계가 성립하지 않느냐고 물으시는 거라면 물론 맞습니다. 다만 저는 언어 자체의 표현력이 중요하다고 생각해서요.

C++는 확실히 강력한 언어이고 필요하다면 웬만한 걸 만들어 쓸 수는 있습니다만, 언어에 GUI와 같은 모델을 표현하기 좋은 기능이 없다면 아무리 좋은 구현체라도 서로 만들어 쓰게 되는 현상이 생깁니다. boost가 준-표준 라이브러리 급으로 쓰이고 있지만 그 오버헤드나 역사적 이유 때문에 boost를 안 쓰는 프로젝트도 충분히 많고요. 언어가 그런 표현을 편하게 해 준다면 자연스럽게 그런 표현은 idiom화 될 것이고 제가 불평(^^;)할 이유도 없을 겁니다. Objective-C는 이런 상황을 염두에 두고 만들었기 때문에 그런 조건을 충족시키기가 훨씬 쉬웠다는 것이 제가 하고 싶은 말입니다.

(엄밀하게 말하면 Objective-C는 넥스트에 쓰이기 위해 만들어진 언어는 아닙니다. 오히려 넥스트가 Objective-C를 선택했다고 하는 게 맞는 말이겠죠. 하지만 어느 쪽이든 조건을 충족시키기 위해 만들거나 선택한다는 점에서는 같습니다.)

물론 애플이 Objective-C를 아직도 쓰는 이유는 다른 것도 있을 것입니다. 가장 큰 이유는 하위 호환성 때문이겠죠. (Mac OS XI 같은 게 나오지 않는 한 :) 하지만 넥스트, 그리고 맥 오에스 텐에서 요구하는 언어적 특성을 충분히 갖추었기 때문이라는 이유도 있지 않을까요.

mac040의 이미지

역사를 따지자면, 애플이 코플랜드라는 코드네임의 선점형 멀티 테스킹 및 메모리 프로텍드 지원의 OS 개발을 목표로 몇년을 소비한 뒤, 실패로 끝이나고, 스티브 잡스가 애플로 컴백합니다. 당시 스티브 잡스는 픽사라는 애니매이션 회사(아직도 스티브 잡스의 것)와 넥스트라는 OS 및 하드웨어 회사를 가지고 있었는데, 성능 좋은 OS 개발을 위해, 넥스트사를 애플에 합병 시켰습니다. 그래서 넥스트스텝에 이전의 맥오에스 애뮬셑을 가진 랩소디 프로젝트에 들어갔고, 이게 맥오에스 텐이 된 것으로 알고 있습니다. 이게 또 나중에 포팅되어 아이폰 오에스가 되었고요.. 뭐..딱히 장단점을 떠나서, 개발에 베이스로 이용한 제품을 따라가게 된 것이 아닐까 생각됩니다.

idotrip의 이미지

역시 운동권에서 하는 얘기나 다름없군요.

아무리 떠들어봐야 시장은 기술이 주도하는게 아닙니다.

유저들이 판단하는 것!

freedom of choice.

M.W.Park의 이미지

먼말인지 이해가 안되는군요.

해석해주실분 없나요?

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

zeon의 이미지

야구 매니아네요;;
운동, 시장, 기술...

야구 동영상?

여친이 길르는 용..

jick의 이미지

엄청난 악플의 향연을 기대하며 글을 썼다가 사람들이 자기 왕따시키고 학술적인 얘기를 하니까 삐졌나 봅니다.

whitelazy의 이미지

답은 마음속에서 정한후에 토론하시는 스타일이군요.

스레드는 왜여신건지??

jick의 이미지

꽤 예전에 모 BBS에서, 캐나다에서 대학 교수씩이나 하는 놈이 맨날 "한국인은 열등종자 니들 다 개새끼들 하악하악 섹스" 류의 저질 낚시를 하고 다니면서 낄낄거리다가, 열받은 누군가가 그걸 번역해서 (제대로 했는지는 미지수 -_-) "Professor XXX is racist"라고 해당학교 학과장에게 메일을 보냈다고 그 BBS가 잠시 시끄러웠던 적이 있었습니다.

뭐 아직 학교 안 짤리고 붙어있는 걸 보면 어떻게 수습은 된 모양입니다만......

인터넷은 넓고 미친놈은 많습니다. 웬만하면 글을 쓸 때에는 자기를 아는 사람들이 봐도 부끄럽지 않은 글을 쓰시기 바랍니다. 잘못하다 미친놈에게 걸려서 직장 짤리고 패배주의에 빠져 국내에 안주하며 신세한탄하게 되면 곤란하지 않겠습니까?

sDH8988L의 이미지

흠...

다들 안하고 있는 얘기가 있는데요... 음... 이건 너무나 당연해서 그런가요?

초기 선택이야 어땠든, 어떤 절라게 코드 잘 짜는 사람이 엄청 중요한 모듈들을 다 만들어 놓은 겁니다...

이걸 migrate 하기도 귀찮고 힘들고 그러다보니 또 Obj-C로 코드를 개발하게 되고...

이런 과정이 왕~~~ 쌓이면 이제 도저히 바꿀 수 없는 어떤 시점이 오게 될수 있습니다...

어떤 철학적이고 전략적인 뭔가가 아니라... 그냥 어쩌다 보니... 아닐까요?

magingax의 이미지

SmallTalk 가 너무너무 좋았나봅니다...
그럴바에야 아예 함수언어로 가지..

LISP 사용자모임
http://cafe.naver.com/lisper

LISP 사용자모임
http://cafe.naver.com/lisper
방송기술 개발업체
http://playhouseinc.co.kr

innobeing의 이미지


토목공학쪽이나 기계공학쪽에서는 아직도 포트란(Fortran)을 주언어로서 사용을 한다더군요. 현재는 아마 Fortan IV 나 77 보다는 Fortran90 , Fortran95 아니면 Fortran2000을 사용하고 있겠죠?!
Linux로 Cluster Server를 구성해서 Fortran 수치해석 코드를 컴파일하기도 하고, 국립연구소의 크레이(CRAY) 수퍼컴의 리소스를 빌려서 병렬로 코딩한 Fortran 코드를 컴파일하기도 하고...

이쪽 분야에서 일하시는 분들이, C나 C++과 같은 다른 언어로 옮겨가지 못하는 대표적인 이유로 드는 것이, 지금까지 쌓아온 수많은 논문과 소스코드 때문이라는 점을 듭니다. 기존 포트란 코드를 쉽게 차용할 수 있는데, 굳이 처음부터 새롭게 C나 C++로 코딩을 하는 것이 오히려 비효율적이라는 입장입니다.

Object-C도 혹시 이러한 Fortran과 유사한 이유도 한몫을 하는 것 아닐까요? 물론 Object-C가 Fortran만큼의 역사가 오래되지는 않았지만, NeXTSTEP(OpenStep) 을 포함하여 지금까지 쌓아온 자산들(소스코드 + 기타등등)때문은 아닐런지 추측해봅니다.

아니면, 스티브 잡스의 똥고집이 한몫을 했던지, 아니면 타성에 젖어서 그것도 아니면 변화가 두려워서, 이것도 아니면 무엇때문에 ???

물론 개인적으로는, " 타 경쟁사의 시장진입에 있어 조금이나마 어려운 조건을 조성하기 위해서 "가 주된 이유가 아닐까라고 생각합니다. C++ 전문가가 Object-C를 다루는 것이 그렇게 어렵지 않다라는 입장이 있을 수는 있겠지만, 그래도 Object-C를 전문적으로 다루던 인력을 모집하는 것이 쉬운 일은 아니겠지요.


* 공학계에서 포트란(Fortran)을 버리지 못하는 이유 중에 하나로, "타성"이나 "변화"에 대한 두려움도 한몫을 하지 않나 싶네요.
그리고, 관행(?)적으로 이쪽 계통의 교수들이 다른 언어(C나 C++ 같은)로 코딩하는 것을 좋아하지 않는다고도 들은 것 같습니다.
이렇게 배우고 사회에 나온 이쪽 계통 엔지니어들 역시 그래서 그렇지 않나 싶기도 합니다.

지리즈의 이미지

* 공학계에서 포트란(Fortran)을 버리지 못하는 이유 중에 하나로, "타성"이나 "변화"에 대한 두려움도 한몫을 하지 않나 싶네요.
그리고, 관행(?)적으로 이쪽 계통의 교수들이 다른 언어(C나 C++ 같은)로 코딩하는 것을 좋아하지 않는다고도 들은 것 같습니다.
이렇게 배우고 사회에 나온 이쪽 계통 엔지니어들 역시 그래서 그렇지 않나 싶기도 합니다.

>>>

fortran이 가장 어렵지 않게 작성 가능하면서도 연산이라는 면에서는 가장 빠른 속도로 실행되는 언어라고 하더군요.
지원 라이브러리의 양이나 신뢰성등의 이유까지 포함하면 아직까지는 수치 연산쪽으로는 fortran을 능가하는 언어가 없다고 합니다.

There is no spoon. Neo from the Matrix 1999.

There is no spoon. Neo from the Matrix 1999.

innobeing의 이미지


지리즈님 의견에 저도 동의합니다. 태생적으로 포트란(Fortran)이 공학계 쪽에서 수치해석 목적으로 만들어진 언어이고, 역사도 오래되었으니 당연히 그렇겠지요.


그런데, 들은 바 대화내용의 어감까지는 게시판에서 전달이 안될 것이고, 비록 몇몇 사례를 가지고 "일반화"하는데도 물론 무리가 있겠지만, 몇가지만 아래와 같이 예를 들어보겠습니다.

* 포트란보다는 C가 컴파일 속도가 빠를 것 같기도 하고, 젊은 사람 입장에서는 아무래도 포트란 보다는 C나 C++쪽이 친숙하기도 하고 해서, LAPack 라이브러리를 이용해서 C로 코딩한 코드와 수치해석 결과치를 지도교수에 제시했더니, 포트란(Fortran)으로 다시 작성해서 가지고 오라면서 교수가 화를 내더랍니다... 그 젊은이는 교수의 그러한 행동이 이해가 안되었겠지요!? 어차피 수치해석 라이브러리인 LAPack은 포트란(Fortran)에서든 C나 C++에서든 오랜 역사와 신뢰성을 가지고 있는 것이고, 수치해석은 LAPack라이브러리가 하는 것이지 C코드가 하는 것은 아니니 말입니다.

* 미국에서 학위를 받은 어느 비교적 젊은 교수는, 수치해석을 할 때 MATLAB을 사용할 것을 적극적(?)으로 권유하더랍니다. 포트란 같은 language이든 MATLAB같은 package형태의 툴이든 어차피 수치해석 결과치를 도출하기 위한 하나의 "도구"에 불과한 것이니, 도구에 너무 얽매이지 말라면서 "실용성"의 취지를 강조하더랍니다.

물론 시뮬레이션 시간이 많이 소요되는 대형 수치해석 프로젝트에 대해서도 MATLAB 같은 툴로 해결할 수 있는지에 대해서는, 제가 이쪽 전문 계통이 아니므로, 모르겠습니다만..


이 글은 지리즈님의 의견에 딴지를 걸려고 단 댓글은 아닙니다.

zrobot의 이미지

혹시 그언어에도 포인트랑 이런게 똑같나요?

xylosper의 이미지

object-c (X) Objective-C (O)
포인트 (X) 포인터 (O)

Objective-C는 C의 완벽한 super set 언어입니다.
바꿔 말하면, Objective-C 컴파일러는 모든 C 소스를 수정없이 컴파일 할 수 있습니다.

zrobot의 이미지

Objective-C는 C의 완벽한 super set 언어입니다.
허..
사람 애닳는 구절입니다
지금 엄청 고민중이에요 그정도라면....
이참 무너진거 레벨업에 도전 해봐야 겠네요 감사합니다.

^^;;

singi의 이미지

좋은거 많이 배우고 갑니다 ㅋ

jaurang2908의 이미지

그냥 애플 개발자들이 좋아하는 언어라 그렇습니다..

회사에서도 그냥 개발팀장이나 CTO가 좋아하는 언어로 개발하게 되지요..

기술적 우월함..같은건 개뿔도 정치적인 이유로 고려대상이 아닙니다.. 그냥 결정권자의 결정일뿐..

hunikey의 이미지

c->c++->php->c#->java를 거치면서 objective-c를 막 건들면서 드는 느낌은..
첫 느낌은 드럽지만...
막상보니 생각만큼 드럽지는 않은거 같기도 하고... 일단 만져보고 싶은 충동을 들게 만드네요.

무엇보다...
c#이나 java를 거치면 g.c 혜택을 받으면서 편하게 사는거 같으면서도 막상 보면 그놈의 g.c 때문에 속쓰리는 경험도 있는듯 하고...

g.c도 좋지만 메모리 직접관리와 병행이 되었으면 어떨까 라는 욕심도 많이 들었는데 오브젝티브C가 대략 비슷한 느낌을 가져다 주네요.

댓글보니 아이폰 플랫폼은 g.c가 안된다고 하지만 레퍼런스 카운팅 방식만 하더라도 나름 매력적으로 보이네요.

익명 사용자의 이미지

죄송합니다;; 제가 학생이라서 아무것도 모르는데 그냥 해본거로는 Java 가 났던데...쩝...
여기 분들 다 전문가+대학생+회사원들이라서 좀 부끄럽네요..;;

bangjunyoung의 이미지

obj-c 는 마케팅측면에서 홍보를 안해서 안알려진 언어일뿐입니다.
컴퓨터과학 역사상 가장 객체지향에 근접한 프로그래밍 언어입니다.
스몰토크가 못이뤄낸 범용성을 C언어를 흡수하여 가졌고 객체지향을 손상시키지 않고 동시에 문법적인 측면에서 이루어낸 언어입니다.
자바나 C#같은 언어들은 객체지챵을 한답시고 문법을 손상시키며 코드 규모가 커지면 아주 난해하게 스타게티처럼 엉켜버립니다.
이게 대체 어디까지 객체로 만든건지 알수가 없게 되버리는 프로젝트가 수도 없습니다.
obj-c 로 만든 20년전부터 개발되어온 Nextstep OS 가 지금 계속 Mac OS 로 발전하며 새로운 기술 추가와 안정성에 아무런 문제가 없다는 것을 보면 알수가 있습니다.

magingax의 이미지

ObjC 가 객체지향으로 뛰어나다는건. 좀 다르게 생각합니다.
1. CLOS에서 지향하는 generic function 방식도 아니고, 예전 메시지 방식이라 C++ 비슷한 수준으로 제약도 많고.
2. [] 과 . 문법을 혼용해서 혼란스럽고
3. parameter 넘기는 방식도 굉장히 생소하고
4. delegate 라는 것도 별로 유용하지도 않으면서 복잡하고.
5. @,+,- 등의 컴파일러 다이렉티브들이 남발하고.
6. [obj fun param] 이 맞는지 [fun obj param] 이 맞는지 혼란 스럽고.
7. reference count 는 언지 retain/release 기준이 상황에 따라 달라 헷갈리고.
개인적으론 상당히 괴롭게 배운 언어입니다.
아이폰/맥 개발안할꺼면. 절대 손안댓을 언어 입니다.
언젠가 애플이 메인개발 언어를 파이썬으로 바꾸는 날이 오길 바랄뿐..

LISP 사용자모임
http://cafe.naver.com/lisper
방송기술 개발업체
http://playhouseinc.co.kr

익명 사용자의 이미지

>> obj-c 로 만든 20년전부터 개발되어온 Nextstep OS 가 지금 계속 Mac OS 로 발전하며 새로운 기술 추가와 안정성에 아무런 문제가 없다는 것을 보면 알수가 있습니다.

Mac OS가 기술 추가와 안정성에 문제가 없는건 obj-c로 만들어져서가아니라 20년이란 긴시간 동안 개발되어 왔기 때문 아닐까요?

bangjunyoung의 이미지

20년동안 개발한 소프트웨어가 무엇이 있는지 살펴보십시오.
어플리케이션을 비롯하여 OS조차도 그 바탕이 거의 API수준에서 그대로 유지되는 경우는 역사상 전무합니다.
리눅스는 물론 그 구조가 초창기 커널에 비해 완전히 바꼈고, BSD 조차도 코어부분빼면 과거의 모습은 없습니다.

사랑천사의 이미지

지금 그러니까.. 무조건 바뀌지 않는게 다 좋은거라.. 이런 말씀이십니까? 잘못 되었거나 아니다 싶으면 설계 부터라도 다시 해야 하는게 맞는 거 아닙니까...

그래서... 그 변화 없는 시스템이 처음 부터 설계를 잘 해서 말씀하시는 거 만큼 잘나셨다? 뭐 그런 말씀이신 겁니까? 뭐 잘났을 수도 있습니다. 그런데 말입니다. 변화하는 것들이 그렇게 변하지 않는 시스템에 비해서 뭔가 부족하고 우월함이 없다고 말씀하시는 거 같군요 음.

근데 말입니다. 바뀌었나 안 바뀌었나... 어떻게 아시조? 근거는요? 저보고 소스 찾아 보라거나 기술 자료 하나 하나 다 찾아 보라고 말씀하신다면 사절하지요.

어차피 저는 전산 전공자도 아니고... 전문적으로 전산 전공자이고 제대로 해 보고 싶은 생각은 있었지만... 일단 지금은 전공도 아닌 놈이 프로그래머 일 하고 있습니다만... 뭐 까고 싶으면 가세요. 저같은 놈이 프로그램 만든다는 거... 어차피 많은 전공자 분들이 별로 안 좋아 하시는 거 알고 있습니다 ㅋㅋㅋㅋㅋ.

그럼.

사람천사

bangjunyoung의 이미지

하나 말씀드리자면, 잘못된 생각이 있습니다.
전공자 아닌 분이 프로그래머를 하는게 문제가 되서 까는게 아닙니다.
전공자 아닌 분이 프로그래밍을 하여서 잘못된 방향으로 설계하고 코딩을 하여 잘못된 프로그램을 만들어서 전체 소프트웨어의 질을 떨어뜨리고 국내 전체 소프트웨어산업계의 경쟁력을 약화시키기 때문입니다.
아닌분도 있을것입니다만, 최소한 대학에서 Computer Science 에 대한 필수 전공 관련 과목도 이수않하고 만든 프로그램은 자료구조에서부터가 헝클어지고 중구난방의 파일 이름과 기본적인 네이밍도 따르지 않는 소스코드로 대체 소설을 쓴건지 모를 정도입니다.
그래서, 전산 전공자들은 학원출신의 비전공자들과 같이 일하는 것을 꺼려합니다.

사랑천사의 이미지

이런말 하기 그런데...

그걸 몰라서 제가 저런 글을 쓴건 아닙니다. 다만.. 전공자들 가운데도 허접한 분들이 많습니다. 뭐 역시나 전공자 분들도 다 그렇진 않조. 학교를 졸업하신지는 아마 꾀 되시겠지요. 요즘 학생들이 어떤지 모르겠지만... 그리고 다행히도 여기엔 열심히 공부하는 학생 분들이 많이 오시는 거 같지만... 제가 학교 있을 때 어떻게든 전산 전공 공부를... 제 전공은 아니었지만 해 볼려고 아고리듬, 자료구조, 운영체게 관련 과목들을 시간 날 때 수강 신청해서 들었는데... 비전공인 저보다 공부 안하는 사람이 대부분이었습니다. 물론 그 중에는 열심히 하시는 분들도 계셔서 전체가 허접했던건 아니지만 풋. 그런데 얘기 들어 보면 거의 요즘 추세가 그런 거 같습니다.

중요한건 그런데도 불구하고... 잘난 거 없은 전공자들이 가끔 헛소리를 하조. 그래서 뭐 그게 님이라는 뜻은 아니지만 지금 말씀하신 그 부분에 대해서만 말하자면 그렇다 이겁니다.

그리고 제가 댓글을 달았던 이유가... 제가 느끼기에 님은 소통에 대한 스킬이 부족하신 거 같다고 느껴서 좀 비꼬아 보려고 달았습니다. 어떻게 받아 드리셨나는 모르지만, 핵심 내용이 아닌 것에 더 깊은 답변을 주시니 뭐라 말씀 드려야 할 지 모르겠네요.

그럼...

사람천사

jachin의 이미지

저는 국내 소프트웨어 산업계의 경쟁력이 약해진 이유를 언급하신 것이 '전공자가 아닌 사람이 잘못 설계하였다'는 얘기에 안타까움과 슬픔을 느낍니다. 어째서 '전공자'와 '비전공자'로 나누어 일반화를 하시게 되었는지, 분명 그럴만한 사연이 있었을 것이라 생각하면, 그러한 안 좋은 경험을 하신 것이 안타깝고 슬픈 일입니다.

좋은 소프트웨어 설계는 여러 사람들의 의견과 생각을 공유하고, 존중하면 할 수록 나아지기 마련입니다. 그것이 '경제적인지, 효율적인지, 구현 가능한 것인지'를 떠나서 말이지요. 저도 한 때, 기술적 근거 없이 미래 기술에 대해, 혹은 자신이 바라는 기술상에 대해 얘기하는 것에 반박한 적이 있었지만, 지금은 그 때의 황당무계한 얘기도 이룰 수 있을만큼 기술이 발전하고, 축적되었습니다. 그 후로도, 저는 스스로 사고의 경계를 나누는 일을 하지 않도록 노력하고 있습니다.

프로그래머라면, 소프트웨어의 개념을 아는 사람이라면, 자유소프트웨어를 지지하는 사람이라면, 서로의 의견을 듣고, 수용할 줄 아는 포용력을 갖추어야 하고, 그렇게 되도록 노력해야 한다고 생각합니다.

비전공자 분들 중에서도 프로그래밍 협업을 잘 하시는 분들도 많고, 좋은 설계를 하시는 분들도 많습니다. 가능하다면, 잘못 생각하시는 부분에 대해 경험하실 수 있는 기회가 있기를 바랍니다.

사랑천사의 이미지

여기에 동감 한표 합니다.

근데.. 비전공자인 저같은 사람이 저런 소리 안 들으려면 더 노력해야 겠조. 컴퓨터가 좋아서 컴퓨터 가지고 뭔가 만들어 보려고 프로그래밍 배우고 서버 가지고 뭔가 하는게 좋아서 이론을 넘는 서버 관리 기술 같은 거, 네트워크... 공부하고 그랬지만 지금도 컴퓨터 아키텍처를 정확히 모르는 저이기에.. ㅎㅎ.

사람천사

익명 사용자의 이미지

그래서 컴퓨터 전공자들은 기껏해야 을 이냐 ? 왜 맨날 갑 탓만 하는 찌질이가 되는 거냐 ?

익명 사용자의 이미지

고로 변화과정에서 옛 것이 온전히 남아있지 않을 수도 있습니다.

20년동안 개발한 소프트웨어라면 gcc도 있을 것이고 perl이나 BASIC 등과 같은 인터프리터 언어와 그들의 "컴파일러"도 20년동안 쭉 변화하면서 발전해왔습니다.
옛 모습이 없어졌다고 해서 이들 소프트웨어가 개발된지 겨우 몇 년밖에 안되었다는 것은 조금 무언가 이빨이 빠진 논리인 것 같습니다.
소프트웨어가 비록 옛 모습이 상실되었다 하더라도 그렇게 변모되기 위해 거쳐온 "기간"도 개발 기간에 포함됩니다.

좀 관련이 없을지도 모르는 비유긴 한데 보잘것 없는 흙덩어리 에서 아름다운 여인의 자태와 같은 곡선을 지닌 고려청자 하나가 나오는 것을 생각해보시는 것도 좋을 것 같습니다.

익명 사용자의 이미지

방준영님이 obj-c 로 짠 모구아 소스를 보고 싶습니다.
아니, .exe 파일이라도 보고 싶습니다.

http://kldp.org/node/56795#comment-232925

iamt의 이미지

Nextstep이 obj-C로 만들어졌었군요?

모든부분이 obj-C로 만들어진건 아니겠죠??

---------------------------------------------------------------------------------
C(++)과 php 펄등을 공부하고있습니다.
반갑습니다! 리눅스 :-)

익명 사용자의 이미지

C에서 바로 오브젝C탄 저는 C++이 훨 더 어려워보이는데요..

익명 사용자의 이미지

뭘로 짜던간에 배워서 짜면 그만이지 평생 한 언어만 하고 살거유?
필요하면 영어도 하고 일본어도 하고 Java도 했다가 C++도 했다가 응?
그런건 당신들이 정하는게 아니라 '갑'이 요구하는대로 가는거요.

사랑천사의 이미지

갑이란 것들은 솔직히 어떤 언어가 어떤 프로젝트에 잘 맞는지 모릅니다. 그러니까 갑이 가자는 대로 가다가 산으로 갈지도 모르조 배가. 그건 갑이 가자는데로 가야 되는게 아니라 상황과 현실, 시스템에 맞게 선택하고 배워야 한다고 말하는게 더 맞는 표현 같습니다만.

혹시 갑이신가요? 흠흠.

사람천사

magingax의 이미지

개발업체들이 전부 C#으로 하는걸 당연시 해서 걱정입니다.
개인적으로 이것도 비주얼베이직 처럼 될것 같은데..
서버는 c 로 짜고 클라이언트는 파이썬으로 하라고 했는데..
말안듣네요

LISP 사용자모임
http://cafe.naver.com/lisper
방송기술 개발업체
http://playhouseinc.co.kr

익명 사용자의 이미지

"서버는 c 로 짜고"... 악덕 갑이라는 소리 짬 들으시겠네염.

익명 사용자의 이미지

ObjC가 그렇게 좋은 언어라면..
왜 gnustep은 이토록 인기가 없을까요? ㅎㅎ

익명 사용자의 이미지

프로그래밍 언어와 그걸로 만든 소프트웨어의 품질이 같다고 결론을 내리려면 경력을 얼마나 쌓아야 하나요? ㅎㅎ

익명 사용자의 이미지

오픈소스 프로젝트인데 인기가 좋으면 개발자들이 몰리고 점점 품질이 좋아지죠 ㅎㅎㅎ
리눅스가 첨부터 엔터프라이즈급이었습니까? ㅎㅎㅎㅎㅎ

익명 사용자의 이미지

그래서 소프트웨어 품질과 프로그래밍 언어 성능을 동일하게 보는 경지에 오르는데 몇년 걸리셨나요? ㅎㅎ

익명 사용자의 이미지

왜 자꾸 딴소리를 하고 있는지 이해를 못하겠습니다 ㅎㅎㅎ

다른 신생언어로 만든 신생 프로젝트들은 잘도 발전하던데..
알면서 인정하기 싫어서 자꾸 딴소리 하는걸로 알아듣겠습니다. ㅎㅎ

익명 사용자의 이미지

역시 그랬군요. ㅎㅎ
gnustep의 품질이 후져서 인기 없다는 것을 인정하기 싫어서 자꾸 언어 탓하면서 딴소리 하고 있었군요. ㅎㅎ

익명 사용자의 이미지

그 좋은 ObjC로 하고 있는 다른 오픈소스라도 있으면 말을 안하겠음 ㅎㅎ

익명 사용자의 이미지

이 긴글을 다읽으면서 참.. 이런 생각 저런생각들을 해보네요.

전 objc vs C++ 이런 주제가 좀 웃긴것 같네요 ^^;
어짜피 랭귀지는 그 프로그래머가 사용할 도구 입니다.
물론 훌룡한 장인은 항상 훌룡한 도구를 사용하긴 합니다.
헌데 훌룡한 도구란 일반적으로 모든 사람에게 훌룡한인게 아니죠.

제 개인 적인 생각은 어떤 언어이던 장,단점이 분명 존재하기 때문에 수치적으로 어떤게 좋다라고 말하긴 힘듭니다.
단 적용 분야에 따라 어떤게 좋다 나쁘다가 정해지겠죠? ^^
그럼 다들 수고하세요~~~

익명 사용자의 이미지

http://tele-task.de/archive/video/flash/14029/

중요한 점은... 현재의 소프트웨어 시스템들은 일종의 퇴보라는 것.

익명 사용자의 이미지

글을 쭉 읽다보니 이건 뭐....
태권도랑 공수도, 무에타이, 기타등등의 무예 중 어느게 제일 쎕디까? 유치빤스요~
세계적으로 알파벳이 많이 쓰이니, 한글은 실패한 문자라는 논리가 말이 됩니까?
세상 만물이 장점이 있으면, 단점도 있는 것이지. 단순 이분법으로 이거아니면 저거라는 분들도 내가 보기엔 참으로 이상하오.

익명 사용자의 이미지

속도 가독성 생산성(라이브러리,프레임워크 포함, 개발툴)
C# 느림 좋음(프로퍼티) 좋음
Java 느림 보통 좋음
C++ 매우빠름 낮음 보통
C 매우빠름 매우 낮음 매우낮음
ObjectiveC 중간 좋음(매개변수명) 좋음

익명 사용자의 이미지

object-c의 호불호를 떠나서, 역사적인 이유가 있습니다. 잡스다운 선택이었습니다.
object-c는 이질적인 두언어, c에다, smalltalk의 개념과 syntax를 얹었습니다. 거의 최초의 oo언어(smalltalk)가 잡스에게 끼친 영향은 최초의 매킨토시가 smalltalk-80의 MVC window와 거의 흡사할 정도 였다는 점에 나타나 있습니다. 그런 그에게 object-c를 제외한 다른 언어는 들어오지도 않았겠죠.

익명 사용자의 이미지

objec-c 얘기를 할때 늘 smalltalk 얘기가 나오는데...
smalltalk를 직접해보면 object-c와 꾀 다르다는걸 알게 될 것입니다.

일단 smalltalk는 object-c처럼 [[[[어쩌고]저쩌고]이러쿵]저러쿵] 같이 쓰지 않죠...
그렇게 []를 많이 하지 않습니다.

페이지