1P by GN⁺ | ★ favorite | 댓글 1개
  • Thomas Eugene Kurtz는 John Kemeny와 함께 BASIC과 Dartmouth Timesharing System을 만든 미국 수학자·컴퓨터 과학자로, 1928년 2월 22일 태어나 2024년 11월 12일 별세함
  • 1960년대 초 학술 컴퓨팅에는 학부생이 쉽게 쓸 수 있는 비전문가용 프로그래밍 언어가 부족했고, BASIC은 그 간극을 메우기 위해 만들어짐
  • Kurtz와 Kemeny는 학생들이 캠퍼스 Teletype 단말기로 BASIC에 접근할 수 있도록 DTSS를 함께 개발했고, 두 시스템은 1964년 5월 1일 공개됨
  • 1964년 가을에는 Dartmouth 캠퍼스의 20개 단말기에서 수백 명의 학생이 BASIC을 사용했으며, 이후 여러 세대의 컴퓨터로 확산됨
  • Kurtz의 영향은 Dartmouth의 컴퓨팅 교육·운영 조직, BASIC 표준화, True BASIC 설립으로 이어졌고 1994년 ACM Fellow로 선정됨

BASIC과 Dartmouth Timesharing System

  • Thomas Eugene Kurtz는 John Kemeny와 함께 BASIC 프로그래밍 언어Dartmouth Timesharing System(DTSS) 을 공동 발명함
  • 1960년대 초 학술 컴퓨팅 환경에서는 학부생이 사용할 수 있는 단순한 비전문가용 프로그래밍 언어가 부족했고, BASIC은 이 사용자를 염두에 두고 만들어짐
  • 두 사람은 BASIC을 캠퍼스 학생들에게 제공하기 위해 DTSS도 함께 개발함
    • DTSS는 네트워크를 통해 컴퓨터 접근을 공유하는 방식이었음
    • 여러 학생이 BASIC에 접근하려면 이런 기반이 필요했음
  • DTSS는 성공한 초기 대규모 시분할 시스템으로 자리 잡음
    • Dartmouth에 컴퓨터를 기증했던 General Electric은 DTSS를 Genie 같은 온라인 서비스의 커널로 확장함
    • DTSS와 BASIC은 1964년 5월 1일 공개됨
    • 1964년 가을에는 캠퍼스의 20개 단말기에서 수백 명의 학생이 BASIC을 사용함

학력과 초기 컴퓨팅 경험

  • Kurtz는 Illinois주 Oak Park에서 태어났고, 1950년 Knox College를 졸업한 뒤 1956년 Princeton University에서 수학 박사학위를 받음
  • 1951년에는 UCLA에 있던 SWAC 컴퓨터를 사용할 기회를 얻음
    • SWAC는 National Bureau of Standards가 만든 Standards Western Automatic Computer였음
    • 미국의 초기 전자식 컴퓨터 중 하나였고, 2013 CHM Fellow인 Harry Huskey가 감독함

BASIC의 확산과 개인용 컴퓨터 시대

  • BASIC은 여러 세대의 컴퓨터에서 계속 사용됨
    • 1960년대 메인프레임과 미니컴퓨터
    • 1970~80년대 마이크로컴퓨터
    • 현재의 신용카드 크기 Raspberry Pi 컴퓨터
  • 1978년 Harvard 학생 Bill Gates와 Paul Allen은 취미용 마이크로컴퓨터 MITS Altair 8800을 위한 첫 BASIC 버전을 작성함
    • 이 BASIC은 기능이 거의 없는 깜빡이는 상자였던 Altair를 유용한 컴퓨터로 바꿈
    • 개인용 컴퓨터 시대에 BASIC의 인기가 다시 크게 높아짐

Dartmouth에서의 교육·조직 활동

  • Kurtz는 Dartmouth에서 컴퓨팅 교육과 운영에 오래 관여함
    • 1966~1975년 Kiewit Computation Center의 director로 일함
    • 1975~1978년 Office of Academic Computing의 director를 맡음
    • 1979년 Stephen J. Garland와 함께 Computer and Information Systems 전문 석사 과정을 조직했고, 일부 자금은 IBM 보조금으로 지원됨
  • 1983년에는 Kemeny와 Dartmouth 출신 학생 3명과 함께 True BASIC, Inc. 를 설립함
    • 목표는 양질의 교육용 소프트웨어와 플랫폼 독립 BASIC 컴파일러 개발이었음
    • CIS 프로그램 종료 후 1988년 다시 강의로 돌아갔고, 1993년 Dartmouth에서 은퇴함

BASIC 표준화와 학술 컴퓨팅 기여

  • Kurtz는 여러 학술 컴퓨팅 조직과 표준화 활동에 참여함
    • EDUCOM의 council chairman과 trustee로 활동함
    • President's Advisory Committee의 Pierce Panel에서 활동함
    • NSF와 ARPA 지원 활동 2건의 steering committee에 참여함
    • instructional computing을 다룬 첫 CCUC conference 의장을 맡음
  • BASIC 표준화에서도 핵심 역할을 함
    • BASIC의 ANSI 표준을 만든 American National Standards committee X3J2 구성에 기여했고, 1974~1985년 의장을 맡음
    • BASIC 국제 표준을 다룬 ISO committee SC22/WG8 구성원으로 활동했고, 1987~1993년 convener를 맡음
    • 1994년 ACM Fellow로 선정됨

댓글과 토론

Hacker News 의견들
  • 96세라니, 한 삶을 충실히 사셨네요. RIP
    1986~1990년쯤 옛 Bangalore에서 12살 때 QBASIC을 많이 썼고, 당시 인도에는 Mac이나 Unix, Windows가 아니라 MSDOS뿐이었음
    386에 5.25인치 플로피를 넣고 command.com으로 부팅한 뒤 GWBASIC.EXE로 들어가 SOUND 2000+i, j 같은 코드로 고주파음을 내 가족과 친구들을 괴롭혔고, WHILE WEND 루프에 넣으면 사람들이 끄는 법을 몰라 난리가 났음
    어느 날 갑자기 DOS 대신 MS WINDOWS 3.1이 오고 마우스에 흰 공을 넣어 아이콘을 클릭해야 했으며, GWBASIC은 사라지고 QBASIC과 뱀 게임이 들어왔음
    CGA에서 SCREEN 2, LINE, CIRCLE로 그림을 그리다가 VGA로 업그레이드해 SCREEN 12의 640x480을 쓰며 소리까지 내는 프로그램을 만들었고, BASIC 덕분에 놀라운 어린 시절을 보냈음
    BASIC에서 CLIPPER, FOXPRO로 이어졌고 FOXPRO로 재고 관리 시스템을 만들어 실제 루피를 받았으며, 이후 MFC와 Borland C++를 거쳐 오늘까지 왔지만 모든 시작은 BASIC이었음. 고맙습니다, Dr. Kurtz

    • 나도 비슷하게 286에서 BASIC이 첫 프로그래밍 언어였고, 그에게 많이 빚졌음
      GWBASIC을 콕 집어 말한 게 흥미로운데, 나도 접근할 수 있던 BASIC이 그거였고 미국에서는 그 변종이 그다지 대중적이지 않았던 것 같음
      CLIPPER도 배워 여러 도구와 업무용 앱을 만들었는데, 이것 역시 꽤 지역적으로 퍼진 것처럼 보임
  • 처음 프로그래밍을 배운 언어가 BASIC이었음. D를 설계할 때 BASIC의 문자열 처리가 얼마나 쉽고 자연스러웠는지, C의 문자열 처리가 얼마나 버그투성이 늪인지 떠올렸음
    D에서 문자열을 쉽고 올바르게 만드는 것이 큰 우선순위였고, 역사가 보여주듯 이는 성공적이었다고 봄
    C 코드를 리뷰할 때는 먼저 문자열 처리를 보는데, 거기서 버그를 찾을 확률은 거의 확실함. 반대하는 사람들에게 묻자면, 찾아보지 않고 strncpy()가 0 종료를 어떻게 처리하는지 말할 수 있나요?
    고맙습니다, Thomas Kurtz

    • 으악, 1987년쯤 철없는 젊은 시절 임베디드/로보틱스 시스템용 언어를 고르다가 당신에게 의도치 않게 모욕을 줬을지도 모르겠음
      전화로, 음, C에 대해 물어봤던 것 같은데, 당신은 예의 바르게 답했지만 이를 악문 느낌이었음
      결국 C를 골랐고 그 운영체제는 이 물건에 들어갔음: https://www.youtube.com/watch?v=u8ZEUwwOYxo&t=72s
      아직도 그 통화를 떠올리면 움찔함
    • BASIC은 새 마이크로컴퓨터로 아이디어를 시험해보고 싶은 사람들에게 잡지들이 제공하던 언어였음
      수만 명은 됐을 사람들이 동시에 그 페이지들을 직접 입력했고, 고등학교 타자 수업을 들은 걸 기뻐한 사람들도 있었을 것임
      그러다 “이걸 한번 해보고 싶다”가 되고, 성공하거나 더 강력한 BASIC을 찾다가 PEEK, POKE, 심지어 어셈블러로 이어졌음. 정말 신났고 스스로 뭔가 할 수 있다는 감각이 컸음
      고맙습니다, Thomas Kurtz
    • 최근 작업하는 임베디드 코드에서도 같은 생각을 했음. 4KB ROM과 16KB 정적 RAM의 Z80에서도 BASIC이 문자열을 처리할 수 있었다면, 왜 48MHz ARM에서 C 문자열을 감수해야 하는지 모르겠음
    • HN에서 당신 댓글을 여러 번 읽었는데 D의 창시자인 줄은 몰랐음
    • 최선의 추측을 해보면, strncpy()는 최대 n바이트까지 복사하고 그 안에 널 바이트가 있으면 포함하지만, n번째 바이트가 널이 아니면 널을 추가하지 않음
      그래서 n+1바이트를 할당하든 n번째를 잘라내든 마지막 바이트를 직접 0으로 설정해야 함
  • BASIC의 유산은 대단함. 어릴 때 운 좋게 Atari 800XL을 쓸 수 있었고, 하드웨어에 BASIC ROM이 들어 있어서 BASIC을 배웠음
    컴퓨터를 아는 사람이 주변에 전혀 없는 아이도 설명서 뒤쪽의 예제 프로그램만 보고 익힐 수 있을 만큼 쉬웠음
    Kurtz를 직접 만난 적은 없지만, 컴퓨터와 프로그래밍이 제공한 거의 무한한 창의성에 접근할 수 있게 해준 그 언어에 많이 빚졌음
    대규모·복잡한 작업에 최고의 언어는 아니었지만, 아이가 텍스트 어드벤처를 만들고 화면에 픽셀을 찍기에는 충분했음. INT가 정수가 아니라 인터럽트라는 걸 알게 된 건 그로부터 10년쯤 뒤였음
    십대 때 TI-BASIC으로 수업용 계산기 게임을 만들며 놀았던 것도 개발자로 성장하는 데 좋은 영향을 줬고, 프로그래밍에서 자주 겪는 “같지만 다른” 경험의 첫 사례였음. 운 좋게도 초기 게임 개발 경력으로도 이어졌음
    어제 전까지는 Thomas E. Kurtz라는 이름을 알아보지 못했겠지만, BASIC이라는 말만 들어도 수십 가지 좋은 기억이 떠오름. 아직 어린 시절 쓰던 Atari 800XL을 가지고 있고, 이제 그걸 볼 때마다 그를 떠올릴 것 같음

    • 나도 같음. 다만 Commodore 64 BASIC이었음
  • 기억이 맞다면 1976년에 BASIC 첫 줄을 썼음
    15살이었고 아버지와 무역 박람회에 갔는데 IBM 부스에서 어떤 사람이 달 착륙 게임을 해보라고 권했음. IBM 5100이었음
    화면 위로 스크롤되어 사라진 글자들이 어떻게 되는지 아버지에게 물었고, 기술에 전혀 관심 없던 아버지는 IBM 엔지니어에게 설명해 달라고 했음. 그때 이게 내 길이라는 걸 알았고, 바로 거기서 BASIC 몇 줄을 처음 작성했음
    다음 해에는 Hewlett Packard 부스에서 HP-9825A로 보이는 기계가 플로터로 Lissajous 도형을 그리는 걸 보고 넋을 잃었음
    그다음 해에는 HP-25를 사려고 방학마다 일했고, 그다음 해에는 TRS-80 Model 1 Level II를 얻어 BASIC으로 프로그래밍을 시작했음
    당시엔 아는 게 별로 없어 Editor/Assembler를 사면 화면 해상도가 올라갈 줄 알기도 했음
    이후 Atari ST에서 Megamax C와 GFA BASIC을 쓰고, PC에서 여러 언어를 거쳤음
    늘 놀라운 건 어떤 사람들이 단 며칠, 몇 주, 몇 달 만에 수백만 명이 평생 쓰는 언어를 만들어냈다는 점임. 엄청난 영향력임
    Kurtz 선생님, 최고의 언어를 만든 건 아닐지 몰라도 당신이 만든 것은 젊은 프로그래머 한 세대에게 기쁨과 영감을 줬음. 그 기쁨은 오늘날 다소 희미해진 느낌이지만, Rust로 코딩한다면 예외일지도 모름

    • 1976년에 당신은 내 꿈을 살았네요. 나는 14살에 University of Illinois의 PLATO SYSTEM에서 처음 프로그래밍을 시작했음
      플라스마 화면을 쓰고 터미널이 1000대였으며, 소셜 네트워크와 Microsoft Flight Simulator의 전신인 airfight, 최초의 던전 게임인 pedit5/dnd가 있던 시스템이었음
      잔디를 깎으며 HP-25나 SR-52 계산기, 아니면 IMSAI 8080 같은 내 컴퓨터를 너무 사고 싶어 했음
      나중에는 PLATO에서 포켓 풋볼 게임을 시뮬레이션하게 만들었고, 장난감 인터프리터로 BASIC 프로그램도 썼지만 세션이 끝나면 프로그램을 저장할 방법이 없었음
  • 2010년에 60~70년대의 컴퓨터 유틸리티 비전에 관한 박사논문을 위해 Thomas Kurtz를 자택에서 인터뷰했음
    그 비전은 AT&T나 전력회사처럼 대형 컴퓨터 유틸리티가 전자 서비스를 제공하는 세상을 예상했음
    그는 오래전에 은퇴했지만 여전히 Dartmouth 근처 New Hampshire 언덕에 살고 있었고, 인터뷰 노트는 지금 찾을 수 없지만 매우 친절하고 환대해준 기억이 남아 있음
    그와 John Kemeny가 Dartmouth에서 한 일은 정말 놀라웠음. 그들에게 기술, 즉 시분할과 BASIC은 학생을 교육하고 힘을 실어주며 궁극적으로 사회 전체를 강화하기 위한 수단이었음

    • 괜찮다면 그 박사논문을 읽어보고 싶음
      공유해줘서 고마움. 읽어볼 생각에 기대됨
  • Tom Kurtz와 John Kemeny, 그리고 BASIC은 내 삶도 바꿨음
    1970년에 첫 BASIC 프로그램을 썼고, 이듬해 고등학교부터 학교 컴퓨터실의 Model 33 Teletype 앞에서 교육구의 HP-2000 시분할 시스템을 통해 BASIC을 몇 시간씩 프로그래밍했음
    결국 학부생을 위한 컴퓨터 철학 때문에 Dartmouth에 가기로 했음
    당시에는 어떤 형태의 컴퓨터 접근도 큰일이었고, 프로그래밍을 할 수 있다는 건 대학원이나 취업 지원에서 또래와 뚜렷하게 구분되는 능력이었음
    그래서 1970년대 초반의 그 물결 위를 지금까지 계속 타고 온 느낌이고, 젊은 세대에 숙련자가 폭발적으로 늘었어도 그렇음
    놀랍고도 짧았던 시기였음. 지금 13살이라면 사람을 그렇게 쉽게 앞으로 밀어주는 비슷한 기술이 무엇인지 잘 모르겠음
    첫 프로그램은 이랬음: 10 LET N=5^2.5, 20 PRINT N, 30 END
    답인 55 조금 넘는 값은 계시 같았음. 당시 로그를 몰라서 분수 지수의 의미가 완전히 수수께끼였고, 수학 선생님에게 답의 의미를 물어봐야 했음

    • 학교 수학이 녹슬어서 어떻게 푸는지 물어보려다가 검색해봤음
      “5 to the power of 2.5”를 입력하고 몇 번 클릭하니 검색창에 ‘math solver’가 표시된 이런 결과가 나왔음: https://www.google.com/search?q=5%5E(2.5)
      풀이 단계를 보여주는 버튼도 있고, Quora 답변에는 지수 법칙을 이용한 두 가지 풀이가 나와 있었음
      멋짐. 이제 학교 수학을 다시 복습해야겠음
  • Dr. Kurtz를 위해 검은 추모 바를 달 수 있을까요?
    우리 업계에서 BASIC의 유산은 아무리 강조해도 지나치지 않음. Dartmouth에서의 그 언어와 사명은 혁신적이었음
    특히 개인용 컴퓨터의 여명기에 수많은 신규 컴퓨터 사용자가 처음 접한 프로그래밍 언어였다는 것만으로도 헤아릴 수 없는 2차 효과가 있었음
    향수에 빠져버렸는데, 여기 1964년판 Dartmouth BASIC 레퍼런스가 있음: http://web.archive.org/web/20120716185629/http://www.bitsave...
    정말 매력적이고 당시 분위기를 조금 느끼게 해줌
    특히 21쪽의 “TYPING IS NO SUBSTITUTE FOR THINKING”라는 문구가 마음에 듦

    • 그 매뉴얼은 정말 좋은 발견임. Dr. Kurtz는 마이크로컴퓨터 혁명 훨씬 전부터 컴퓨팅을 대중에게 가져가려는 목표를 세웠다는 점에서 시대를 앞서갔음
      BASIC은 프로그래밍으로 들어가는 쉬운 진입로였고, 나 같은 70~80년대 아이들을 포함해 수많은 사람을 컴퓨팅에 빠지게 했음. 그는 누구 못지않게 미래를 만들었음
    • 나에게도 유산이 컸음. 어릴 때 집의 유일한 TV에 연결한 TI “컴퓨터”에 BASIC 코드를 직접 입력했음
      저장할 디스크 드라이브가 없어서 아무도 전원을 뽑지 않기를 바라며 케이블에 라벨을 붙였음
      몇 년 뒤 닷컴 붐 때 대학 신입생으로 VB를 쓰는 첫 직장을 얻었고, 말 그대로 삶이 바뀌어 부모님보다 더 나은 형편으로 갈 수 있는 길에 올랐음
    • 매뉴얼에서 숫자 0과 문자 O의 기호가 바뀌어 있음
      그래서 F0R X=1 T0 1OO 같은 문장이 나옴
      1964년에는 정말 그렇게 거꾸로였나요?
    • “The legacy of BASIC on our industry can hardly be understated”라고 쓴 건 찾던 표현이 아마 “can hardly be overstated”일 것임
      BASIC의 유산이 엄청나다는 뜻이라면, 누가 뭐라고 해도 과장이 되기 어렵다는 말이 맞음
      “couldn't be understated”라면 아무리 하찮다고 말해도 그게 여전히 사실이라는 뜻이 되어버림. 의도한 건 그게 아니었을 것임
      그러니 emptiestplace의 댓글이 그렇게까지 다운보트될 만하진 않았음
    • 하루 걸리긴 했지만, 다른 스레드에 답글을 쓰는 사이 검은 바로 갱신되어 타이핑하던 몇 분 사이 무슨 일이 있었는지 필사적으로 파악하려 했던 건 꽤 섬뜩했음
  • 내 세대의 많은 프로그래머처럼, 처음 배운 언어는 BASIC이었음
    80~90년대에는 BASIC이 정말 어디에나 있었고, 거의 모든 컴퓨터에 어떤 형태의 BASIC이 딸려 왔음
    6학년 수학 교과서에도 교육용 수학 게임이 BASIC 소스 코드 목록 형태로 실린 부록이 있었음
    안녕히 가세요, 그리고 물고기들에게 감사했습니다, Dr. Kurtz

    • 여러 부팅 디스크에 서로 다른 버전이 들어 있어서 BASIC 여러 변종을 쓰게 됐음
      당장 떠오르는 건 BASIC, BASICA, QBASIC인데, 이제는 변종 간 차이는 기억나지 않음
    • 왜 “thanks.*fish”인가요? 정규식 농담은 진정하고요
      그런 표현이라는 건 알고 읽어본 적도 있지만, Google보다 사람에게 설명을 듣고 싶음
  • 나도 BASIC으로 프로그래밍을 시작했음
    처음은 학교의 Apple ][였고, 그다음 집에서 Vic-20을 갖게 됐음
    Vic-20의 더 멋진 게임들 중 상당수는 잡지에서 엄청난 양의 정수 데이터를 그대로 입력해야 하는 방식이라 별로 교육적이진 않았음
    이후 Rocky Mountain BASIC이 있는 HP 시스템을 쓸 수 있게 됐는데 꽤 훌륭한 시스템이었음
    몇 년 뒤 RM BASIC을 HP/UX로 포팅하는 작업에서 테스터로 일하며 첫 전문 경력을 얻었고, 약 5년 뒤에는 Functional Test Manager라는 생산 테스트 관리 시스템을 만들며 다시 RMB로 돌아왔음
    며칠 전 그때 함께 일했던 사람과 점심도 먹었음. 쓰다 보니 BASIC이 내 경력의 핵심적인 일부였다는 걸 깨닫게 됨. RIP Thomas

  • 흥미로운 점은 Pascal이 조롱받은 이유 중 하나가 원래 시스템의 한계와 시장에 나온 구현체들의 비호환성이었다는 점임
    반면 BASIC은 20년 동안 미니컴퓨터와 마이크로컴퓨터 산업의 중추였다고 볼 수 있는데, 구현과 기능이 정말 제각각이었음
    내가 쓴 BASIC들은 표현식과 핵심 자료형 같은 기본을 제외하면 서로 호환되지 않았고, 그 기본조차 문자열 처리는 다 달랐음

    • 차이는 BASIC이 인터프리터 언어였고, 당시에는 그런 언어가 필연적으로 이식성이 없으며 교육과 소규모 시스템에만 유용하다고 여겨졌다는 데 있음
      실제로 원래 버전의 Pascal로 작성된 대형 소프트웨어도 딱히 없음
      Pascal은 대규모 시스템을 작성할 가능성이 있는 컴파일 언어로 설계됐지만, 그 측면에서 심각한 한계가 있었음
    • BASIC과 Pascal에 대한 기대 수준이 달랐던 것 같음
      BASIC은 교육용 언어였고, 사람들이 밀어붙여 실무 시스템을 만들긴 했지만 여전히 과하게 성장한 교육용 언어였다는 걸 모두가 알고 있었음
      진지한 작업에도 쓰였지만 “장난감” 언어였고, BASIC으로 작성된 진지한 프로그램이 이식 가능하리라고 기대하지 않았음
      Pascal도 교육용 언어로 시작했지만 훨씬 “진지한” 언어로 받아들여졌고, 실제로 BASIC보다 제어 구조가 훨씬 나았음
      하지만 그런 기대치가 세운 기준에는 도달하지 못했고, 이유는 앞서 말한 것과 같음
      BASIC으로 작성된 같은 애플리케이션을 Pascal로도 쓸 수 있었을까? 거의 확실함. 그렇게 하는 편이 더 나았을까? 분명함
      아마 차이는 BASIC이 더 접근하기 쉬웠다는 점임. 10살 아이도 만지작거릴 수 있었지만, Pascal은 대학생이 만지작거리는 쪽에 가까웠음
      그래서 Pascal에는 더 높은 기대가 붙었고, 같은 종류의 한계도 기대를 더 크게 어기는 것으로 보였음