26개 알파벳으로 세상 모든 컴퓨터를 움직이는 법 - 데니스 리치
1970년대, 컴퓨터마다 다른 언어를 써서 프로그램을 옮기려면 처음부터 다시 만들어야 했어
1970년대 벨 연구소에는 이상한 풍경이 펼쳐져 있었어요. 똑같은 계산기 프로그램을 만드는데, IBM 컴퓨터용으로 한 번, DEC 컴퓨터용으로 또 한 번, 완전히 다르게 짜야 했거든요. 마치 같은 게임을 플스에서 한 번, 엑박에서 한 번 따로 개발하는 것처럼요. 프로그래머들은 똑같은 일을 반복하느라 지쳐갔어요. "더 좋은 방법이 없을까?" 데니스 리치도 매일 밤 이 생각에 잠 못 이뤘죠. 당시엔 컴퓨터마다 자기만의 언어가 있어서, 프로그램 하나 옮기려면 전체를 새로 쓰는 게 당연했거든요. 정말 미친 것 같지 않아요?
데니스 리치는 26개 알파벳만으로 어떤 컴퓨터에서도 똑같이 작동하는 C 언어를 만들었어—마치 레고 블록처럼
리치는 천재적인 아이디어를 떠올렸어요. "알파벳 26개면 충분하잖아? 이걸로 모든 컴퓨터가 알아듣는 언어를 만들면 되겠네!" 그는 켄 톰슨과 함께 C 언어를 설계했어요. 핵심은 단순함이었죠. if, while, for 같은 몇 가지 명령어만으로 복잡한 프로그램을 레고처럼 조립할 수 있게 만들었어요. 더 놀라운 건, 이 언어로 짠 코드가 어떤 컴퓨터에서든 작동하게 만든 거예요. 비결은? C 언어를 각 컴퓨터의 언어로 번역해주는 '컴파일러'를 함께 만든 거였죠. 마치 구글 번역기처럼요. 1972년, C 언어가 세상에 나왔을 때 프로그래머들은 환호했어요.
C 언어가 나오자 프로그래머들은 한 번 짠 코드를 모든 컴퓨터에서 쓸 수 있게 되었고, 소프트웨어 세상이 폭발적으로 커졌어
변화는 즉각적이었어요. 프로그래머들이 한 번 짠 코드를 여러 컴퓨터에서 재활용하기 시작하면서, 소프트웨어 개발 속도가 10배는 빨라졌죠. 리치와 톰슨은 C 언어로 유닉스라는 운영체제를 다시 만들었고, 이게 전 세계로 퍼져나갔어요. 대학들이 유닉스를 배우기 시작했고, 그 학생들이 회사에 가서 C로 프로그램을 짰어요. 마치 눈덩이처럼 커진 거죠. 1980년대에 나온 윈도우도, 맥OS도, 리눅스도 모두 C 언어로 만들어졌어요. 한 사람의 아이디어가 소프트웨어 산업 전체를 바꿔버린 순간이었죠. 리치는 조용히 웃으며 말했대요. "그냥 귀찮은 일을 줄이고 싶었을 뿐이야."
지금 네 손 안의 스마트폰, 게임기, 인공지능까지—모두 C 언어의 자손이 돌아가고 있어
믿기 어렵겠지만, 지금 네가 쓰는 아이폰의 운영체제는 C의 사촌 격인 Objective-C로 만들어졌어요. 안드로이드폰? 그 안의 리눅스 커널은 순수 C예요. 유튜브 보면서 쓰는 크롬 브라우저도, 친구들이랑 하는 마인크래프트 서버도, 심지어 챗GPT 같은 인공지능도 밑바닥엔 C와 C++이 깔려 있어요. 50년 전 리치가 만든 간단한 언어가 지금도 세상을 움직이고 있는 거죠. 다음에 게임 로딩 화면 볼 때 한번 생각해봐요. "아, 지금 C 언어가 일하는 중이구나!" 26개 알파벳으로 시작된 혁명은 지금 이 순간도 계속되고 있어요.



