Skip to content

Chapter 8 John Kemeny: The First “Everyman’s” Language—BASIC #1683

@jongfeel

Description

@jongfeel

Chapter 8 존 케메니: 모두를 위한 첫 번째 언어, BASIC

BASIC(베이직)은 누구나 프로그래밍이라는 영역에 접근할 수 있어야 한다고 믿었던 프로그래머들의 여정을 담고 있습니다.
그들의 여정은 불가능해 보였던 꿈에 대한 도전이었으며, 마지막에 결국 자기 천재성에 스스로 눈과 귀를 닫아 버린 이들의 이야기이기도 합니다.

존 케메니라는 인물

존 폰 노이만(John von Neumann)과 마찬가지로 야노시 죄르지(John George) 케메니 역시 헝가리 부다페스트에서 유대인으로 태어났습니다.

1945년 19세에 로스앨러모스의 맨해튼 프로젝트에서 리처드 파인만 밑에서 일하며 존 폰 노이만의 프로젝트에 참여합니다.

1946년 여전히 로스앨러모스에서 일하고 있던 케메니는 폰 노이만이 자신의 보고서 내용을 설명하는 강연을 들었습니다.

케메니는 폰 노이만의 비전을 마치 유토피아처럼 느꼈고, 있으리라고는 상상조차 하지 못했다고 했습니다.
하지만 그 강연 이후로 불과 7년 만에 폰 노이만의 비전은 실제로 실현됩니다.

케메니는 프린스턴 대학교로 돌아가 학업을 계속합니다.
그의 박사 학위 논문 제목은 “Type-Theory vs. Set-Theory(유형 이론 대 집합 이론)”며, 지도 교수는 앨론조 처치(Alonzo Church)입니다.
케메니는 박사 과정 중에 알베르트 아인슈타인의 조교로 일하기도 했습니다.

이후 1953년, 케메니는 랜드(RAND)에서 컨설팅 업무를 했고, 그 과정에서 폰 노이만의 JOHNNIAC 컴퓨터와 초창기 IBM 700 시리즈의 컴퓨터들을 접할 기회를 얻었습니다.

‘프로그래밍 언어는 사람을 중심으로 설계되어야 한다’는 케메니의 신념은 훗날 ‘모든 사람이 컴퓨터를 사용할 수 있도록 해야 한다’는 일생 과제로 이어집니다.

케메니는 이후 다양한 업적과 경력을 쌓으며 1984년 뉴욕 과학 아카데미상, 1986년 IEE 컴퓨터 메달, 1990년 루이스 로빈슨상을 비롯해서 명예박사 학위를 20개 받았습니다.

토머스 커츠라는 인물

커츠는 1928년 일리노이주 오크 파크에서 태어났습니다.
어릴 때부터 과학에 관심이 많았고, 일리노이주 게일즈버그(Galesburg)에 위치한 녹스(Knox) 칼리지에서 물리학과 수학을 공부했습니다.

커츠는 1950년 UCLA에서 여름 학기를 듣던 중 SWAC라는 컴퓨터를 접합니다.
SWAC는 진공관 2,300개와 37비트 단어 256개로 구성된 컴퓨터이며, 커츠가 처음 프로그래밍을 시작한 것도 이 컴퓨터입니다.

커츠는 프린스턴 대학교에서 수학 박사 학위를 취득하고, 다트머스 대학교로 초빙되어 케메니를 도와 교내 컴퓨팅 환경을 구축하는 역할을 맡습니다.
그렇게 이루어진 두 사람의 만남은 BASIC이라는 언어의 역사를 만들어 낸 핵심 축이 됩니다.

혁신적인 발상

1953년에 케메니는 뉴햄프셔주 어퍼 밸리(Upper Valley)에 위치한 다트머스 대학교에서 수학 학부를 재건해야 하는 임무를 맡습니다.

당시 수학 학부의 교수진은 매우 고령이어서 보다 젊은 시각으로 학부에 대한 전면적인 개편이 요구되고 있었습니다.
이를 위해 알베르트 아인슈타인과 존 폰 노이만이 다트머스 대학교에 케메니를 추천한 것입니다.

MIT가 IBM 704를 보유하고 있었기 때문에 케메니는 그 기기에 대한 사용 권한을 MIT에 요청합니다.
그리고 톰 커츠에게 메사추세츠 케임브리지7와 뉴햄프셔 해노버를 오가며 천공 카드와 출력물들이 든 무거운 철 상자를 2주에 한 번씩 옮기도록 합니다.

케메니는 2주에 한 번씩 MIT에 있는 컴퓨터를 사용하는 것은 너무 비효율적이라는 결론을 내립니다.
그래서 그는 학교 물품을 위한 예산 중에 3만 7,000달러를 전용해서 LGP-30이라는 ‘데스크톱’ 컴퓨터를 구입합니다.

이 컴퓨터는 31비트 4,096워드를 자기 드럼에 저장하며, 진공관 113개와 반도체 다이오드 1,450개로 구성되어 있습니다.
LGP-30은 단일 주소 체계를 사용하며 곱셈과 나눗셈을 지원합니다.
CPU 클럭 속도는 120kHz, 메모리 액세스 시간은 2ms에서 17ms 사이입니다.
입출력 장치는 전신 타자기(텔레프린터)와 종이테이프 리더기 및 천공기고, 기계어나 모든 구분자가 아포스트로피로 되어 있는 매우 특이한 프로그래밍 언어인 ACT-III로 프로그래밍해야 합니다.

LGP-30 컴퓨터는 한 번에 한 명만 사용해야 하고, 동시에 여러 사람이 사용할 수 없어 접근이 매우 제한적입니다.
결국 학생들은 MIT에 있는 IBM 704도 계속해서 병행해서 사용했습니다.

커츠는 학생을 다섯 명씩 한 그룹으로 나누어 LGP-30을 사용하게 하는 일종의 물리적인 ‘타임셰어링’ 실험을 해 보았습니다.
각 그룹은 15분 동안 원하는 만큼 컴파일과 테스트를 실행할 수 있으며, 그룹 내 각 학생은 약 1분씩 돌아가며 프로그램을 컴파일하고 실행 결과를 확인하도록 했습니다.

이 실험을 통해 커츠는 적절한 단말기(terminal)와 소프트웨어를 갖추면 더 많은 학생이 동시에 컴퓨터를 사용할 수도 있겠다는 생각을 하게 됩니다.

불가능해 보이는 꿈

미국 정부는 과학, 기술, 공학, 수학(STEM) 분야에 막대한 예산을 투입하고 있었습니다.
커츠는 그 기회를 활용하여 NSF(미국 국립과학재단)에 보조금을 신청했습니다.
그의 제안서에는 학부생 12명을 프로그래머로 활용하여 타임셰어링 시스템을 직접 개발하겠다는 계획도 담겨 있었습니다.

커츠는 1963년 여름에 컴퓨터를 주문했고, 1964년 2월에 모든 장비가 도착했습니다.
불과 3개월 후인 1964년 5월 1일에 다트머스 타임셰어링 시스템(Dartmouth Time Sharing System)과 BASIC 컴파일러가 마침내 탄생하게 됩니다.

이 기적 같은 개발 속도는 사실 케메니와 학생들이 미리 3개월 넘게 종이에 코드를 써 두고 있었기 때문에 가능했습니다.
즉, 케메니는 이미 BASIC 컴파일러를 만들었고, 학부생들은 DN-30 및 DN-235용 통신 관리와 타임셰어링 소프트웨어를 모두 어셈블리어로 작성해 둔 상태였습니다.

BASIC

커츠는 프로그래밍 언어로 포트란을 사용하고 싶어 했지만, 케메니는 기존 언어들은 ‘모든 학생’이 컴퓨팅을 배워야 한다는 자신의 생각과 맞지 않는다고 주장했습니다.
그래서 케메니는 더 단순하고 많은 사람이 쉽게 접근할 수 있는 언어를 만들자고 결심합니다.
그는 아마도 먼저 BASIC이라는 이름을 정해 두고 거기에 맞추어 Beginners All-purpose Symbolic Instruction Code(초보자용 범용 기호 명령어 코드)라고 이름을 붙인 것으로 보입니다.

BASIC은 줄 번호를 사용했기 때문에 전신 타자기(teletype)로 코드를 쉽게 편집할 수 있습니다.
그리고 모든 명령문이 키워드로 시작하도록 설계되어 있어 문법이 단순하며, 그에 따라 컴파일러도 쉽게 만들 수 있습니다.
또 학생들이 직접 프로그램을 입력하고 몇 초 안에 실행 결과를 확인할 수 있어 BASIC은 역사상 최초로 폭넓은 대화형(wide-access interactive) 프로그래밍 언어가 되었습니다.

타임셰어링

더 큰 혁신은 단말기 수십 대를 동시에 지원할 수 있었다는 점입니다.
학생 20명, 30명, 심지어 40명이 한꺼번에 BASIC 프로그램을 입력하고, 몇 초 만에 실행 결과를 확인해 볼 수 있었습니다.
이것이야말로 진정한 타임셰어링 방식이고, 이는 결과적으로 컴퓨팅 세계의 판도를 바꾸는 전환점이 됩니다.

그리고 학생들은 당연하게도 게임을 만들기 시작합니다.
게임을 만들지 않은 학생들은 그 게임을 즐기기 시작합니다.
미식축구 게임도 있었고, 틱택토 게임도 있었습니다.
결국 대학생들에게 자유롭게 코딩할 수 있는 환경이 주어지자 그들은 게임부터 만들기 시작합니다.

GE는 이런 상황에 큰 충격을 받습니다.
다트머스에서 소프트웨어 라이선스를 구입하고 그 대가로 수많은 하드웨어를 제공했으며, 이후 미국 전역은 물론 전 세계에 타임셰어링 서비스 센터를 열었습니다.

컴퓨터 키즈

이후 수많은 고등학교에 타임셰어링 단말기가 설치되었고, 점점 더 많은 아이가 컴퓨터에 빠져들었습니다.
이때가 바로 컴퓨터 키즈 시대의 시작입니다.

컴퓨터 키즈들이 사회에 진출하면서 전 산업이 변화하게 된 것은 어쩌면 너무도 당연한 일이지 않았을까 싶습니다.

해방

미니컴퓨터가 널리 보급되기 시작했고, 사람들은 미니컴퓨터에서도 BASIC 같은 대화형 언어로 프로그램을 짜길 원했습니다.
그 결과 타임셰어링 서비스는 빠르게 쇠퇴하기 시작합니다.

여전히 일반인이 컴파일러를 이용해서 프로그래밍을 하는 것은 어려웠습니다.
반면에 인터프리터는 상대적으로 더 간단하게 프로그램을 만들 수 있었기에 BASIC 인터프리터가 들불처럼 퍼져 나가기 시작했습니다.
이 현상은 개인용 컴퓨터가 등장하면서 더욱 가속화됩니다.
결국 BASIC 인터프리터의 각종 변형 언어들이 세상을 휩쓸었고, 다트머스 대학교에서 만들어진 BASIC 컴파일러는 조용히 역사의 뒤편으로 사라집니다.

눈먼 선구자

1980년대 중반 다트머스 팀이 만든 BASIC은 라이벌인 파스칼(Pascal) 언어와 견줄 만큼 매우 강력한 프로그래밍 언어가 되어 있었습니다.

하지만 여전히 BASIC 특유의 키워드를 기반으로 한 구조가 유지되었고, C 언어처럼 모든 것을 함수로 처리하고, 입출력조차 함수 호출로 처리하는 방식은 끝내 받아들여지지 않았습니다.

1984년에 케메니와 커츠가 쓴 글을 보면 True BASIC을 포트란, 코볼, 파스칼과 비교하며 장점을 설명했지만, 당시 산업계를 급속도로 장악해 가던 C 언어는 거의 언급하지 않았습니다.
1980년대 중반에는 이미 C가 사실상 표준처럼 자리 잡아 갔고 C++와 스몰토크도 등장하기 시작했는데 말입니다.

공생?

1972년 케메니는 <Man and the Computer(인간과 컴퓨터)>라는 책을 출간합니다.
케메니는 책에서 컴퓨터를 인간과 공생하는 새로운 종(種)으로 보아야 한다고 주장합니다.

케메니는 책 전체를 통틀어 모든 사람이 컴퓨터에 접근할 수 있게 하는 방법으로 줄곧 타임셰어링을 제시했습니다.
그는 가정마다 개인용 컴퓨터를 들이는 대신 전화선을 통해 대형 컴퓨터 센터와 연결되는 가정용 단말기의 세상을 꿈꾸었습니다.

케메니의 예견

인공지능

“1960년대는 인공지능이 일각에서 예상했던 것보다 훨씬 어렵다는 사실을 보여 주었다.” “비록 일부 성공적인 사례가 있기는 했지만 컴퓨터에 인간의 지능을 가르치는 데는 막대한 인력이 필요하고, 그렇게까지 컴퓨터가 인간의 지능을 모방하도록 해야 할 가치를 찾기 어려운 경우가 훨씬 더 많다. 결국 투입해야 하는 노력이 수지 타산에 맞지 않게 되는 순간 인간의 지능을 그대로 모방하겠다는 시도는 무산되기 마련이다.”

오늘날에도 여전히 우리 사회는 ChatGPT를 도구로 보고 있으며, 인간처럼 지능을 가진 존재로 여기고 있지는 않습니다.

전화

“…… 버튼식 전화기로 상대방 이름과 대략적인 주소를 ‘입력’하면 전화 회사의 컴퓨터가 해당 번호를 찾아 자동으로 연결해 줄 것이다. 다만 이는 컴퓨터를 추가로 사용하는 일이므로 그에 대한 추가 요금이 부과될 것이다. ……”

사생활과 빅 브라더

“정부나 대기업이 우리 사생활을 침해한다면 그것은 우리가 그렇게 하도록 놔두었기 때문이다. 그들은 컴퓨터 없이도 충분히 그런 일을 할 수 있다. 다만 컴퓨터 덕분에 수백만 명을 추적하는 일이 훨씬 쉬워졌을 뿐이다. 컴퓨터는 ‘빅 브라더’의 비용을 낮추었을 뿐이지 그 본질적인 부분에는 아무런 변화를 가져오지 않았다.”

‘무어의 법칙’ 종말

“지난 25년 동안 컴퓨팅 속도가 100만 배 향상되었으니, 앞으로 25년 동안에도 비슷한 속도로 컴퓨팅 속도가 향상될 것이라는 말은 그럴듯하게 들린다. 하지만 그런 주장은 자연의 절대적인 한계 중 하나인 빛의 속도라는 장벽에 부딪히게 될 것이다.”

“나는 다음 세대 안에 세계에서 가장 큰 도서관의 내용을 담을 수 있는 컴퓨터 메모리를 보게 될 것이라 확신한다.”

단말기/콘솔/화면

“컴퓨터 단말기라는 매우 중요한 분야는 비용 개선 측면에서 다른 분야에 비해 뒤처지고 있다. 컴퓨터 단말기의 임대 및 유지 비용으로 한 달에 100달러 정도가 드는데 이 단말기들은 아직까지 상당히 원시적인 수준에 머물러 있다. …… 나는 신뢰성이 높은 컴퓨터 단말기를 흑백 텔레비전 한 대 가격으로 제조할 수 없는 이유를 잘 모르겠다. 컴퓨터가 가정으로 보급되기 위해서는 이런 부분에 대한 개선이 반드시 필요하게 될 것이다.”

네트워크

“앞으로 10년 동안은 거대한 컴퓨터 네트워크의 발전이 이루어질 것으로 보인다. 사실 이미 오늘날에도 몇몇 소규모 네트워크가 있다. 현대 컴퓨터의 진정한 영향력은 미국 전역에 대규모 다중 프로세서 컴퓨터 센터가 구축되고, 그것이 기존 통신망과 효과적으로 연결될 때 비로소 대부분의 사람이 실감하게 될 것이다.”

교육

“…… 1990년쯤이면 모든 가정이 작은 대학교가 될 수 있을 것이다.”

어렴풋이 본 미래

존 케메니는 프로그래머였습니다.
그는 1946년에 프로그램 내장식 컴퓨터라는 폰 노이만의 이상향을 꿈꾸면서 프로그래머가 되었습니다.
케메니는 BASIC 컴파일러를 만들고, 학부생들과 함께 거의 ‘돌칼과 곰 가죽’밖에 없는 상태에서 최초의 실용적인 타임셰어링 시스템을 구축함으로써 자신의 뛰어난 능력을 입증했습니다.
그의 목표는 컴퓨터의 민주화, 즉 대중에게 컴퓨팅을 제공하는 것이었습니다.
그는 모든 사람이 컴퓨터를 사용할 수 있고 또 사용해야 한다고 믿었습니다.
그 믿음을 실현시키기 위해 케메니는 다트머스 대학교에서 많은 학생이 컴퓨터에 접근할 수 있는 단말기를 무료로 제공했고, 모든 교육 기관이 마찬가지로 동일한 형태의 서비스를 제공해야 한다고 말했습니다.
심지어 그는 컴퓨터 무료 접근을 대학교 인증의 조건으로 제안하기도 했습니다.

비록 명확하지는 않더라도 케메니는 어렴풋이 미래를 내다보았습니다.
그리고 자신의 꿈을 이루기 위해 온 힘을 쏟아부었습니다.

존 케메니, 그는 진정한 프로그래머였습니다.

Metadata

Metadata

Assignees

Labels

2026We Programmers우리, 프로그래머들 - AI 시대에 잊혀 가는 '프로그래머 정신'을 다시 깨우다

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions