비야네 스트로우스트룹: 우아함과 속도의 결합
비야네 스트로우스트룹(Bjarne Stroustrup)은 이론상으로는 모순처럼 들리는 것을 원했다. 그것은 "Simula 프로그램만큼 우아하면서도 C 프로그램만큼 효율적인" 프로그램을 작성할 수 있는 언어였다. Simula는 느리고 학구적이었고, C는 빠르지만 무자비했다. 스트로우스트룹은 그 후 40년을 바쳐 그 모순이 단지 겉보기일 뿐임을 증명했고, 그 과정에서 오늘날에도 전 세계의 운영 체제, 브라우저, 게임 엔진, 거래소를 움직이는 언어를 구축했다.
오르후스에서의 노동자 계급 시작
스트로우스트룹은 1950년 12월 30일 덴마크 오르후스의 노동자 계급 가정에서 태어났으며, 1969년부터 1975년까지 오르후스 대학교에서 컴퓨터 과학을 부전공으로 수학을 공부했다. 그 후 케임브리지 대학교로 가서 컴퓨터 과학 박사 학위를 받았으며, 1979년 데이비드 휠러(David Wheeler)의 지도하에 분산 컴퓨팅에 초점을 맞춘 연구를 완료했다. 케임브리지에서 Simula의 두 발명가 중 한 명이자 객체 지향 프로그래밍 자체의 발명가인 크리스텐 니가드(Kristen Nygaard)의 영향을 통해, 스트로우스트룹은 자신의 평생 작업을 정의하게 될 클래스, 상속, 추상화에 대한 아이디어를 흡수했다. 그는 Simula의 표현력에 대한 노출과 그것이 실행하기에 실용적이지 않을 정도로 느리다는 좌절감이 결합되어 C++가 해결하기 위해 구축된 구체적인 문제의 씨앗이 되었다고 말했다.
벨 연구소와 "C with Classes"의 탄생
1979년, 스트로우스트룹은 뉴저지주 머레이 힐에 있는 AT&T 벨 연구소의 컴퓨터 과학 연구 센터에 합류했다. 그곳은 Unix와 C 언어 자체를 탄생시킨 바로 그 연구 문화가 있는 곳이었다. 그곳에서 그는 C를 Simula 스타일의 클래스로 확장하기 시작했고, 처음에는 그 결과를 "C with Classes"라고 불렀다. 나중에 C++로 개명될 언어의 내부 참조 매뉴얼은 1984년에 등장했고, 이 언어는 1985년에 상용 출시되었다. 같은 해에 스트로우스트룹은 『The C++ Programming Language』 초판을 출판했는데, 이 책은 4판까지 나오고 21개 언어로 번역되었다. 그는 C++를 처음부터 새로 만드는 언어가 아니라 C의 확장으로 의도적으로 구축했다. 이 결정은 이론적 순수성을 다소 희생시켰지만, 기존의 방대한 코드베이스 및 툴체인과의 즉각적인 호환성을 얻게 해주었다. 이는 언어가 얼마나 빨리 퍼질지를 결정하는 데 무엇보다 중요한 실용적인 트레이드오프였다. 그는 이후 AT&T 벨 연구소의 대규모 프로그래밍 연구 부서를 창설부터 2002년 말까지 이끌었으며, 1993년에 벨 연구소 펠로우, 1996년에 AT&T 펠로우로 임명되었다.
C++가 실제로 추가한 것
C++는 C에 사용자 정의 타입을 내장 타입과 동일하게 진지하게 다루는 정적 타입 시스템, Simula의 클래스와 상속을 기반으로 한 객체 지향 프로그래밍, 그리고 나중에 더 영향력을 발휘하게 될 템플릿을 통한 제네릭 프로그래밍을 추가하여 코드를 한 번 작성하고 속도를 희생하지 않으면서 여러 타입에 대해 전문화할 수 있게 했다. 리소스 관리 관용구인 RAII(Resource Acquisition Is Initialization: 리소스 획득은 초기화이다)는 생성자와 소멸자를 통해 리소스의 수명을 객체의 수명과 연결했는데, 이는 C 프로그래머들을 수년간 괴롭혔던 메모리 및 리소스 누출 버그 클래스를 해결했으며, 나중에 가비지 컬렉션이 있는 언어 자체의 리소스 처리 설계에 영향을 미쳤다. 결정적으로, 이 모든 것은 하드웨어 및 운영 체제 리소스에 대한 C의 직접적인 액세스를 희생하지 않고 이루어졌다. 스트로우스트룹의 원래 야망 중 '효율성'의 절반은 '우아함'의 절반을 위해 결코 타협되지 않았다.
표준화를 통해 언어를 이끌다
스트로우스트룹은 단순히 C++를 발명하고 떠나지 않았다. 그는 1989년 ANSI 표준화 노력과 1991년 후속 ISO 위원회의 창립 멤버였으며, 위원회의 Evolution Working Group(언어에 제안된 모든 추가 사항을 심사하는 기관)의 의장을 24년간 맡았다. 이는 프로그래밍 언어 창시자로서는 이례적으로 긴 관리 기간이며, 이는 스트로우스트룹이 동시성 지원부터 컴파일 타임 메타프로그래밍에 이르기까지 수십 년간의 새로운 요구 사항을 이미 프로덕션에서 실행 중인 방대한 기존 C++ 코드를 깨뜨리지 않고 C++가 어떻게 흡수할지를 개인적으로 형성했음을 의미한다.
벨 연구소 이후의 학계 및 산업 경력
벨 연구소 이후, 스트로우스트룹은 2002년 텍사스 A&M 대학교의 공과대학 석좌 교수로 옮겼고, 2011년에는 대학 석좌 교수(University Distinguished Professor)가 되었다. 2014년에는 모건 스탠리에 기술 펠로우 겸 매니징 디렉터로 합류하는 동시에 컬럼비아 대학교의 객원 교수를 역임했으며, 2022년부터는 컬럼비아 대학교의 컴퓨터 과학 정교수로 재직 중이다. 이는 시스템 언어의 발명가를 월스트리트 거래 회사의 기술 중심에 두는 경력 후반의 이례적인 궤적이다.
수상 및 인정
스트로우스트룹의 영예는 단일한 유명한 돌파구가 아니라 그의 엄청난 영향력을 추적한다. 1993년 ACM 그레이스 머레이 호퍼 상, 1994년 ACM 펠로우 및 IEEE 펠로우 선출, 2005년 윌리엄 프록터 과학 업적상(컴퓨터 과학자로서 최초 수상), 2017년 IET 패러데이 메달, 그리고 2018년 찰스 스타크 드레이퍼 상(C++ 프로그래밍 언어를 개념화하고 개발한 공로) 등이 있다. 컴퓨터 역사 박물관은 2015년에 그를 펠로우로 인정하며 "객체 지향 프로그래밍과 제네릭 프로그래밍을 주류로 가져온" 공로를 인정했다. 그는 ACM 튜링 상은 수상하지 않았다.
비야네가 천재라고 불리는 이유
스트로우스트룹을 천재라고 부르는 근거는 단 한 번의 이론적 독창성에 있지 않다. 객체 지향은 니가드와 달에게서 왔고, 제네릭 프로그래밍은 전례가 있었으며, C는 이미 존재했다. 대신 그것은 더 희귀한 종류의 엔지니어링 판단력에 있다. 그것은 현장에서 긴장 관계에 있다고 가정했던 아이디어들을 어느 하나도 깨뜨리지 않고 융합하고, 컴퓨팅 자체가 언어 아래에서 변화함에 따라 4반세기 동안의 표준화 결정 전반에 걸쳐 그 트레이드오프를 올바르게 수행하는 능력이다. 드레이퍼 상의 인용문은 그가 C++를 "개념화하고 개발"했음을 인정하는데, 이는 순수한 발명이 아닌 합성을 인정하는 언어이다. 솔직한 반론은 실질적이다. C++는 그 축적된 복잡성, Rust와 같은 새로운 언어가 명시적으로 제거하도록 설계된 메모리 안전성 함정에 프로그래머를 노출시키는 점, 그리고 C와의 하위 호환성을 유지하려는 스트로우스트룹의 창립 결정으로 직접 거슬러 올라가는 설계 타협에 대해 현장 내부를 포함하여 널리 비판받는다. 천재라는 단어가 적용된다면, 그것은 순수한 추상적 통찰력의 번뜩임보다는 극도로 유용하고 불완전한 것을 구축하고 그것을 40년 동안 유지하는 장인 정신과 관리에 더 가깝다.
유산
C++는 운영 체제, 브라우저, 게임 엔진, 금융 거래 시스템의 기초로 남아 있으며, 그 영향은 Java, C#, Rust에 눈에 띄게 흐르고 있다. 스트로우스트룹 자신의 평생 작업에 대한 평가는 항상 특징적으로 감상적이지 않았다. 그는 사용되기 위한 도구를 구축했고, 그 척도(수십 년간의 순수한 편재성)에서 C++는 역사상 거의 모든 다른 프로그래밍 언어보다 성공했다.

