2P by GN⁺ | ★ favorite | 댓글 1개
  • Borland가 1983년 11월 선보인 Turbo Pascal이 2023년 11월 공식적으로 40년을 맞음
  • Turbo Pascal은 Borland의 출발점이 된 제품이자, 업계에서 널리 쓰인 첫 통합 개발 환경(IDE) 으로 평가받음
  • 당시에는 개발 경험과 제품 완성도 면에서 강한 인상을 남겼고, 큰 상업적 성공으로 이어짐
  • Embarcadero는 후속 컴파일러 계열을 계속 개발 중이며, Delphi 12 Athens의 Win32 명령줄 컴파일러는 버전 36.0을 사용함
  • 현재 버전 번호 체계가 첫 Turbo Pascal까지 이어지는 만큼, 이번 40주년은 Delphi 계열의 역사와도 직접 연결됨

1983년 11월에 시작된 Turbo Pascal

  • Turbo Pascal은 Borland가 1983년 11월 출시한 제품임
  • 2023년 11월 기준으로 공식적으로 40년이 됨

Borland와 IDE 역사에서의 위치

  • Turbo Pascal은 업계의 마일스톤 제품으로 평가받음
  • Borland라는 회사를 출발시킨 제품이었음
  • 널리 알려진 첫 IDE로 언급됨
  • 당시 기준으로 뛰어난 제품이었고, 성공 규모도 매우 컸음

더 읽을 자료와 Pascal 맥락

Embarcadero로 이어진 후속 컴파일러

  • Embarcadero는 Turbo Pascal의 후속 컴파일러 계열을 계속 개발 중임
  • 최근 해당 컴파일러의 버전 36을 출시함
  • Delphi 12 Athens의 명령줄 컴파일러에는 Embarcadero Delphi for Win32 compiler version 36.0이라는 버전 표기가 있음
  • 버전 번호 36은 첫 Turbo Pascal까지 거슬러 올라가는 번호 체계임

40주년 기념 Easter Egg

  • Embarcadero는 이번 40주년을 기념해 제품 Easter Egg를 Turbo Pascal 기념일에 헌정함
  • 메시지는 “Happy 40th birthday, Turbo Pascal!”로 마무리됨

댓글과 토론

Hacker News 의견들
  • 좋아하던 컴퓨터 게임 중 하나가 Turbo Pascal로 작성된 ZZT였음. Epic Megagames의 Tim Sweeney가 만든 기묘한 텍스트 모드 게임으로, 퍼즐과 슈팅 등이 섞여 있었고 무료 셰어웨어 버전에도 게임 편집기가 들어 있었으며 ZZT-OOP라는 작은 프로그래밍 언어까지 포함돼 있었음
    ZZT의 원본 소스 코드는 유실됐지만, 몇 년 뒤 Adrian Siekierka가 원래 Pascal 코드를 집요하게 역공학해서 원래 Turbo Pascal 버전으로 컴파일하면 바이트 단위로 동일한 실행 파일이 나오게 만들었음. 놀라운 일임
    https://blog.asie.pl/2020/08/reconstructing-zzt/
    https://news.ycombinator.com/item?id=22609474
    https://benhoyt.com/writings/zzt-in-go/

    • ZZT 때문에 내 컴퓨터에 Turbo Pascal을 깔아 둠
    • 나에게도 ZZT는 정말 특별한 소프트웨어였고, 프로그래밍을 제대로 접하게 해준 계기였음. 예전에는 잡지의 BASIC 코드 목록을 따라 치거나 학교의 BBC Micro로 시시한 걸 해봤지만, 첫 PC에서 ZZT-OOP로 원하는 것을 처음부터 만들며 배웠음
    • ZZT는 Frog Fractions 2의 오버월드에도 영감을 줬음
  • Turbo Pascal이 나를 프로그래밍에 입문시켰음. Borland Pascal 7.0, 나중에는 Delphi 1.0과 2.0 라이선스에 독일 마르크를 수백 마르크씩 쓴 기억이 있고, 결국 돈을 받고 판 첫 “상용” 소프트웨어도 만들게 됨
    DOS 시대에는 Basic을 제외하면 Turbo Pascal이 프로그래밍에 들어가는 가장 쉬운 길이었을 것 같고, Windows 3.1/95에서 Delphi는 GUI 프로그래밍이 이렇게 쉬울 수 있다는 걸 보여준 눈이 번쩍 뜨이는 도구였음
    여러 면에서 그때보다 오히려 후퇴한 느낌도 듦. Turbo Pascal / Delphi 컴파일러는 완전한 GUI 프로그램을 작은 바이너리로 만들어냈는데, 오늘날 비슷한 성능의 소프트웨어는 어떻게 이렇게 몇 자릿수나 더 커졌는지 궁금함

    • Turbo Pascal 초기 버전에서는 프로그램과 소스가 RAM에 들어가기만 하면, 당시 기계에서도 코드를 바꾸고 결과를 보는 과정이 사실상 즉각적이었음. 상호작용도 즉시성을 염두에 두고 설계돼 있었고, 컴파일 오류가 끝없는 보고서 화면을 뿜는 대신 오류가 난 줄로 바로 이동시켜 줬던 걸로 기억함
      원인이 오타라면 수정하고 다시 컴파일하고 실행하는 데 1초면 됐음. 요즘 도구들은 개발자에게 불필요한 동작을 더 요구하는 다른 철학을 가진 경우가 많음
    • 90년대의 “완전한 기능” GUI 프로그램은 오늘날 기준으로는 거의 쓰기 어려울 것임. 다시 말하면, 오늘날의 프레임워크와 프로그램은 90년대 중반의 것과 비슷한 성능이 아니며, 25년 전 앱을 현재 프레임워크 버전으로 다시 컴파일하기만 해도 이론상 유니코드, 국제화, 접근성, 네트워크 지원 같은 것들이 붙게 됨
      예외는 SAP인데, 어찌 된 일인지 90년대 UI의 사용자 적대성과 현대 프로그램의 자원 소모를 결합하는 데 성공한 듯함. 나도 BASIC 다음으로 쓴 언어가 Turbo Pascal이었음
    • 아, 마르크라니 오래됐네. 영국만 그랬는지는 모르겠지만, 말하거나 쓸 때 mark라는 이름을 영어로 번역하지 않고 늘 Deutschmark라고 불렀음
    • 그 실행 파일에는 적어도 큰 코끼리 하나가 빠져 있었음. 바로 유니코드 지원임. 당시 PC RAM에는 아마 들어가지도 않았을 것임
    • Turbo Pascal은 당시 Pascal의 일반적인 방식이던 하향식 절차형 프로그래밍뿐 아니라, Breakout 데모를 통해 객체 지향 프로그래밍도 가르쳐 줬음
  • TP에서 가장 기억나는 점은 모든 함수마다 단순하고 이해하기 쉬운 코드 예제가 있었고, 논리적으로 정리돼 있어서 찾고 쓰기 쉬웠다는 것임. 그래서 BASIC도 겨우 이해하던 십대였지만 인터넷 없이 IDE만으로 Turbo Pascal을 독학할 수 있었음
    요즘 시스템 중에는 여기에 가까운 것조차 없는 경우가 너무 많음. 당시의 단순한 x86 DOS 기반 시스템 특성 덕분인지, 아니면 현대의 빠른 변화 속도와 크로스플랫폼 요구, 복잡성 때문에 그런 것을 만들기 불가능해진 건지 궁금함

    • Processing(P5) 에는 이런 기능이 있었음. IDE에서 텍스트 문자열을 선택해 문서에서 검색할 수 있고, 내장 함수나 상수라면 소프트웨어와 함께 설치된 정적 HTML 페이지가 열려서 인터넷도 서버도 필요 없었음. 오프라인인데도 문서를 탐색할 수 있었고, 요즘 정적 사이트 생성에서 이런 기본 역량이 사라진 듯한 느낌이 듦
      당시 완전한 오프라인 문서를 갖춘 창작 코딩 프레임워크는 Processing이 유일했다고 덧붙이고 싶음. 예를 들어 OpenFrameworks는 지금도 대부분 자동 생성된 빈 껍데기 문서에 가까움
      내 생각에는 이 점이 Processing이 교육 현장에서 대안들보다 우위를 갖게 한 요소 중 하나였음. p5.js가 그 전통을 완전히 이어가지 않고 문서를 읽으려면 온라인에 접속해야 하며, 정적 웹사이트가 아니라 열 때 JavaScript로 텍스트가 렌더링되는 방식이 된 건 꽤 아쉬웠음. 그래도 예제까지 포함해 문서 자체는 완전함
      https://processing.org/
      https://p5js.org/
    • 그건 요즘 사람들이 문서를 쓰지 않기 때문임. 새 언어들은 오픈소스인 경우가 많고, 소스를 읽으라는 문화가 있는데 나는 그게 잘못됐다고 봄
    • 나도 책 없이 Turbo Pascal을 배웠음. 컴퓨터에 딸려 온 BASIC 책은 있었지만, Turbo Pascal은 훨씬 쉬웠음. 픽셀을 그리는 일은 더블 버퍼링된 표시 모드를 고르고 그냥 픽셀을 그리면 될 정도였고, 조이스틱 포트나 마우스 읽기도 그냥 읽으면 됐음
    • Turbo C도 마찬가지였음. 요즘은 예제를 찾으려면 행운을 빌어야 함
    • 나도 같았음. 몇 년 동안 GFA Basic을 쓰다가 Turbo Pascal을 접했는데, 코드 블록과 레코드를 포함한 변수 타입, 함수와 프로시저, 참조까지 있는 BASIC 버전처럼 느껴져서 큰 도움이 됐음. 도움말 문서를 읽고 거의 모든 페이지에 있던 매우 명확하고 유용한 예제를 살펴보는 것만으로 Pascal을 익혔음
      대학에서 인터넷을 알기 몇 년 전이라 학습 자료에 쉽게 접근할 방법이 없었음. 그전에는 C를 몇 번 배우려다 잘 안 됐는데, TP를 배운 뒤에야 Pascal에서 배운 내용을 C로 옮겨갈 수 있었고, 그때도 또 다른 훌륭한 Borland 제품인 C++ Builder의 도움을 받았음
  • 80년대 말에 6809E 어셈블리, 구조적 BASIC 계열, 배치/셸을 지나 처음 배운 “진짜” 프로그래밍 언어가 Turbo Pascal이었음. 90년대 초 컴퓨터공학과에 갔을 때도 1학년 수업을 Borland Pascal로 가르치고 있어서 그 경험이 꽤 유용했음
    몇 년 뒤 Pascal 배경 덕분에 Delphi로 맞춤형 앱을 개발하는 일을 5년 정도 하게 됐고, 이어서 Borland에서 Kylix와 C++Builder IDE를 테스트하는 일로 이어졌음. 좋은 시절이었음
    지금도 Delphi가 그리움. 요즘은 IDE 플러그인이 없으면 치명적인 결점으로 여겨질 정도로 당연해졌지만, 당시에는 자기 언어로 쉽게 확장 가능한 컴포넌트 라이브러리와 코딩 환경이라는 발상이 순수한 마법 같았음. VCL과 IDE 자체를 만지는 게 정말 재미있었음
    Borland가 엔터프라이즈 시장을 추구하며 풀뿌리 개발자들을 뒤로하고, 커뮤니티 채택의 성장을 사실상 죽여버린 건 아쉬움. 적어도 Delphi 7 전후까지는 정말 멋진 구성이었음

    • 우리나라에서는 Delphi가 압도적으로 가장 인기 있는 개발 환경이었음. 세계 대부분이 VB 5로 가는데 우리는 Delphi를 쓰는 묘한 상황이었음. 바깥에서 보기엔 훌륭한 환경으로 보였지만, 어떤 이유에서인지 몇몇 시장에서만 크게 성공한 듯했음
    • 나도 비슷한 길을 걸었지만, 나중에는 일자리 때문에 어쩔 수 없이 Visual Basic 5로 옮겼음. 그래도 GUI 개발에서 Delphi와 견줄 만한 것은 아직 없다고 느낌. VCL은 천재적이었음
  • TP를 처음 접한 건 1993년 겨울, 14살 때 와레즈 BBS에서 불법 복제했을 때였음. 그냥 .BAS 파일을 실행하는 것과 달리 직접 EXE를 컴파일했을 때 느낀 원초적인 힘은 황홀했음
    Renegade BBS를 개조하고 door 프로그램을 만들기 시작했고, 실패하긴 했지만 웜, 트로이 목마, 바이러스를 만들려고도 했음. 이 경험이 내 인생을 바꾸고 지금 기술 분야에 있게 된 경로를 만들었음. 게다가 십대 시절의 일탈적 성향도 이제는 고쳤음. Borland에 많은 빚을 졌음

    • 컴파일러와 인터프리터 같은 걸 제대로 이해하지 못하던 십대에게, TP4로 직접 EXE 파일을 만들 수 있다는 건 초능력을 얻은 느낌이었음. 진짜 프로그래머가 된 것 같았음
      몇 년 뒤 16살 때는 아버지 고객 관리를 위한 작은 앱을 개발하고 실제로 돈을 받았고, 그 돈의 일부로 합법적인 TP6 버전을 샀음. 좋은 시절이었음
    • 좋은 옛날 BBS 시절이 떠오름. 1989년 17살 때 인터럽트 기반 직렬 드라이버 작성법을 배운 뒤 Turbo Pascal용 door 라이브러리를 만들고 셰어웨어로 배포했음. 90년대 중반 BBS 판이 급격히 사라지기 전까지 꽤 많이 쓰였음
    • 나도 같은 시대에 비슷한 경험을 했음. 일탈적인 것들 말고도, 386SX에서 “성능이 중요한” 부분에 인라인 어셈블리를 써가며 그래픽 프로그래밍을 만지작거렸음. 그 경험이 지금 하는 일의 기반을 확실히 마련해 줬음
  • Free Pascal에는 아직도 원래 TP IDE를 닮은 모드가 있음. 다만 그들 스스로 인정하듯 코드가 썩어가고 있고, 아직도 원래 MS-DOS 플랫폼의 낡은 특이점에 크게 의존함
    neovim이나 emacs처럼 터미널에서 일반 편집기로 쓸 수 있으면서, LSP, tree-sitter 파서, 디버그 어댑터 프로토콜 같은 현대 IDE 지향 기능과 통합되는 닮은꼴 버전이 없다는 게 아쉬움. SSH/터미널 연결로 원격 코드를 편집할 때 판을 바꿀 수도 있을 것임

    • https://github.com/magiblot/tvision
    • 10년 조금 전쯤 Turbo Pascal 팬이던 친구 몇 명이 Lazarus로 넘어갔음. Turbo Pascal과 Free Pascal의 논리적인 후계자처럼 보였음. 개인적으로는 Pascal 언어를 그다지 좋아하지 않아서 Emacs에서 C++를 쓰는 쪽으로 옮겼음
  • Turbo Pascal이 경쟁 제품보다 얼마나 빨랐는지는 과장하기 어려움. 너무 빨라서 뭔가 속임수를 쓰는 게 아닌가 싶을 정도였고, 생성된 프로그램도 더 빨랐음
    당시로서는 걸작이었고, 받은 찬사는 충분히 마땅했음

    • 대학 그래픽 수업에서, 그것도 Jack Bresenham이 가르치는 수업에서 새 Borland Turbo C를 과제에 써도 되는지 물어봤음. 데모를 위해 급히 다시 컴파일한 뒤 교실 PC가 80286이 아니었기 때문에, 내 코드가 Turbo Pascal v4로 작성한 다른 사람들 코드의 3분의 1 속도로만 돈다는 걸 알게 됨
      그렇게 성숙한 컴파일러가 1.0 릴리스 컴파일러보다 낫다는 걸 배웠음
    • 맞음. 당시의 느린 프로세서에서도 Turbo Pascal 컴파일러는 코드를 정말 질주하듯 처리했음. 같은 일을 하는 프로그램 하나를 컴파일하는 데도 한참 걸리는 오늘날의 복잡한 빌드 시스템과는 거리가 멂
    • 지금도 Pascal은 빠르게 컴파일되는 언어로 언급됨. Go와 Rust 논쟁에서도 그런 식으로 나오곤 함
      몇 년 전 Windows PC, RAM 512MB 환경에서 FPC 2.0대 버전을 빌드했던 기억이 있는데 5분도 걸리지 않았음
    • 그 후계자인 Delphi도 여전히 그렇음. 백만 줄이 조금 넘는 실제 프로젝트에 관한 글이 있고, 영상도 포함돼 있으며 댓글에서는 Win64 컴파일 시간도 다룸
      https://www.tmssoftware.com/site/blogold.asp?post=759
    • https://prog21.dadgum.com/47.html
  • 어릴 때 친절한 컴퓨터 가게 주인이 MS-DOS 1.25가 돌아가는 PC 반호환기를 좋은 조건에 팔아줬음. 잔디를 백 번쯤 깎고 아이를 봐준 대가 정도였음
    그 주인은 일반 MS-DOS용 Turbo Pascal, 즉 PC BIOS를 가정하지 않는 버전을 8인치 플로피로 팔았고, 내 반호환기가 쓰던 160KB 5.25인치 형식으로 옮겨줬음. 지금 느끼는 만큼 그때도 충분히 고마워했기를 바람. 그게 내 경력을 시작하게 해줬음

    • 그럼 물어볼게. 말하는 PC 반호환기가 대체 뭐였음?
  • 80년대 초 Apple ][+와 //e에서 Apple Pascal, 즉 UCSC p-system Pascal 기반 환경을 쓰다가 DOS의 Turbo Pascal로 옮겼음. Turbo Pascal은 정말 신났음. 매우 빠른 컴파일러, 좋은 피드백, 컬러 편집기, 그리고 이미 익숙하던 WordStar 키 바인딩 덕분에 훌륭한 경험이었음
    프로그램이 충분히 커져서 오버레이 기능을 써야 했던 기억도 남아 있음. DOS에서 프로그램의 서로 다른 부분을 사실상 페이지처럼 불러오게 해주는 기능이었음
    80년대 어느 시점, 아마 후반쯤에 Borland의 훌륭한 홍보대사였던 David Intersimone를 만난 기억도 있음. 그가 우리 대학의 지역 ACM 지부 초청으로 방문했을 때였음

  • 이상하게도 Turbo Pascal은 내가 처음 배운 고급 프로그래밍 언어였고, 그 환경은 Macintosh Plus였음. 나중에야 Turbo Pascal이 PC 쪽 물건에 더 가깝다는 걸 알게 됨
    대학 때 학자금 대출로 첫 Apple 컴퓨터인 Macintosh Plus를 샀고, 우연히 대학 신문 광고란에서 Mac용 Turbo Pascal 사본을 봤음. 어떤 교수가 40달러 정도에 팔고 있어서 바로 샀음
    다행히 매뉴얼은 있었지만 Macintosh 개발 도구는 아주 단순했음. ResEdit는 없었고, 텍스트 파일로 Macintosh 리소스를 만든 뒤 도구에 통과시켜 리소스 포크를 생성하라고 요구하는 이상한 R-Maker 앱이 있었음
    처음 만든 몇몇 앱은 Scientific American의 Computer Recreations 칼럼에 나온 알고리즘을 Turbo Pascal로 구현한 것이었음. 다행히 UI는 거의 필요 없어서 보통 창 하나와 버튼 몇 개면 됐음
    나중에는 훨씬 Mac 중심적인 IDE였던 THINK Pascal을 알게 되어 그쪽으로 넘어갔고, 더 나중에는 THINK C로 뛰어들었음
    그래도 Turbo Pascal은 늘 애정 어린 기억으로 남을 것임. 거칠고 새로운 세계로 들어가던 시절, Turbo Pascal이 내게 문을 열어준 셈이었음