티스토리 뷰

Eclipse 3.5 GalileoNetBeans 6.7가 릴리즈를 앞둔 6월의 어느 일요일 오후. 문득, Turbo Pascal을 처음 접했던 때가 떠오른다. 상념은 꼬리에 꼬리를 물고...

RUN과 CALL-151

8비트 애플은 말그대로 "개발자의, 개발자를 위한, 개발자에 의한 PC"였다(PC의 P는 Personal보다는 Programmer가 아니었을까?). 컴퓨터의 전원을 켜면 바로 베이직 인터프리터가 실행되서 BASIC 코드를 작성하고 실행(RUN)할 수 있었고, "CALL -151"이라는 명령을 치면 기계어 모드로 들어가서 어셈블리어/기계어 프로그래밍도 할 수 있었다((유명한 유겸아부지의 블로그 제목이 여기에서 나온거다). 이 때만 해도 IDE는 고사하고 풀스크린 에디터나 디버거의 존재도 몰랐다. 번들되어 나오는 Macro Assembler를 쓰다가, Lisa Assembler의 속도에 환호하고, Merlin Assembler에 감탄하던 그런 시절이었다.


시대를 너무 앞서간 USCD Pascal 그리고 ...

큰형兄의 책꽂이에 꽂힌 책(물론 원서였다-,.-)을 통해 UCSD Pascal을 접하게 되었다. 구질구질한 베이직과 단순무식한 6502 어셈블리에 지루함을 느낄 무렵, 파스칼의 우아함은 너무나도 크게 다가왔다(그 영향일까? 지금도 나는 파스칼이 가장 우아한 언어라는 깨고 싶지 않은 환상을 품고 산다). 문제는 UCSD Pascal로 만든 프로그램을 실행하기 위해서는 UCSD-P System(요즘 자바나 .NET과 비슷하다고 보면 된다)이 필요하다는 건데, 그게... 배보다 배꼽이 (한참) 컸다(스몰톡과 비슷한 딜레마?)

(맨 윗 줄에 나와있는 명령 리스트를 보고 L, E, R, ...등을 치면 해당 명령이 수행된다. 이 화면은 Filer라고 불리우는 UCSD-P 시스템의 파일 관리자 화면이다)

마소(당시에는마이크로소프스社가 아니라 월간 마이크로소프트웨어를 이렇게 줄여서 불렀다)에 소개된 Whitesmith C와 BDS C 등을 힘들게 구해(물론 불법 복제였지만, 지방에 사는 중딩에겐 이것도 쉬운 일이 아니었다) 이것 저것 삽질을 했었는데, 컴파일하고 링킹하는데만 몇시간씩 걸리곤 했다(그 영향일까? 지금도 나는 C가 조잡한 언어라는 말도 안되는 선입견을 갖고 있다).

(시간적인 순서가 오락가락하긴 하는데)마소의 특집 기사로 소개된 ASBEC(Apple Structured Basic Environment and Compiler?)이라는 프로그램이 아직도 기억에 남는다. 구조적인 프로그래밍이 가능하도록 구문을 확장한 베이직이었는데, 그것보다 더 쇼킹했던것은 그 개발환경이었다! 풀스크린 에디터와 통합된 컴파일러! 그것도 울나라 사람이 만든!

그리고...

Turbo Pascal의 등장

처음 접한 Turbo Pascal은(3.0이었다고 기억한다) 8비트 애플에 소프트카드(마이크로소프트에서 만든)라는 확장 카드를 꽂고 CP/M이라는 OS로 부팅해야 사용할 수 있는 소프트웨어였다. 지금은 구글을 통해서도 스크린샷도 찾기 어려운데... CP/M의 커맨드 프롬프트에서 TURBO.COM을 실행하면 풀스크린 메뉴를(화면 가득 메뉴를 표시하면 각 메뉴 앞에 표시된 선택 키를 직접 눌러 메뉴를 선택하는 방식. 예를 들어 E.Edit 라고 되어 있으면 E 키를 누르면 편집이 되는 식이다) 통해서 소스를 편집하고, 컴파일하고, 실행할 수 있었다.

E키를 눌러 편집기로 들어가서 Ctrl+E,Ctrl+S,Ctrl+D,Ctrl+X 를 화살표키 대신 사용하고(8비트 애플에는 화살표키가 없었다), Ctrl+K,B, Ctrl+K,K로 블럭을 지정하는... 편집이 끝나면 Ctrl+K,D로 다시 풀스크린 메뉴로 나와서 C키를 눌러 컴파일하고, R키를 눌러 실행한다. 아직까지 풀스크린 디버거는 나오기 전이었지만, 이것만으로도 충분히(!) 감동적이었다.

IDE는 익히 알려진 것처럼 Integrated Development Environment, 우리말로 직역하면 통합된 개발 환경이다. IDE는 기본적으로:
  • 편집기
  • 컴파일러 / 인터프리터
  • 디버거
를 하나의 틀 안에 포함하고 있는 통합 소프트웨어다. 그런 면에서 보면 UCSD Pascal이 내가 접한 최초의 IDE였지만, 워낙 특이한 시스템이니 논외로 치면, Turbo Pascal은 실제로 내가 사용한 최초의 IDE가 아닐까 싶다.

Borland와 "Turbo"의 전성 시대

IBM-PC가 등장하고 (지금의 것과 거의 유사한)풀 다운 메뉴를 갖춘 Turbo Pascal도 4.0이 등장했다(Turbo Pascal 4.0으로 4.0의 그것과 똑같은 풀다운 메뉴와 팝업 윈도를 구현하기 위해 삽질하던 기억은 지금도 생생하다.) Turbo Pascal은 그 후 디버거와 프로파일러를 포함한 5.0, Object Pascal을 지원하기 시작한 5.5를 거쳐 Delphi와 Borland Pascal로 이어진다.


(Pull Down Menu, Overlapped Popup Window, Split Window 등의 혁신적인 UI를 선보인 Turbo Pascal 4.0)

Borland는 기세를 몰아 Turbo C, Turbo Assembler, 그리고 Turbo C++까지 내놓으면서 80년 후반에서 90년대 초반에 걸쳐 IDE 시장을 석권했다. GW-BASIC, Macro Assembler, Microsoft C 같은 전통적인 개발 툴로 나름대로 선전하던 Microsoft도 Quick Basic(요즘도 윈도에 기본으로 포함되어 나오는 QBASIC이 이 녀석의 후손이다), Quick C 등의 IDE 제품을 내놓았지만 Borland의 아성을 무너뜨리기엔 역부족이었다.

(Turbo 시리즈의 친숙한 블루 스크린)
그러나...

Microsoft와 "Visual"의 전성 시대

윈도 3.0의 등장과 함께 순식간에 상황이 역전되었다. Borland가 도스와 윈도 사이에서 갈등하는 사이(Turbo시리즈는 DOS용, Borland 시리즈는 윈도용), 공전의 히트작인 Visual Basic과 Visual C++이 등장했다. Borland도 뒤늦게 Delphi로 반격을 시도했지만 이미 전세는 기울어진 뒤였다. Visual Basic이 Quick Basic의 제대로된 Windows 버전이었던 반면, 볼랜드의 (Delphi를 제외한) 윈도용 제품들은 어색하기만 했다.

Turbo C 2.0과 Turbo C++ 1.0을 쓰다가 군대갔다 와서... 그나마 익숙한 Borland C++로 어색한 윈도 프로그래밍을 해보겠다고 친구들과 삽질하던 시절. 학교 연구실에서 복사해온 Visual C++을 깔고 처음 내뱉은 말...
"도대체 어디가 비주얼 하다는 거야?"

이후로도 한참 동안 두 회사의 치열한 공방전이 계속되었지만 Microsoft의 "홈그라운드"인 Windows에서 벌어지는 전쟁에서 Borland가 이길 가능성은 희박했다. Windows의 새 버전이 나올때 마다, 그리고 DirectX의 새 버전이 나올때 마다, Borland는 점점 힘을 잃어갔고, Visual Studio는 아주 조금씩 Visual 해져갔다.

(오랫동안 내 밥줄이었던 Microsoft의 역작(!) Visual Studio 6.0)

문득, 오라클의 Power Object인가 하는 툴(기억이 가물가물)을 보면서 그 비주얼함에 감동먹었던 기억이 난다. 한편, 당대 최고의 밥줄이던 Power Builder의 그 Non-비주얼함에 감사했던 기억도 새록새록... 비주얼했다면 Power Builder가 자랑하는 CPM 방법론(Copy-and-Paste-and-Modify)가 쉽지 않았을 테니...-O-

어느새, 아무도 IDE라는 말을 쓰지 않게 되었다. 특별한 수식어가 붙지 않는 모든 개발툴은 당연히 IDE이며, IDE가 아닌 개발툴은 SDK라는 표현을 쓰기 시작했다.

IDE의 귀환 - "Eclipse"의 전성 시대

Microsoft가 자아도취에 빠져 주춤한 사이에 슬며시(그러나 강력한 임팩트와 함께) 등장한 Java가 주류 언어로 급부상하면서 Java를 위한 IDE들이 앞다투어 등장했다. 그러나 Borland의 JBuilder, Symantec의 Visual Cafe, 그리고 Microsoft의 Visual J++ 등의 1세대 Java IDE들은 기존 IDE를 답습한 에디터/컴파일러/디버거 그리고 GUI Designer를 하나로 뭉쳐놓았을 뿐, 자바와 같은 동적인 언어(물론 자바보다 훨씬 더 다이나믹한 언어가 많다는 건 알지만... C/C++에 비해 상대적으로)의 특성을 툴에 녹여내지 못했다. IBM의 VisualAge for Java와 Sun의 NetBeans는 너무나 앞서간 개념들로 버림 받았다(...고 생각했었다).

자바 개발자들이 EditPlus와 Ant 스크립트를 이용해서 모든 것을 해결하는데 익숙해질 무렵... Eclipse가 혜성처럼(어쩌면 시나브로) 등장했다. 갑자기 등장한 것 처럼 보이지만 Eclipse는 오래 전에 SmallTalk으로 개발했던 VIsualAge 시리즈를 자바로 재작성한 것이다. 10년 전의 설계가 이제서야 사람들에게 인정받기 시작한 것일까? 아니면 하드웨어가 자바로 만든 개발 툴을 수용할 수 있을 정도로 강력해진 덕분일까? Eclipse는 그 이름처럼 Java를 넘어 (거의) 모든 IDE 들을 삼키기 시작했다. 시장의 요구에 맞춰 무리하게 (어설픈) IDE를 만들 수 밖에 없던 플랫폼 SDK 벤더들, 그리고 아무 벤더도 자신들의 언어를 위한 IDE를 만들어주지 않는 군소 언어 사용자은 Eclipse에게 기대는 편이 훨씬 편한 길이었다.

(이클립스는 운영체제 고유의 네이티브 L&F를 제공하는 SWT 덕분에 더욱 각광받았다)

Eclipse가 무소불위의 전성시대를 구가할 무렵, NetBeans는 아무런 관심도 받지 못한채Forte for Java, Sun Creator Studio 따위의 어처구니없는 이름을 거쳐, Matisse 다시 NetBeans로 돌아왔다. 그리고 점점 비대해지는(그리고 점점 더 먼 우주로 날아가고 있는) Eclipse의 빈틈을 파고들며 외로운 추격전을 벌이고 있었다. Sun이 Oracle로 인수되면서 NetBeans가 희생양이 될것인지... (JBuilder가 그랬던 것처럼) Oracle JDeveloper라는 이름으로 살아남을 것인지는... 조금 두고보면 알 수 있을 듯...

(NetBeans는 Swing의 어설픈 GUI때문에 버림받았지만, 아이러니하게도 Swing GUI 편집기인 Mitisse 덕분에 재조명 받게 되었다)

...

Eclipse 3.5 RC 설치하고 간단히 리뷰를 남기려고 왔다가 옆길로 (너무 멀리) 샜다. -,.-;;;;;

덧. 이 글은 어디까지나 주관적인 경험과 취향에 근거하여 작성한 것으므로, 정치적인 태클(예를 들어 emacs 얘기가 왜 없냐~든가)은 정중히 사절하는 바입니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함