Loading AI tools
위키백과, 무료 백과사전
스몰토크(Smalltalk)는 동적 형, 반영을 지원하는 객체 지향 프로그래밍 언어이다. 이는 원래 1970년대에 교육용, 특히 구성주의 학습을 위해 만들어졌지만 나중에 비즈니스에서 사용되었다. 앨런 케이, 댄 잉걸스, 아델 골드버그, 테드 케일러, 다이애나 메리, 스콧 월리스를 포함한 LRG(Learning Research Group) 과학자들이 제록스 PARC에서 만들었다.
스몰토크에서 실행 프로그램은 클래스에 저장된 템플릿 코드의 인스턴스인 불투명하고 원자적인 소위 객체로 구성된다. 이러한 개체는 중간 가상 머신 환경(VM)을 통해 메시지를 전달하여 상호 통신한다. 프리미티브라고 불리는 상대적으로 적은 수의 객체는 실시간 재정의가 불가능하며 때로는 스몰토크 프로그래밍 환경과 독립적으로 정의된다.
비즈니스 및 데이터베이스 기능을 포함한 다른 용도로 상당한 산업 발전을 거친 스몰토크는 오늘날에도 여전히 사용되고 있다. 처음 공개되었을 때 스몰토크-80은 초기 객체 지향 프로그래밍(OOP) 분야에 대한 수많은 기본 아이디어를 제시했다.
처음부터 이 언어는 통합 개발 환경을 통해 대화형 프로그래밍을 제공했다. 이를 위해서는 코드의 언어 실행 시 반영 및 후기 바인딩이 필요하다. 이후 개발로 인해 통합 그래픽 사용자 인터페이스나 프런트엔드가 부족한 스몰토크 실행 환경이 하나 이상 생성되었다.
스몰토크와 유사한 언어는 활발히 개발되고 있으며 주변에 사용자 커뮤니티가 모여 있다. ANSI(American National Standards Institute) 스몰토크는 1998년에 비준되었으며 스몰토크의 표준 버전을 나타낸다.
스몰토크는 2017년 스택 오버플로 개발자 설문조사에서 "가장 사랑받는 프로그래밍 언어" 부문에서 2위를 차지했지만, 2018년 설문조사에서 가장 사랑받는 26개 프로그래밍 언어에는 포함되지 않았다.
스몰토크는 제록스 파크(PARC)에서 앨런 케이, 댄 잉갤스, 테드 캘러, 아델 골드버그가 만들었다. 1970년대의 리스프, 로고, 스케치패드와 시뮬라 등의 영향을 받았으며, 스몰토크-80부터 외부에 공개되어 퍼지기 시작했다. 스몰토크는 루비, 오브젝티브-C, Self, 자바, Dylan, 애플스크립트, 파이썬, 스칼라, 펄 6, 커먼 리스프 오브젝트 시스템(Common List Object System) 등의 프로그래밍 언어에 영향을 주었으며, 그 외에 매킨토시의 그래픽 사용자 인터페이스에도 영향을 주었다.
최초로 GUI를 제공하는 언어였으며, 이는 마우스가 스몰토크와 함께 제록스 파크(PARC)에서 연구되었던 것과도 관련이 있다. 현재 스몰토크를 사용하는 인구는 다른 객체지향 언어의 출현으로 소수에 불과하나, 루비를 비롯한 동적자료형 객체 지향 언어가 관심을 받고 있다.
최근에는 시사이드(Seaside)의 출현으로 HTML을 전혀 쓰지 않는 차세대 웹 프로그래밍의 비전을 보여주고 있기도 하다.
스몰토크는 다음과 같은 특징들을 가지고 있다.
스몰토크는 언어적 특징으로 인하여 독특한 개발문화를 가지고 있는데, 그것은 현재의 개발문화로도 전파되었다.
Transcript show: 'Hello, world!'.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.