앨런 케이가 대학원 시절인 1966년 또는 1967년경, 캡슐화된 작은 계산 단위들이 메시지를 주고받으며 상호작용하는 방식을 설명하기 위해 ‘object-oriented programming’이라는 표현을 사용함. 이 개념은 이후 스몰토크의 설계 원리와 결합하며 객체지향 프로그래밍을 가리키는 대표적 용어로 정착함.
스몰토크
1970년대 초 제록스 PARC의 학습연구그룹(LRG)에서 앨런 케이를 중심으로 댄 잉걸스·아델 골드버그 등이 개발한, 모든 것을 객체로 보고 객체 사이의 메시지 전달로 계산을 표현하는 순수 객체지향 프로그래밍 언어이자 통합 개발 환경. 'object-oriented programming'이라는 용어를 대중화하고, 동적 타이핑·라이브 코딩·클래스 브라우저·이미지 기반 영속성 같은 개념을 초기에 구현한 시스템.
언어와 환경이 분리되지 않고, 실행 중인 시스템 자체를 사용자가 들여다보고 수정할 수 있는 반영적(reflective) 설계가 특징. 1971년 케이의 미공개 설계인 스몰토크-71에서 출발해, 1972년 메시지 전달 모델을 구현한 스몰토크-72, 가상머신을 효율화한 스몰토크-76을 거쳐 1980년 외부에 공개된 스몰토크-80으로 정착. 문법은 극도로 단순하지만 표현력이 높고, 코드를 작은 메서드 단위로 나누어 메시지로 조합하는 방식 채택.
오늘날 널리 쓰이는 객체지향 언어와 통합개발환경·그래픽 사용자 인터페이스의 사상적 토대로 평가. 1998년 ANSI 표준으로 정립되었고, 1996년 공개된 스퀵과 2008년 그 갈래인 파로 등 오픈소스 구현으로 계보가 이어지며 교육·연구·산업 분야에서 계속 사용.
타임라인
14앨런 케이가 객체를 서로 메시지를 주고받는 독립적 계산 단위로 보는 관점을 바탕으로, 초기 언어 설계안인 스몰토크-71을 구상함. 스몰토크-71은 정식 구현·공개된 시스템이 아니라, 이후 스몰토크-72로 발전하기 전 단계의 설계 구상으로 알려짐.
이 구상은 컴퓨터를 단순한 계산 장치가 아니라 학습·표현·시뮬레이션을 위한 동적 매체로 만들려는 케이의 다이나북 비전과 연결됨. 이후 최초의 구현 버전인 스몰토크-72, 개발 환경을 확장한 스몰토크-76, 대외적으로 널리 알려진 스몰토크-80으로 이어지는 스몰토크 계열의 출발점으로 평가됨.
댄 잉걸스가 데이터 제너럴 노바에서 동작하는 스몰토크-72의 최초 인터프리터를 BASIC으로 구현함. 앨런 케이가 메시지 전달 기반 언어의 핵심을 “한 페이지 분량의 코드”로 만들 수 있다고 내기를 건 뒤, 잉걸스가 이를 실제 실행 가능한 형태로 구현한 결과물.
이 인터프리터는 1972년 10월 처음으로 3 + 4를 평가했으며, 종이 위 언어 설계에 머물던 스몰토크를 실행 가능한 시스템으로 전환한 사건. 이후 스몰토크-72는 객체와 메시지 전달을 중심으로 한 스몰토크 계열의 실제 출발점이 됨.
앨런 케이가 제록스 PARC 학습연구그룹에서 메시지 전달을 중심 원리로 하는 스몰토크의 초기 설계를 주도함. 객체를 독립적인 계산 단위로 보고, 각 객체가 메시지를 통해 협력하도록 하는 언어·환경을 구상한 작업.
댄 잉걸스가 초기 인터프리터와 구현을 맡고, 아델 골드버그가 문서화와 교육적 활용을 이끌며 스몰토크를 발전시킴. 스몰토크는 동적 객체지향 언어와 통합 개발 환경의 초기 완성형으로 자리 잡으며, 이후 프로그래밍 언어와 사용자 인터페이스 설계에 큰 영향을 남김.
앨런 케이가 이끈 제록스 PARC 학습연구그룹이 스몰토크-72를 구현함. 이는 스몰토크-71의 초기 설계 구상을 실제로 작동하는 프로그래밍 환경으로 발전시킨 최초의 구현 단계였음.
스몰토크-72는 객체가 메시지를 주고받는 방식, 그래픽 화면에서의 직접 조작, 프로그래밍과 실행 환경의 긴밀한 결합을 실험함. 이후 스몰토크-76과 스몰토크-80으로 이어지는 객체지향 프로그래밍 환경의 실질적 출발점이 됨.
제록스 PARC 학습연구그룹이 스몰토크-72를 새로 가동되기 시작한 제록스 알토로 이식함. 1973년 4월 알토가 연구팀에 제공된 뒤 며칠 안에, 댄 잉걸스 등이 스몰토크-72를 알토의 비트맵 디스플레이에서 실행 가능하게 만든 작업.
이식으로 스몰토크는 문자 단말 중심의 초기 구현을 넘어, 개인용 컴퓨터의 그래픽 화면과 결합한 실험 환경으로 발전하기 시작함. 이후 스몰토크-76과 스몰토크-80으로 이어지는 과정에서 객체지향 언어와 통합 개발 환경의 핵심 형태가 정리됨.
댄 잉걸스가 실행 의미 일부를 고정하고, 클래스 상속과 바이트코드 실행 방식을 정리한 스몰토크-76 가상머신을 설계함. 초기 스몰토크의 유연한 해석 방식을 더 효율적인 실행 모델로 다듬어, 실제 개인용 컴퓨터 환경에서 사용할 수 있는 성능 기반을 마련한 작업.
스몰토크-76은 클래스 라이브러리 브라우저와 코드 편집기 등 오늘날의 통합 개발 환경에 가까운 도구를 갖춤. 이 설계는 이후 스몰토크-80의 언어·가상머신·개발 환경으로 이어지며, 현대 객체지향 언어와 라이브 프로그래밍 환경의 중요한 기반이 됨.
제록스 PARC가 외부 배포와 이식을 목적으로 스몰토크-80을 개발·공개함. 아델 골드버그가 PARC 밖으로의 보급과 라이선스 사업을 이끌고, 댄 잉걸스가 공개판 개발을 주도함. 텍트로닉스, DEC, 애플, HP 등 파트너 기업에 라이선스가 제공되며 여러 시스템으로의 이식이 추진됨.
스몰토크-80은 클래스·메타클래스·메시지 전달·스트림·통합 개발 환경을 하나의 일관된 객체 체계로 정리한 버전. 이후 상용 스몰토크 구현체들의 기반이 되었으며, 1981년 8월 《BYTE》의 스몰토크 특집을 통해 객체지향 프로그래밍과 그래픽 개발 환경의 개념을 컴퓨터 업계에 널리 알리는 계기가 됨.
아델 골드버그와 데이비드 롭슨이 스몰토크-80의 언어 개념, 클래스 구조, 개발 환경과 구현 방식을 정리한 『Smalltalk-80: The Language and Its Implementation』을 출간함. 표지 색에서 유래해 이후 ‘블루북’으로 불린 저작.
이 책은 가상머신과 가상 이미지의 구조를 포함해 스몰토크-80 시스템을 상세히 설명한 대표 문헌으로 자리 잡음. 제록스 PARC 밖에서 스몰토크를 학습·이식·발전시키는 개발자와 연구자들의 공통 참조점이 되며, 스몰토크 생태계 확산의 중요한 기반이 됨.
앨런 케이와 연구팀이 1995년 12월 애플에서 교육용 컴퓨팅 환경 스퀅(Squeak) 개발을 시작함. 스퀵은 스몰토크를 바탕으로 다양한 컴퓨터에서 실행할 수 있도록 만든 자유 소프트웨어 환경으로, 어린이가 직접 프로그램·애니메이션·시뮬레이션을 만들 수 있게 하는 데 초점을 둠.
이는 다이나북과 스몰토크의 문제의식을 1990년대 개인용 컴퓨팅 환경에서 다시 구현하려는 시도였음. 이후 이토이즈(Etoys)와 교육용 저작 환경으로 발전하며, 어린이를 프로그래밍과 표현의 능동적 창작자로 보는 케이의 교육 철학을 계승함.
앨런 케이, 댄 잉걸스, 테드 케일러 등이 애플 컴퓨터에서 스몰토크-80 계열 구현을 바탕으로 새 스몰토크 시스템 스퀵을 개발·공개함. 스퀵은 1996년 애플에서 처음 배포된 스몰토크-80의 직접적 후속 구현으로, 소스 코드가 함께 제공돼 사용·수정·이식이 가능했던 개발 환경.
스퀵은 가상머신과 그 시뮬레이터를 스몰토크로 작성하고, 일부 언어를 C로 변환하는 방식으로 높은 이식성을 확보함. 윈도우·맥·유닉스 등 여러 운영체제에서 동작하는 스몰토크 환경으로 확산됐으며, 이후 이토이즈와 스크래치 등 교육용 프로그래밍 환경으로 이어지는 중요한 기반이 됨.
ANSI가 스몰토크 언어 표준 ANSI INCITS 319-1998을 미국 국가표준으로 제정함. 이 표준은 표준 문서만으로도 준수 구현을 만들 수 있고, 표준을 따르는 스몰토크 프로그램이 준수 구현들에서 같은 실행 의미를 갖도록 하는 것을 목표로 함.
표준은 스몰토크-80 계열의 언어 의미를 공통 기준으로 정리해 구현체·도구 제작자에게 참조점을 제공함. 다만 클래스 라이브러리, 개발 환경, 이미지 형식과 각 구현의 확장 기능까지 하나로 통일한 규격은 아니어서, 구현체 간 완전한 호환성을 보장한 것은 아님.
앨런 케이가 2003년 ACM 튜링상을 수상함. 현대 객체지향 프로그래밍 언어의 기반이 된 여러 아이디어를 개척하고, 스몰토크 개발팀을 이끈 공로, 개인용 컴퓨팅에 기여한 점이 공식 수상 사유로 제시.
이 수상은 메시지 전달 중심의 객체 개념, 스몰토크 환경, 다이나북으로 이어진 케이의 장기적 문제의식이 컴퓨터 과학의 핵심 흐름으로 인정받았음을 보여줌. 특히 프로그래밍 언어 설계와 개인용 컴퓨터를 학습·표현의 매체로 바라본 관점이 함께 평가받은 이정표라 할 수 있음.
스테판 두카스와 마르쿠스 뎅케르가 스퀵 3.9를 기반으로 파로 프로젝트를 시작함. 스퀵의 무거워진 인프라와 오래된 구성 요소를 정리하고, 전문 소프트웨어 개발과 동적 언어 연구에 적합한 간결한 스몰토크 환경을 만들려는 목적의 분기.
파로는 기존 스몰토크의 라이브 프로그래밍 환경을 계승하면서도 코드 정리, 개발 도구 개선, 현대적 소프트웨어 공학 기법의 도입을 지속함. 이후 MIT 라이선스 기반의 오픈소스 프로젝트로 발전하며, 현대 스몰토크 생태계의 주요 구현체 가운데 하나로 자리 잡음.