NeXT 와 obj-c 의 관계와 역사적 의미란?

kenny007one의 이미지

요즘 아이팟 나노의 대박으로 상한가중인 애플의 스티브 잡스가 과거 새로운 도전을 했던 컴퓨터..

NeXT 컴퓨터와 그 운영체제와 개발환경이 만들어져서 현재 우리에게 어떤 영향과 역사의 존재하는 의미는 무엇일까요?

일단 컴퓨터 하드웨어는 사장되어서 끼친 영향은 미미합니다.

하지만 운영체제는 MacOS에 상당히 받아들여졌고..

Obj-C라는 객체지향언어는 MacOS에서나 좀 쓰이고 그나마도 이제 C++로 전환하는 중인데..

obj-c 오브젝티브 씨.. 이 언어가 참 희한합니다.

어떻게 보면 엄청난 기대와 기능으로 자바보다 한참 먼저 객제지향시대와 그 한참 오래전부터 완벽한 통합 개발환경를 열수도 있었던 언어인데..

NeXT 에서 채택되어서 같이 망했을까요?

아니면 MacOS에서 좀 쓰이기때문에 다른 플랫폼에서는 안쓰인것일지?

대체 왜 언어 스펙만 보자면 C#과도 경쟁할수 있는데 왜이리 허무하게 망해갔는지 의아합니다.

그렇다고 아예 안쓰인것도 아니고 사장된것도 아닌 한정적으로 쓰이긴 하나 그렇다고 미래에 더 가능성이 있는건 아닌 비운의 언어..

객체지향 개발환경 시대를 열고자 했던 오브젝티브 씨..

정태영의 이미지

kenny007one wrote:
Obj-C라는 객체지향언어는 MacOS에서나 좀 쓰이고 그나마도 이제 C++로 전환하는 중인데..

누가 objective c 에서 c++ 로 전환하는 중인가요? apple 이요?

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

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

ydhoney의 이미지

코코아 차 한잔 마시고 오세요.

hiseob의 이미지

흠프흠프

bejuryu의 이미지

kenny007one wrote:

어떻게 보면 엄청난 기대와 기능으로 자바보다 한참 먼저 객제지향시대와 그 한참 오래전부터 완벽한 통합 개발환경를 열수도 있었던 언어인데..

자바보다는 먼저 객체지향시대와 통합개발환경을 열지 않았나요?
더 한참을 찾으신다면 Smaltalk도 있겠지만요.

그런데 궁금한게 있는데요..
완벽한 통합개발 환경이란게 뭐를 말하는거죠?

그 Object C가 나온 시기에 그 정도 통합개발 환경이면,
충분하지 않나요?

kenny007one wrote:

NeXT 에서 채택되어서 같이 망했을까요?

아니면 MacOS에서 좀 쓰이기때문에 다른 플랫폼에서는 안쓰인것일지?


뭔가.. 뭔가. .이건 할 말이 없는거 같네요.. ㅡㅡ;
전.. MS에서 쩜 쓰는 C#이라도 다른 플랫폼에서 안 쓸 정도로
속 좁진 않은데요.
다른 분은 그럴지도 모르겠네요..
kenny007one wrote:

대체 왜 언어 스펙만 보자면 C#과도 경쟁할수 있는데 왜이리 허무하게 망해갔는지 의아합니다.

C#을 가장 이상적인 언어 스팩이라고 생각 하시는 군요^^
저도 C# 좋아하는데요.
망해갔다는 표현은 조금.. 난감한 표현이 아닐런지요?

망해갔다고 단정 지어 말하기엔 Objective C의 미래는 모르는 건데요..

up2soul의 이미지

Object-C 쓰는 어플리케이션을 본 적은 있지만 써본 적은 없어서 이 쓰레드에 포스팅하기는 그렇지만, 논의가 문제제기 내용과 약간은 다른 방향으로 흘러가는 듯 합니다.

제가 보기에는 Object-C가 당시로는 상당히 선구적이고 뛰어난 언어임에도 불구하고 C, C++, C#, Java 등과 같이 범용 프로그래밍 언어로 인기를 얻지 못했나, 이런 걸 토론해 보고 싶어하시는 듯 합니다.

좋은 토론 기대해 봅니다.

너 행복하니?

소타의 이미지

망해가는 언어라고 판단하는 기준이 뭔가요? 미래에 대한 가능성이 있다/없다 판단 기준은요?
당장 소스포지에 가보면 총 73개의 언어중에 objective c가 15위 입니다.. 프로젝트들이 사용하고 있는 언어별 순위로요.. 전 그보다 순위가 낮은 언어들(ASP, Ruby, Pascal, Object Pascal, JSP, .NET, ASP .NET 등등)도 망해가는 언어라고 생각하지 않습니다...

자신의 취향이 아니라고 망해간다거나 미래에 가능성이 없다거나 하는건 아니거든요?
아깝고 능력되시면 직접 objective c의 부흥을 꾀해보시던가요

onion의 이미지

뭐랄까.. 좀 애매하기는 합니다만...

일단... objc는 그당시의 c에 비해서는 꽤 느린 언어였습니다.
nextstep이 널리 알려진 3.2(3.3)버전이 돌기 시작한게 대략 1988(틀린게 아닙니다.. 1988입니다)년도니깐...
대단한거죠? 그당시에 cobol이나 c, 그리고 pascal의 시대였었으니깐요...-.-;

객체지향언어는 그 특성상 gc등의 요구사항들이 있습니다. 그런것들을 수용하기 위해서는 당연히 속도상의 저하를 가져올 수 밖에 없었고 또한 nextstep의 kernel또한 카네기멜론의 mach커널 3.x를 사용했기때문에..(대부분 뭔가 오해하시는거같은데... nextstep, openstep, mac os x는 system base가 BSD인거지 kernel이 BSD kernel인것은 아닙니다...-.-;) 역시 구조상 느릴 수 밖에 없었다고 생각해주시기 바랍니다.

그 당시 nextstep에 대한 나쁜 의견중에 하나가 동급 가격의 workstation보다 느리다... 였는데 nextstep과 openstep은 구조 자체가 video(VGA)에 대한 하드웨어 가속을 지원하는 부분이 없었습니다.
물론 nextstep의 nextstation은 DSP와 SCSI printer등으로 이미 시대의 중심 또는 앞서나가있는 기술이라고 판단되기도 합니다만.. 이런 고가격 저성능은 그당시에는 그리 가벼운 문제는 아니었다고 생각됩니다.

다행이 nextstep의 x86 version이 활성화(....되기는 한걸까.. 활성화..-.-) 되면서 nextstep에는 renderman이 기본 번들로 들어가게되고 사실.. 이걸 못살린건 장사를 못한 CEO의 책임이 크다고 생각합니다..-.-;

여튼 OPENSTEP으로 넘어가면서 (.....저도 대소문자 틀리면서 쓰고있군요.. 누군가가 알면 뭐라 하시겠구먼..-.-) nextstep은 내부구조의 획기적인 변화를 가져오게 됩니다.
또한 yellowbox라 불리는 openstep for NT, openstep for solaris등의 기존과는 다른 model을 제시하게 되죠.
이때 NeXT사는 다시한번 webobject라는 진일보된 개념과 EOF라는 플랫폼을 결합시킨 또한번의 기술적 발전을 선보이게 됩니다..
....... 초창기의 3.x대의 webobject는 일단 한글문제가 있어 국내에서 사용되기에는 무리인 환경이었으며... objc라는 생소한 언어로 만들어야했기때문에 시장에서 외면당했죠.. 결과적으로 지금의 webobject는 java라는 형식을 사용하게 됩니다. 물론 이것은 현재의 webobject이며 기존의 개념은 gnustep-web이라는 것을 찾아보시면 더 자세하게 아실 수 있을거라 생각합니다....
(아아.. 출장가야하는데.. 이게 뭔짓이냐... 아아 새벽부터 말렸어....으흑)

여튼.. 뭐 그런겁니다...
흠.. 그래고 Objc의 문서를 보시면 알겠지만......
NSObject가 아닌 NObject에서 시작합니다.
이것은 구조적으로 NSObject를 모두 구현하기 어렵고 objc를 일반 lang의 수준으로 내리기위한 gcc의 방편이라고 생각되는데..
사실상 어떤 Lang의 "힘"이라 한다면 저는 Lib을 그 기준으로 삼고 싶습니다.
물론 구조적으로 전혀 이점도 없고 쓸모도 없는 lang이 lib이 많아질거라고 생각하지는 않습니다만 lib이 적은 언어일수록 쓸모도 적어지고 쓰기 힘들어진다는게 제 생각입니다. (물론 몽땅 만들어서 쓸 수도 있습니다만..-.-)

objc는 nextstep때부터 NSObject의 영향을 받았고..(정확히는 NSObject와 NSApplication입니다만.. OPENSTEP에서는 NSObject의 단일 class니깐.. 넘어가죠....-.-) 이러한 nextstep의 구조는 objc의 Lib들을 쉽사리 다른곳에서 구현하지 못하게 license와 함께 nextstep안에서 갇혀버립니다..
결과적으로 다른 플랫폼에서 버림받는것은... 어찌보면 자명한 사실이었죠...
그러한 한계점을 openstep for solaris등으로 극복해보려 했으나.. 사실 그것도 이미 무리인 상황이었고.. mac os의 이름을 빌려 다시 새버전이 나올때까지 어둠에 묻혀있었을 수 밖에 없었습니다.

뭐 이것말고도 nextstep관련이라면 두어시간은 더 주절거릴 수 있겠습니다만.. 답글의 취지가 그것도 아니니 이쯤에서 정리를 해보죠..

1. objc..느렸다..
2. lib도 없었다
3. windows에서는 안됐다..(...gcc 3.x에 와서야 windows에서 컴파일되기 시작했습니다.... 아... 왜 openstep for NT에서는 되냐고 물으신다면... 그건 original gcc가 아닌 변형 gcc이기 때문이다....라는게 답이 되실까요?..-.-)
4. 다른 *nix계열은 원래부터 c를 고수하는 분위기였다..
5. 운때가 안좋았다.. 좋은것도 재수없음 망한다...

이정도면 답변이 좀 되셨을런지...^.^;

-----새벽녘의 흡혈양파-----

-----새벽녘의 흡혈양파-----

wonny의 이미지

onion님과 많이 아시는 여러 분들이 계셔서 좀 그렇지만 잠깐 배워보려고 했던 beginner의 입장에서 제 생각을 적어 보겠습니다.
죽어가는 언어이냐 아니냐는 감정적으로 들릴 수 표현이겠는데, 적어도 사용률이 매우 낮은 언어이고(maccrazy님의 어느 글에선가 5% 정도라고 언급하셨던 기억이 나네요), Mac 사용자들도 그점을 매우 아쉬워 하며 Cocoa의 경우 Java bridge가 따로 있을 정도였다는 것을 알고 있습니다. 저는 Smalltalk을 사용해 본 적이 없지만 사용자분들은 Smalltalk과 대등하지는 못한다고들도 하시더군요.
저는 사용하면서 매우 신선하다는 느낌을 받았고, C++을 배우다가 Java를 배우면서 느끼게 되던 것과 비슷한 것을 느꼈습니다. C 사용자가 배우기에 부담이 덜한 반면, Foundation같은 framework이 없이 Obj-C 자체로는 무엇을 하겠는가 하는 생각도 들더군요.
Steve Jobs가 NeXT와 NeXTSTEP을 소개하는 동영상에서 간단하게 업무 소프트웨어를 턱하나 만드는 장면이 매우 인상적이었는데, Obj-C보다는 Framework 자체의 생산성이 아니었나 생각합니다.

엇, 출근해야 하는데 무슨 짓을...

케케케~

cjh의 이미지

항상 지나치게 앞서가면 망합니다. 조금 뒤에서 시작해야 성공하지요.
(반면에 앞서가는 것이 없으면 그 뒤의 후속작이 나오질 못하지요)
그런 면에서 NeXT는 의미가 있는 운영체제/HW이었습니다.

--
익스펙토 페트로눔

onion의 이미지

많이 알기는요.. 저를 아는 분들이 보면 웃을 일입니다..
그냥 next라면.. 개인적으로 관심이 많을 따름이지요..

아 그리고.. next의 하드웨어는 성능을 떠나서 nextcube가 존재한다는것만으로도 HW는 가치가 있다고 생각합니다..
...
만...
.....
사실 쓸만한 하드웨어기도한데..(울먹)
흑.. 요즘 처리해야되는일들이 너무 무식한것 뿐이에욧..(쳇)

-----새벽녘의 흡혈양파-----

-----새벽녘의 흡혈양파-----

warpdory의 이미지

사실은 양파옹에게 샀던 넥스트 컴퓨터 ... 5만원 더 붙여서 딴 사람에게 팔았어요 ...


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

ydhoney의 이미지

warpdory wrote:
사실은 양파옹에게 샀던 넥스트 컴퓨터 ... 5만원 더 붙여서 딴 사람에게 팔았어요 ...

와와 그럼 6만원에 파셨군요! (응?)

warpdory의 이미지

ydhoney wrote:
warpdory wrote:
사실은 양파옹에게 샀던 넥스트 컴퓨터 ... 5만원 더 붙여서 딴 사람에게 팔았어요 ...

와와 그럼 6만원에 파셨군요! (응?)

30만원 넘었었어요...


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

creativeidler의 이미지

Java가 이처럼 빠른 속도로 대중화되지 않았다면 달라졌을지도 모르죠. OOP에 갈증을 느낀 유저들이 점차적으로 주목하면서 좀더 뜨지 않았을까 싶습니다.

다크슈테펜의 이미지

역시나 맥에서도 그렇고 넥스트에서도 그렇고 제한적인 환경이 오히려 발목을 죄고 있는 것 같습니다.물론 오브젝트 C야 리눅스나 다른 환경에서 할수 있다고 하지만 그래도 대중화 되기에서 제한이 있는 편이지요..
만약 자바나 아니면 C등이 넥스트나 맥에서와 같은 제한이 있었더라면 이렇게 대중화 될수 있었을까 생각도 해봅니다.

인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com

seldom의 이미지

넥스트스텝에서 프로그래밍했던게 워낙 오래전일이라 잘 기억나지 않지만 objc가 선구적인 언어라는 건 처음듣는 소리 같군요.
objc는 c에 oop 적 코딩이 가능하게 최소한의 추가 문법을 덧붙인 언어입니다.
문법만으로는 c 를 할줄 안다면 반나절이면 배울 수 있는 언어라고 포럼에서 다들 얘기하던 기억이 나는군요.

objc가 대새(?)가 되지 못한건 바로 이 이유 때문이겠죠.
너무 쉬워서 재미가 없거든요.
c를 가지고 놀던 사람들은 복잡하기 그지 없는 c++가 훨씬 매력적이었죠.
또 objc 자체가 c나 c++혹은 지금의 java,c#처럼 어떤 야심적인 언어와는 거리가 멀었습니다.
잡스도 objc이 쉽다는걸 강조했었죠.
넥스트스텝의 매력이 objc에 있지는 않죠.

그건그렇고 얼마전 ms세미나에서 잡스가 십몇년전에 신나게 떠들어 대던 mission critical을 메인카피로 들고나온걸 보니 묘한 기분이 들더군요.

creativeidler의 이미지

뭔가 이상하군요. objc는 C에 최소한의 문법을 덧붙인 게 아닙니다. objc가 C의 완전한 superset이라고는 하나, 겉보기 문법면에서만 그렇고 진짜(?) 문법은 완전히 다릅니다. 그냥 C의 껍데기를 쓰고 있을 뿐이죠.

쉽다는 것도 아마 공감하지 못하는 사람들이 많을 겁니다. 자바에 비하면 두 배 이상 어렵다고 봐야하지 않을까요.

objc가 자신만의 무언가를 창시한 건 없지만 그래도 이후 자바를 비롯한 여러 언어의 모태가 되었다는 점에서는 선구자라고 할 수도 있겠지요.(자바가 C++이 아니라 objc의 후손이라는 건 이제 언급할 필요가 없는 이야기겠죠?)

죠커의 이미지

objective C는 넥스트가 만든 것이니 넥스트만 썼던 것이죠. 그들은 컴파일러를 파는 것이나 언어가 시장 점유율을 높이는데는 전혀 관심이 없었거든요.

NEXT가 GCC 프론트엔드를 공개한게 그나마 다행이지요.

imyaman의 이미지

브래드 콕스라는 사람과 스텝스톤이라는 회사가 떠오르네요.

이 쓰레드를 주욱 읽다보니 드는 생각이...
NextStep/OpenStep이 아닌 운영체제/플랫폼에서도 gcc로 Objective-C 코드를 컴파일 할 수 있었지만
다른 운영체제/플랫폼에서 Objective-C를 지원하는 IDE가 있었나하는 생각이 드네요.

cleansugar의 이미지

리눅스에도 넥스트스텝 따라 만든 그누스텝이 있습니다.

IDE도 당연히 있을겁니다.

재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.

아이디의 아이디어 무한도전
http://blog.aaidee.com

귀태닷컴
http://www.gwitae.com

freestyle의 이미지

국내외적으로 objective-c가 제법 이용되고 있죠.
애플스토어에 올리려면 다른 대안이 없기 때문에...

괜찮은 OO언어지만, 다른 플랫폼에서 사용이 적어 아쉽네요.
앞으로 간단한 코딩은 gcc로 obj-c 짜볼 생각입니다 ^^
--------------------------------------------
Go to the U-City

----------------------------------------------------------------------------------------
Don't Feed the Trolls!
----------------------------------------------------------------------------------------

idotrip의 이미지

obj-c 는 역사적으론 실패한 언어입니다.

애플외에는 시장에서 쓰이는 곳이 없습니다. 대학에서나 아카데믹한 목적으로 모를까..

애플도 내부적으로는 개발자들이 obj-c 가 신규진입 수를 줄인다 보고선..

c++/java 로 개발환경을 제공할거라 검토한다고 들었습니다.

시장은 기술이 주도하는게 아닙니다.

그걸 직접 사용하는 유저들이 판단할것이죠.

obj-c 가 그렇게 좋으면 왜 M$사에서 윈도우즈가 지원안하고 C#이나 만들어서 홍보 할까요?

dorado2의 이미지

Quote:

애플도 내부적으로는 개발자들이 obj-c 가 신규진입 수를 줄인다 보고선..
c++/java 로 개발환경을 제공할거라 검토한다고 들었습니다.

혹시 이 내용과 관련된 reference 있으신가요? 흥미있네요.

magingax의 이미지

나름대로 장단점이 있습니다.
뭐..[] 로 객체관련 처리하는게 좀 어색하긴한데.
뭐. 쓸만해요. :)
연장 탓하는건..좀..그래서.
하지만 왠만하면 VS는 피하고 싶습니다..

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

withtw의 이미지

요즘 아이폰 때문에 Objective-C 하고 있는데, 할수록 편해지는 느낌입니다.

yc21c의 이미지

이게 벌써 6년전 글이군요..
저도 그땐 제가 obj-c를 하게 될줄은 몰랐죠~ 근데 사용하면 할 수록 괜찮은 언어인건 분명해요.
지금에 와선 실패했다고 볼 수 없는 언어가 되었네요.. 미래는 아무도 예측불가.