연사는 자신의 개발 여정에서 만난 주요 프로그래밍 언어들을 시간 순으로 소개하며, 각 언어가 가져다준 핵심적인 통찰을 설명합니다.
1. BASIC (1972)
- 영향: 프로그래밍에 대한 첫사랑이자 인생의 진로를 바꾼 가장 영향력 있는 언어입니다. 느린 개발 환경(ASR 33 텔레타이프, 종이 테이프, 110 보드)에도 불구하고, 자신을 표현하고 생각을 구체화하는 수단으로서 프로그래밍의 매력을 깨닫게 해주었습니다.
2. Simula (1967)
- 영향: 최초의 객체 지향(OO) 언어로 널리 알려져 있으며, 연사에게 완전히 새로운 프로그래밍 사고방식을 열어주었습니다. 객체 내부에 상태와 동작을 캡슐화하고 추상화 계층을 만드는 개념, 그리고 이벤트 루프 기반의 동작 방식은 그의 프로그래밍 방식에 깊은 영향을 미쳤습니다.
3. APT (1956)
- 영향: CNC 기계 제어를 위한 도메인 특화 언어(DSL)로, ‘무엇을 할 것인가’를 명시하고 ‘어떻게 할 것인가’는 컴퓨터에 맡기는 제약 기반 프로그래밍의 개념을 처음으로 접하게 해주었습니다. 이는 선언형 프로그래밍에 대한 이해의 시초가 되었습니다.
4. PDP-11 어셈블리 (1970년대)
- 영향: 16비트 아키텍처의 우아함과 효율성을 보여주었으며, 하드웨어와의 직접적인 상호작용 및 제한된 환경에서의 효율적인 알고리즘 구현 방법을 익히게 했습니다. C 언어의 문자열 처리 방식에도 영향을 미쳤을 것으로 추정되는 등, 하드웨어와 소프트웨어의 긴밀한 관계를 이해하는 데 기여했습니다.
5. Prolog
- 영향: 논리형 프로그래밍 언어로, 컴퓨터에게 ‘어떻게’가 아닌 ‘무엇을’ 원하는지 정의하는 선언형 사고방식을 심화시켰습니다. 백트래킹 개념에 익숙해지게 했으며, Erlang과 같은 후대 언어에 영향을 주었습니다.
6. SQL
- 영향: 집합 조작을 위한 DSL로서, 데이터에 대한 선언적인 접근 방식의 강력함을 보여주었습니다. 30년 이상 사용하면서도 여전히 유용하며, 복잡한 데이터 질의를 통해 원하는 결과를 효율적으로 얻을 수 있게 합니다.
7. Pick (1974)
- 영향: 다이어그램 생성을 위한 DSL로, ‘내 의도대로 동작하는’ (do what I mean) 철학과 파이프라인을 통한 통합의 유연성을 보여주었습니다. 텍스트 기반 형식으로 전역적인 변경이 용이하며, 제약 기반 프로그래밍의 또 다른 예시가 됩니다.
8. XSLT
- 영향: XML 변환을 위한 함수형 언어로, 불변성과 재귀적인 변환 적용을 통해 강력한 기능을 제공합니다. 비록 문법이 다소 복잡할 수 있으나, 효율적인 문서 변환 파이프라인 구축에 필수적인 도구로 활용되었습니다.
9. Ruby
- 영향: 연사에게 ‘사랑하는 언어’로 불리며, 그의 사고방식과 가장 잘 부합한다고 언급됩니다. 1998년부터 사용해온 코드가 여전히 실행될 정도로 안정적이며, 프로그래밍에 대한 즐거움을 지속적으로 제공해 주었습니다.
10. Elixir
- 영향: 현재 연사가 흥미를 느끼는 언어 중 하나로, 우아한 파이프라인, 강력한 매크로 기능(제어 구조가 함수 호출로 구현됨), 그리고 BEAM 가상 머신 기반의 분산 환경 및 높은 가용성을 장점으로 꼽습니다.
11. Unison
- 영향: 연사의 현재 ‘집착’ 대상인 순수 함수형 언어로, 엄격한 타입 지정, 불변 코드(콘텐츠 주소 지정 방식), 그리고 ‘어빌리티(abilities)’를 통한 상태 및 분산 처리 관리가 특징입니다. 미래 프로그래밍의 가능성(함수 클라우드, 패턴 매칭 기반 실행)을 제시하는 혁신적인 아이디어를 담고 있습니다.