문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 Smalltalk (문단 편집) == 개요 == 1970년대 초, [[미국]] 제록스(XEROX)사의 팰러 앨토 연구 센터(PARC)에서 개발한 객체 지향 [[프로그래밍 언어]]. [[C++]], [[Java]]와 같은 객체 지향 프로그램의 시초이다.[* 단, Simula라는 시뮬레이션 전용 언어가 객체지향의 기본적인 개념을 제시하기는 했다.] 이 외에도 [[Ruby]], [[Python]], AppleScript, Dylan, [[Perl]], [[Scala]] 같은 수많은 프로그래밍 언어에 영향을 주었으며, 그 외에 최초로 [[GUI]](그래픽 사용자 인터페이스)를 제공하는 언어로 [[Macintosh(컴퓨터)|매킨토시]]의 GUI에 영향을 준, 쉽게 말하자면 프로그래밍 언어의 한 획을 그은 언어. [[객체 지향 프로그래밍]](OOP; Object-Oriented Programming)은 당시에는 완전히 새로운, 혁명적인 개념이었는데 쉽게 말해서 컴퓨터 프로그램을 명령어의 목록으로 보는 것이 아니라 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 한 것이다. 각각의 객체는 메세지를 주고받고, 데이터를 처리할 수 있다. Smalltalk는 [[http://m.navercast.naver.com/mobile_contents.nhn?rid=2871&contents_id=98613|엘런 케이(Alan Kay)]]를 위시한 PARC의 연구자들이 OOP의 개념을 지원하기 위해, 즉 OOP란 이거야! 라는 샘플을 만들기 위해서 개발한 성격이 강하며, 그렇기 때문에 '''순수''' 객체 지향 프로그래밍 언어로 만들어진 것이 특징이다. 따라서 OOP가 가지는 대부분의 장점과 단점을 그대로 가지고 있는데, 개발시간 단축, 좀더 정확한 코딩, 높은 보안 시스템 같은 장점을 지닌 반면 실제 세계의 모습을 그대로 반영하지 못한다는 비판을 받기도 했다. Smalltalk에서는 정수형 등의 기본적인 자료구조도 모두 객체였던 등의 문제로 인해 Smalltalk로 만든 프로그램은 C로 만든 프로그램보다 10배 이상 느리다는 것이 정평이었고, Smalltalk의 자체가 하나의 프로그래밍 언어라기보다 시스템 전체를 포괄하는 구조를 가지고 있다는 점도 언어의 확산에 제약이 되었다. 이 부분은 현재의 Java와 비슷한 개념이라고 말할 수도 있지만, 70~80년대의 컴퓨터 성능을 생각하면 일반적인 프로그램을 실행하기 위해 가상머신을 이용해야한다는 것은 다소 비현실적인 것이었다. Java와 같은 강력한 객체 지향 프로그래밍 언어가 있는 요즘은 잘 쓰이지도 않을 뿐더러, 어차피 개발 목적 자체가 새로운 개념의 적용이라는 성격이 강했기 때문에 사용인구는 매우 소수에 불과하다. 그래도 분명 역사적 의미가 있는 언어임은 틀림없으며, 후대의 프로그래밍 언어에 많은 영향을 끼친 언어임은 확실하다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기