Smalltalk 의 설계 원칙 (Design Principles Behind Smalltalk)

Source

  • Evernote/Inbox/Design Principles Behind Smalltalk.md

Summary

이 문서는 1981 년 BYTE 잡지에 실린 Daniel H. H. Ingalls 의 논문으로, Smalltalk 프로젝트의 핵심 철학과 설계 원칙을 설명합니다. Smalltalk 의 궁극적 목표는 ‘모든 사람의 창의적 정신을 위한 컴퓨터 지원’을 제공하는 것입니다. 이를 위해 저자는 2~4 년 주기의 반복적 개발 사이클 (관찰-이론화-검증) 을 통해 도출된 원칙들을 제시합니다. 핵심 원칙은 다음과 같습니다: 1) 개인적 숙달 (Personal Mastery): 시스템은 단일 개인이 완전히 이해하고 장악할 수 있어야 하며, 이는 창의적 표현의 장벽을 제거하기 위함입니다. 2) 좋은 설계 (Good Design): 변경 불가능한 부분은 최소화하고, 그 부분은 최대한 일반적이어야 하며, 시스템의 모든 부분은 균일한 프레임워크 내에 있어야 합니다. 3) 언어의 목적: 언어는 의사소통의 틀을 제공해야 하며, 인간의 사고 및 의사소통 방식 (명시적/암시적 맥락) 에 부합해야 합니다. 4) 범위 (Scope): 컴퓨터 언어 설계는 내부 모델, 외부 매체, 그리고 인간과 컴퓨터 간의 상호작용을 모두 포괄해야 합니다. Smalltalk 은 단순한 프로그래밍 언어가 아니라 이러한 상호작용을 지원하기 위한 통합된 환경임을 강조합니다.

Key Points

  • Smalltalk 의 목표: 모든 개인의 창의적 정신을 지원하기 위한 컴퓨터 환경 제공.
  • 개발 방법론: 관찰 (애플리케이션 구축) -> 이론화 (언어 재설계) -> 검증 (새 시스템 구축) 의 2~4 년 주기 반복.
  • 핵심 원칙 1 - 개인적 숙달: 시스템은 한 사람이 완전히 이해하고 통제할 수 있을 만큼 단순하고 통합되어야 함.
  • 핵심 원칙 2 - 좋은 설계: 변경 불가 부분 최소화, 최대 일반성, 균일한 프레임워크 유지.
  • 핵심 원칙 3 - 언어의 본질: 언어는 명시적/암시적 맥락을 포함한 의사소통의 틀이며, 인간의 인지 구조와 호환되어야 함.
  • 핵심 원칙 4 - 설계 범위: 내부 모델, 외부 매체, 인간-컴퓨터 상호작용을 모두 아우르는 통합적 접근 필요.
  • Smalltalk 의 정체성: 단순한 절차 조직이나 데이터 타입 계층이 아닌, 인간과 컴퓨터의 상호작용을 지원하기 위한 포괄적 시스템.