연사는 1972년 BASIC을 시작으로 자신의 프로그래밍 여정을 시간 순서대로 회고합니다. BASIC은 그에게 자기표현의 수단을 제공하며 삶의 방향을 완전히 바꾼 가장 영향력 있는 언어로 기억됩니다. 대학 시절에는 Pascal을 주 언어로 사용했지만, Simula 67이 객체 지향 프로그래밍의 개념을 처음으로 접하게 하며 그의 사고방식을 절차적 프로그래밍에서 완전히 새로운 방식으로 전환시켰습니다. Simula는 추상화 계층, 객체 내부의 로컬 상태, 이벤트 루프 기반의 작동 방식 등 당대에는 혁신적인 개념들을 포함하고 있었습니다. 이후 APT는 그가 처음으로 접한 도메인 특화 언어(DSL)이자 제약 기반 프로그래밍(Constraint-based programming)을 통해 컴퓨터에 ‘무엇을 원하는지’를 지시하는 방식의 중요성을 깨닫게 했습니다. PDP-11 어셈블러는 가장 우아한 아키텍처를 가진 기계로, 제한된 환경에서 효율적인 알고리즘을 구현하며 성능 최적화에 대한 깊은 이해를 제공했습니다. Prolog는 논리 프로그래밍의 매력을 보여주며, 컴퓨터에게 ‘어떻게’가 아닌 ‘무엇을’ 할지 관계를 설정하는 방식에 익숙해지게 했습니다. SQL은 그가 ‘세트 조작을 위한 DSL’로 정의하며, 선언적 사고방식과 데이터 세트 기반의 문제 해결 방식을 사랑하게 된 계기가 됩니다. Pic은 그림을 그리는 DSL로, 파이프라인을 통한 유연한 통합과 ‘내가 원하는 대로 작동하는’ 제약 기반 언어의 예시로 제시됩니다. XSLT는 XML 변환을 위한 함수형 언어로, 불변성과 재귀적 변환의 강력함을 깨닫게 하며 그를 객체 지향 프로그래머에서 ‘변환하는 프로그래머’로 완성시켰다고 말합니다. 그리고 Ruby는 그가 ‘사랑하는 언어’이자 ‘생각하는 방식대로 작동하는’ 언어로, 1998년부터 지금까지 꾸준히 사용하며 지속적인 기쁨을 주는 언어임을 강조합니다. 최근에는 Elixir의 파이프라인, 매크로, 불변성의 우아함과 분산 환경에서의 강점을 발견했으며, 현재 가장 큰 관심을 가지고 있는 언어는 Unison으로, 순수 함수형, 불변 코드, 내용 주소 지정 방식(Content-addressable storage), 그리고 ‘함수들의 클라우드’라는 미래 프로그래밍의 비전을 제시하는 언어라고 설명합니다. Unison은 의존성 검사나 빌드 도구 없이도 올바른 버전의 코드를 찾아 실행하며, 분산 코드를 단순한 ‘능력(Ability)’ 추가로 가능하게 하는 혁신적인 아이디어를 담고 있습니다.
프로그래밍 언어가 나에게 미친 영향: 나의 여정
Dave Thomas, keynote, "Love, Limerence, and Programming Languages"
작성자
EuRuKo
발행일
2025년 01월 13일
핵심 요약
- 1 본 강연은 연사가 프로그래밍 여정에서 경험하고 영향을 받은 다양한 프로그래밍 언어들을 소개하며, 각 언어가 그의 사고방식과 프로그래밍 패러다임을 어떻게 변화시켰는지 설명합니다.
- 2 BASIC, Simula, APT, PDP-11 어셈블리, Prolog, SQL, Pic, XSLT, Ruby, Elixir, Unison 등 여러 언어를 통해 객체 지향, 선언형, 함수형 프로그래밍 등 다양한 접근 방식을 탐구합니다.
- 3 궁극적으로는 프로그래머에게 끊임없이 새로운 언어를 탐색하고, 과거의 지혜를 배우며, 미래 기술을 시도하고, 무엇보다 프로그래밍을 즐길 것을 권장합니다.
도입
본 강연은 연사가 프로그래밍 언어와 사고방식의 관계에 대한 깊은 통찰을 제공하며 시작됩니다. 그는 자신이 오랫동안 객체 지향 프로그래밍(OOP)에 대해 불만을 느껴왔으며, 그 이유를 분석하는 과정에서 자신이 사용했던 다양한 프로그래밍 언어들이 자신에게 미친 누적된 영향을 깨달았다고 밝힙니다. 이는 단순히 언어를 소개하는 것을 넘어, 언어가 개인의 사고방식과 개발자로서의 성장에 어떻게 기여했는지를 탐구하는 개인적인 여정입니다. 연사는 이 강연이 특정 언어를 홍보하려는 것이 아니라, 그에게 오랜 시간 동안 '놀 수 있게' 해준 프로그래밍 환경에 대한 감사의 표현임을 강조합니다. 그는 언어가 단순한 도구를 넘어 사용자에게 영향을 미치며, 심지어 '우리가 도구의 도구가 된다'는 플로로의 말을 인용하며 언어의 영향력을 역설합니다.
결론
연사는 자신의 프로그래밍 여정이 '타인의 노력 위에 세워진 것'임을 강조하며, 자신에게 영향을 준 모든 이들에게 깊은 감사를 표합니다. 그는 각 언어가 자신을 '사람으로서 변화시켰고', '어떤 종류의 즐거움'을 가져다주었으며, 특히 BASIC과 Ruby는 그의 삶의 방향을 완전히 바꾸어 놓았다고 고백합니다. 강연의 핵심 메시지는 청중에게 '당신의 여정은 어떠한가?'라는 질문을 던지는 것입니다. 그는 루비 프로그래머로서 안주하지 않고, 때로는 위험을 감수하며 다른 언어들을 탐색할 것을 권유합니다. 이는 첫사랑을 등지는 것이 아니라 '삶에 양념을 더하는 것'과 같다고 비유합니다. 또한, 40년 이상 된 과거의 언어들에서 현재의 컴퓨터보다 훨씬 제한적인 환경에서 이뤄낸 놀라운 혁신들을 통해 '뒤를 돌아보는' 것의 중요성을 역설합니다. 마지막으로, '미래와 함께 놀고 있는가?'라는 질문과 함께 '3의 법칙(Rule of three)'을 제시합니다. 즉, 2주 안에 세 번 이상 눈에 띄는 기술은 반드시 탐색해보라는 것입니다. 그렇지 않으면 '유지보수 프로그래머'가 될 것이라고 경고합니다. 가장 중요한 것은 '즐거운가?'라는 질문입니다. 그는 프로그래밍이 어렵고 위험을 수반하는 일이지만, 그럼에도 불구하고 즐거움을 찾아야 한다고 강조하며, 그렇지 않다면 '즐겁게 만들라'는 메시지로 강연을 마무리합니다.