저자: 스티븐 피긴스(Stephen Figgins), 역 전순재
필자는 12년 전, 한 친구가 새로 장만한 매킨토시(Macintosh) II에서 하이퍼카드(
Hypercard)를 처음으로 보았다. "이게 뭐야?"라는 필자의 질문에 친구는 "Rolodex(로로덱스)
[1]잖아. 이건 말이지 머리가 있는 Rolodex(로로덱스)야."라고 대답했다. 하이퍼카드(Hypercard)는 데이터베이스 개체 이상을 담을 수 있을 뿐만 아니라 미니-애플리케이션(mini-applications) 역시 담을 수 있었다. 미니 애플리케이션들을 하나로 꿸 수 있어서 나중에 쉽게 웹 페이지와 웹 애플리케이션으로 함께 엮을 수 있었다. 하이퍼카드는 하이퍼텍스트, 하이퍼미디어이자 하이퍼-애플리케이션이었다. 하이퍼카드는 하이퍼 프로그래머를 위한 프로그래밍이었다.
하이퍼카드(Hypercard)의 발명자인 빌 애킨슨(Bill Atkinson)은 한때 하이퍼카드(Hypercard)를 "Software Erector Set"이라고 불렀다. 도스 콘솔(DOS console)에 대해서 프로그래그래밍하는 것보다 매킨토시(Macintosh) GUI에 대하여 프로그래밍을 하는 것이 훨씬 더 어려웠다. 그렇지만 하이퍼카드(Hypercard) 덕분에 프로그래밍이 간단해졌기 때문에 실제로 누구든지 자신만의 프로그램을 만들 수 있게 되었다. 그래픽 인터페이스를 그리는 방법과 스크립트 하는 방법에 대해서 별로 알 필요가 없기 때문이다. 하이퍼카드(Hypercard)를 사용하면 실제로 배포할 수 있는 독립 애플리케이션까지도 만들 수 있었다. 그것이 하이퍼카드(Hypercard)라는 사실을 몰라도 상관없었다. 하이퍼카드 애플리케이션의 최고봉은 하이퍼미디어 어드벤처(hypermedia adventure) 게임인 Myst였다.
애플(Apple)사는 하이퍼카드(Hypercard)와 간헐적으로 관계를 가졌다. 하이퍼카드는 처음에 매킨토시 시스템에 무료로 포함되었고 나중에 독립하여 상업적 제품이 되었으며 그 이후로는 애플(Apple)사와 클라리스(Claris)사 사이를 오갔다. 스티브 잡스(Steve Jobs)가 결국 1997년 하이퍼카드의 개발을 중단시켰다. 버전 2.4.1로 동결되어 있지만, 하이퍼카드는 여전히 애플사로부터 $99에 구입해 사용할 수 있다.
그럼에도 불고하고 하이퍼카드(Hypercard)는 여전히 많은 프로그래머들의 사랑을 받고 있다. 많은 프로그래머들이 하이퍼카드에 첫 사랑을 느꼈고 하이퍼카드에서 최첨단을 처음으로 느꼈기 때문이다. 2001년 6월,
하이퍼카드의 신봉자인 매트 존슨(Matt Johnson)은 애플사에 하이퍼카드(Hypercard)를 오픈 소스로 배포하기를 제안했다. 그러면 하이퍼카드를 가장 사랑하는 사람들의 손에서 개발이 계속될 수 있을 것이다. 존슨(Johnson)의 의견이 발표됨과 동시에 론 스티픈스(Ron Stephens)는 comp.lang.python 뉴스그룹에 "파이썬의 구문과 하이퍼카드 컨테이너 모델
[2]을 사용하여 이벤트 주도형 구이 프로그램
[3]을 지향하는 파이썬 카드(PythonCard)에 대하여" 의견을 표명했다. 더 나아가 그는 파이썬 카드를 실현시킬만한 코딩 능력이 없음을 한탄하였다. 비록 그들의 코딩 능력은 잘 알려져 있지 않지만 여러 사람들 중에 닐 허드슨(Neil Hodgson), 로만 수지(Roman Suzi), 켈빈 알티스(Kevin Altis)가 그 아이디어에 뛰어 들었다. 그리하여 파이썬카드(Pythoncard)가 탄생했다.
파이썬카드(
Pythoncard)는 그냥 프로토타입(prototype)에 불과하다. 전혀 하이퍼카드처럼 보이지 않는다. 기본적으로 파이썬카드는 구이(GUI) 애플리케이션의 요소들을 별개로 분리된 자원 파일에 기술하는 수단이다. 그런 후, 파이썬카드는 그러한 요소들이 하는일이 무엇인지를 기술하고, 그 요소들이 파이썬 프로그램에서 어떻게 서로 상호작동 하는지 기술한다. 따로 분리하여 기술하게 되면 모든 구이(GUI) 정의 사항들을 파이썬 코드와 격리하여 유지할 수 있기 때문에 훨씬 더 읽기 쉽게된다. 여러분은 이렇게 분리하는 작업에 대한 통제를 포기할 수도 있지만 구이를 기술하는데 사용되는 그 자원파일(resource file)은 상당히 귀중한 자료이다. 그 자원파일은 기본적으로 구이 요소들과 매개변수들을 담은 내포된 사전으로서 파이썬 프로그램이 읽어 들인다. 파이썬카드는 여러분의 기술에 근거하여 구이의 구성을 처리하고 그 구이 요소들을 여러분의 프로그램에 함께 엮어 준다.
파이썬카드(Pythoncard)의 프로토타입은 wxWindows를 그의 구이 도구모음으로 사용하고 파이썬 2.1.x과 wxPython 2.3.1을 필요로 한다. 파이썬 카드는 압축된 파일 하나로 얻을 수 있다. 파이썬 카드를 유닉스 시스템에 설치하려면, 패키지에 따라오는 .py 그리고 .txt 파일을 유닉스 포맷으로 변환해야 한다. 내가 dos2unix를 사용하여 파일들을 변환하기 전까지는 파이썬의 eval() 함수가 캐리지 리턴을 연이어 만나면 잘못되었다. 그렇지만 MS 윈도우 시스템이라면 잘 작동할 것이다. 문서는 전혀 없으며 그저 샘플 코드만 있을 뿐이지만 그 샘플 코드들은 대단히 훌륭하다. 여러분은 minimal이라는 샘플코드를 하나 취해 그 샘플코드의 자원(resource) 파일들을 변경하면서 실험해보기 바란다. proof라는 샘플 코드는 현재 통용되어 사용가능한 다수의 구이 요소들을 사용한다.
오픈 소스 프로젝트는 대부분 한 사람의 출현으로 시작된다. 파이썬카드(Pythoncard)는 그룹의 노력이다. 파이썬 카드의 코드토대는 여전히 작고 어떻게 그것들을 조립하여 구현할 것인가도 아직 결정되지 않았다. 만약 여러분이 하이퍼카드를 사랑하는
[4] 프로그래머 중의 한 사람이라면, 또는 그저 초보 딱지를 떼기 위한
[5] 오픈 소스 프로젝트를 찾고 있다면, 이 프로젝트에 공헌할 것을 고려해보는 것도 좋을 것이다.
주석
[1] 카드형식으로 정보를 모아 데이타베이스를 구축하는 프로그램
[2] Hypercard container model
[3] event driven gui programs
[4] with a soft spot for
[5] cut your teeth on