프로그래밍 언어에 대한 사랑과 루비의 탄생
Matz는 루비뿐만 아니라 모든 프로그래밍 언어를 사랑한다고 밝히며, 15세에 BASIC으로 프로그래밍을 시작했습니다. 당시 사용했던 샤프 포켓 컴퓨터의 BASIC은 매우 제한적이었고, 그는 프로그래밍이 원래 좌절스러운 것이라고 생각했습니다. 그러나 파스칼을 접하며 더 나은 문법과 추상화, 사용자 정의 함수, 데이터 구조, 재귀 등 프로그래밍의 광대한 세계를 발견했습니다. 17세에 자신만의 언어를 만들겠다는 꿈을 꾸었으나, 당시 인터넷과 오픈소스 소프트웨어가 없던 환경에서 컴파일러 관련 서적은 너무 어려웠습니다. 결국 10년 후 27세에 루비를 만들기 시작했으며, 이는 심리학, 인간 공학, 언어학, 프로그래밍에 대한 그의 열정이 교차하는 지점이었습니다. 특히 스몰토크(Smalltalk)를 통해 객체지향 프로그래밍의 아름다움과 추상화의 힘에 매료되었습니다. 그는 프로그래밍이 ‘창조의 기쁨’, ‘설계의 기쁨’, ‘힘의 즐거움’을 선사한다고 강조합니다.
자유 소프트웨어와 루비의 자유
대학 시절 인터넷을 통해 자유 소프트웨어(Free Software)를 접하며 큰 영향을 받았습니다. 자유 소프트웨어는 ‘자유로서의 무료(free as in freedom)’를 의미하며, 사용, 학습, 수정, 재배포의 자유를 보장합니다. Matz는 교과서 속 예제 코드와 달리 실제 프로덕션 수준의 견고한 소프트웨어(Emacs, Lisp 인터프리터 등)를 통해 프로그래밍을 배웠고, 이에 대한 보답으로 자신이 만드는 소프트웨어는 자유 라이선스로 배포하겠다고 결심했습니다. 루비가 자유 소프트웨어인 이유도 여기에 있습니다. 그는 자유의 가치를 매우 중요하게 생각하며, 다른 소프트웨어를 강제로 자유롭게 만들지는 않지만, 자신이 만든 소프트웨어는 모두가 자유를 누릴 수 있도록 배포합니다.
루비 성능 개선의 여정
Matz는 개인적으로 ‘성능’보다 ‘즐거움’을 우선시하는 철학을 가지고 루비를 설계했습니다. 이로 인해 루비는 최적화하기 어려운 언어로 알려지기도 했습니다. 그러나 2007년 코이치 사사다(Koichi Sasada)가 YARV(Yet Another Ruby Virtual Machine)를 개발하여 루비 1.8에서 1.9로 전환하며 성능이 3~50배 향상되었습니다. 이후 Shopify의 기여로 YJIT 컴파일러가 도입되어 루비 3.0은 루비 2.0보다 3배 빨라졌습니다. 작년에는 ZJIT 컴파일러로의 교체가 제안되었는데, 이는 더 높은 수준의 중간 표현(Intermediate Representation)을 도입하여 최적화 기회를 늘리고, 프로세스 간 네이티브 코드 캐싱을 통해 재컴파일 없이 성능을 획기적으로 개선하려는 시도입니다. Matz는 루비가 V8(Chrome), JVM(Java)과 같은 최상위 VM에는 미치지 못할지라도, VM 기반 언어 중 가장 빠른 언어 중 하나가 될 것이라고 기대합니다.
유닉스 철학과 루비의 통합, AI 시대의 개발 도구 활용
Matz는 유닉스 철학인 ‘각 프로그램은 한 가지 일을 잘하고, 도구들의 조합을 허용하라’를 좋아하지만, 이는 ‘임피던스 불일치(impedance mismatch)’와 수많은 작은 언어(awk, find 옵션 등)를 학습해야 하는 단점이 있다고 지적합니다. 이에 반해 펄(Perl)의 ‘키친 싱크(kitchen sink)’ 접근 방식, 즉 하나의 언어 안에 많은 도구와 기능을 담는 방식을 높이 평가하며, 루비는 이러한 펄의 아이디어를 계승한 ‘객체지향 유닉스’라고 설명합니다. 개인적으로 Emacs를 고집하며 Emacs 바인딩이 몸에 뱄다고 고백합니다. 최근에는 AI 도구(Cloud Code, Claude, Gemini)를 활용하여 코딩을 하고 있으며, AI를 통한 코드 조사(code investigation), 편집 도구(editing tool) (리팩토링, 함수 이름 변경 등), 텍스트 생성기(text generator) (README, 문서, 커밋 메시지)로서의 잠재력을 높이 평가합니다. 이를 통해 영어 작성을 피하고 ‘내면의 평화’를 얻었다고 유머러스하게 말합니다.
‘어쩌면 지켜봐야죠(Maybe we’ll see)’ 철학
중국 고사 ‘새옹지마’를 인용하며 루비의 여정을 설명합니다. 1993년 개발되어 1995년 공개된 루비는 처음에는 천재적인 언어로 칭송받았으나, 10년간 큰 주목을 받지 못했습니다. (불운? 어쩌면 지켜봐야죠.) 2004년 루비 온 레일즈(Ruby on Rails) 출시로 폭발적인 인기를 얻었으나 (행운? 어쩌면 지켜봐야죠.), 2010년 이후 정적 타입 언어의 부상으로 상대적으로 인기가 하락했습니다. (불운? 어쩌면 지켜봐야죠.) Matz는 AI 시대에는 간결한 프로그래밍 언어가 다시 인기를 얻을 것이며, 루비가 다시 주목받을 것이라고 예측합니다.