~cpp Smalltalk 대 몇 가 기 98. 11. 16. 김 mailto:andrea92@mail.hitel.net 글 Smalltalk라는 로그래밍 대 몇 가 기를 담고 다. Dolphin Smalltalk 98 만든 Object Arts라는 가 "Dolphin Smalltalk White pager" 내 가 각 것 몇 가 덧붙 Smalltalk 대 기를 보려 다. Smalltalk 관 국내 료는 매 다. 게 리 나라는 C/C++ 로그래밍 류를 루고 며, Delphi Visual Basic 그 를 더고 다. 그러나 객 로그래밍 결라고 는 Smalltalk 대 료는 보기 렵다. 는 Smalltalk 가격 만만 며, Smalltalk를 교 기관 로 게 기고 기 때문기 다. 그러나 90대 들면부 륭 공개 Smalltalk 많 배되 고 며, 가 료 린 Dolphin Smalltalk 그런 륭 개발 경 다. 미나 는 Smalltalk 관 료를 닿는 대로 러게 개 드릴 것다. 물론 많 드리는 못겠만, 로 리는 료가 러 Smalltalk를 공부는데 나 되 면 는 바램다. 먼 Smalltalk 대 기본 각과 단 개다. 들 Smalltalk 대 가기 들 또 기 다루록 겠다. 그래 Smalltalk 는 배볼 만 가가 다는 것과 (application) 로그램 만드는데 다는 것 려드리고 다. 1. 객, 그리고 Smalltalk ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90대 는 머 무른모(software)는 객(object) 부(component)를 만들 것라는 기가 무다. 과 늘날 많 무른모들 객 부로 만들고 며, COM나 CORBA 같 객 부 는 러 가 기들 개발 되고 다. 80대 반 무 른모 개발 나 다란 되린 "객 "(Object Oriented) 러 다 늘날 는 무른모 모든 되는 러다 되 렸다. 는 떻게 면 무른모를 보다 빨리, 그리고 많 만들 느냐 더 구 따라 무른모를 나 게 .관리 느냐가 문로 대두되며, 객 러다 런 문를 결 는 나 대 다. 늘날 많 되고 는 C++, Java, Object Pascal 모두 로그래밍 객 러다 라고 곘다. 그러나 러 들 기 는 러다 객 러다 덧 결 과를 래, 로 복 명를 만들게 되며, 기 구 로그래밍 관 리들게 객 기법 구 는 각 를 다. 람들 미 고 는 방대로 로그래밍 고, 따라 객 로 만들 로그램 객 답 로그램 되고 만 것다. 그래 는 게 객 관 문를 바라보는 것 떨까 고 각게 되며, 그래 내게 된 것 바로 Smalltalk 다. 1980대 반 모 드러낸 Smalltalk 당 무른모 (software community) 매 객 로그래밍 경로 겨 고, Smalltalk 명는 다른 모든 객 로그래밍 대가 되다. 또 Smalltalk 경 되는 많 개념들 리가 고 는 Delphi나 Visual Basic 되고 는 것로 볼 때, 러 객 경 매 높 가고 다는 것 보는 라 고 겠다. 그럼 구고 Smalltalk는 범 로그래밍 로 되기는 몇 가 벽 가고 다. Dolphin Smalltalk는 러 벽들 내 Smalltalk 나 륭 개발경 될 다는 것 보고 다. 는 단 Dolphin Smalltalk만 라, 리 되고 는 VisualAge for Smalltalk나 Visual Smalltalk 경 똑같 되고 며, 따라 러 벽들 명 결될 다는 것 보다. 가되고 는 Smalltalk 대 벽들는 떤 것 는 보 겠다. 대부 Smalltalk 대 가 는 롯된 것들 많 며, 것 Smalltalk가 범 로그래밍 로 는데 나 다란 벽 되던 것다. 2. Smalltalk는 느리다 ~~~~~~~~~~~~~~~~~~~~~ 1981 8 된 "Smalltalk-80" 로 된 Smalltalk 로 미를 가고 다. Smalltalk-80 대로 돌가려면 대 급 미 능 가 다. 무렇 게 되고 는 로 루 그림(bitmap graphic)과 그래 경GUI), 모든 것 객며 객들 는 , 그리고 기 공 로 관리기 기 (garbage collection) Smalltalk 개된 러 개념 구기 는 그 당로는 매 높 던 것다. 록 러 기능들 개 (PC) 구될 는 겠만, 80대 리 되 PC 돌가는 Smalltalk를 각다면? 명령 나를 는데 몇 는 릴 것 뻔 것다. 그러나 다릅다. 무른모(hardware)는 부 로 발, 리가 PC로 고 는 급 는 과 80대 던 대 능 고 다. 또 무른모 많 발달 같 라 보다 능 보 게 되다. 로 Smalltalk는 486DX 66 돌 게 되며, 리들 고 는 급 는 더 더 능 발 고 다. 대 기 때 (running performance) 더 빠 는 것로는 개발 가 다. 과 같 무 리 구가 복 경 는 당 기능 는 모른모 매 복게 구될 밖 다. 는 '만다'고 각되는 로그램 둘러보면 그 덩가 게 대 볼 다. 따라 러 로그램 만 빠르게 되는가 겠만, 만 빨리 러 로그램 만들 느냐 대 것 당 관 대 되고 다. 러 개발는데 6개 리 고, 는데 3 리는 개발 경과, 개발는데 3개 리고 는 데 6 리는 개발 경 다면, 느 겠까? 대부 경 를 것다. 단 빠른 로그램 개발 끝내 놓 면, 남는 로그램 기 때 문다. Smalltalk가 바로 그러 다. 명 몇 되는 반복 문 (loop) 면 Smalltalk는 리 는 다른 (C, Object Pascal )들보다 느린 것 다. 그러나 것 Smalltalk가 공는 과 각면 되 다고 각다. Java 또 결 C 같 를 내기는 렵다. 그러나 Java가 가고 는 들 많 람들 Java 빠들록 만들고 다. Smalltalk는 때 가를 발다. 객 러다라 는 것 래는 단 문를 결기보다는 떻게 면 게 고 만들 는가 맞기 때문다. C는 두 로 끝날 로그램, C++ 래(class)를 로 다고 , C++ 가 C 보다 못다는 람 것다. 가로, Smalltalk 는 고 개발는데 더 더 많 나냅다. 는 객 러다 따르는 데 는 명 때문 가능 것다. Dolphin Smalltalk Delhi 가 200만개 배 변 떤 값 내는 다. <바글 1> 200만개 배 를 는 Delphi 로그램 ---------------------------------------------------------- var Data: array[1 .. 2000000] of Integer; procedure TForm1.Button1Click(Sender: TObject); var i, Key: Integer; begin // 배 기기 for i := 1 to High( Data ) do Data[i] := i * 2; Key := 6500000; // 는 값. for i := 1 to High( Data ) do begin if Data[i] = key then begin ShowMessage( IntToStr(i) ); Exit; end; end; ShowMessage('못 '); ----------------------------------------------------------- <바글 2> 200만개 배 를 는 Smalltalk 로그램 ----------------------------------------------------------- | data key | "배 기기" data := Array new: 2000000. 1 to: data size do: [ :i | data at: i put: i * 2. ]. key := 6500000. " 는 값" 1 to: data size do: [ :i | (data at: i) = key ifTrue: [ ^MessageBox notify: i displayString ] ]. MessageBox notify: '못 '. ----------------------------------------------------------- 단 벤 , Object Pascal 는 Delphi 경는 는데 0.5 되 데 , Smalltalk 경는 5 경과다. 같 32 기로 되는 객 Smalltalk 단 반복문 능 매 를 보 다. 교를 보고 망는 러 다면, 러 Smalltalk 대 느 때까, 그 망 두기를 권다. 말, Smalltalk는 러 까 각 못던 객 리가 고 며, 것 러 무른모 개발 기를 게 단 것다. 단 때문 Smalltalk 대 공부를 단다면, 러 것 는 기를 는 것라고, 다 말 드립다. (물론 보고 Smalltalk 느린 망 만, Smalltalk 는 과 다른 가 공 못는 Smalltalk만 그 무 다. 명!) 러, 같 극단 경는 로그래밍 극 드문 라 는 것 고로 말 드립다. Smalltalk 때문 망 라면 PowerBuilder를 를 만들 보기를 권다. 또 Smalltalk는 를 개기 많 구가 루고 다는 것 고로 말드립다. 문 Smalltalk는 JAVA 같 문를 고 다고 보면 가 빠를 것다. 3. Smalltalk는 배기 렵다 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 말 린 말다. Smalltalk 명 는 그 말듯 매 며, 따라 C++나 Java 같 명 문법 복 것 극 다. 로 놀라 것 는데, Smalltalk 를 Xerox 구들 들 게 배 고, 게 로그래밍 는 개발 래 목로 고 기 때문 다. 로 Smalltalk 를 공부 두 달 되는 교 5 리 뮬를 다는 Smalltalk 매 뒵다는 것 명 다( 로, 보대). 런 는 다 두 가 기 것로 각됩다. , Smalltalk 는 로 되는 들 매 다르다는 것 다. C++나 Java 같 명 문법 매 복, 그것 는데 당 던 람들 몇 가 되는 개념로 루 Smalltalk 결 문법 기가 려 것다. Smalltalk 는 "객 게 를 내리면, 객는 그 따라 반다"는 개념 대로 문법 나갑다. 다른 럼 문법 규는 것 라, 객 게 보내는 가 Smalltalk 문법 루는 것다. 는 다고 다. (문법 먼 긴 것 라 말 다 보 기 문법 된 것다.) 더 Smalltalk 바글(source code) 보면 다른 들과 그 모 매 다 다.(<바글 1>과 <바글 2>를 교 보) 그러 나 모 다르기 때문 렵게 보 뿐다. 로 Smalltalk 몇 가 개 념 고 나면 바글 매 게 다. Smalltalk가 렵다고 느껴는 가 문는 Smalltalk가 가고 는 방대면 난 래 다발(class library)때문 닐까 다. Smalltalk로 만 로그램 만들기 는 로 는 기능 개 가 는 방대 래 대 떤 래 는 대 꿰고 는데, 것 반로 로그래밍 보가 말 기 든 '벽' 되리는 것다. Smalltalk를 명 "Hello, world!"를 력는 로그램 만들고 그것 려면 느 다. 그러나 Smalltalk Hello World 로그램 만들 다면, 그 다 말 게 게 다. C 경, Hello World 로그램 만 들기는 만, 것만 가고는 C 공부 기능 10% 되 는 내밖 다. Smalltalk Hello World 로그램 만들고 그 것 다면, Smalltalk 80% 복다고 과 닐 것 다. 그런데 래 다발 는 것 려 Smalltalk가 렵다면, 는 C++, Java 그리고 다고 겨는 Delphi나 Visual Basic 공부는 것 렵다 고 봐다. Visual C++를 가고 로그램 려면 MFC(Microsoft Foundation Classes)라는 래 다발 고, Delphi 경는 VCL (Visual Component Library) 공부 며, Java 경는 JavaBeans나 러 가 꾸러미(package) 대 느 다. 막로, Smalltalk 대다. 베 공부 본 라면 대 개발 방법 나 를 것다. Smalltalk는 명령 를 단로 볼 며, 그 결과를 바로 다. 대듯 떤 리 기 때문, 기가 매 다. 규 된 문법 바글 고 그것 (compile) 만 결과를 는 들 , Smalltalk 경는 대로 명령를 는 기 때문 보들 배기가 매 다고 다. 말드렸만, Smalltalk 모는 "린들 게 고그램 는 경 만들"는 것다. (물론 그 '린'가 권 다는 것 다만...) 런 것들 공부면 동 복 명를 공부는 것과, 단 명 대 개발를 는 Smalltalk를 공부는 것 , 과 떤 것 더 려 보까? 그것 독 러 단 맞깁다. 4. Smalltalk 다 ~~~~~~~~~~~~~~~~~~~~~ 는 단게 를 들 다. 공개 Smalltalk 많 나 며, Dolphin Smalltalk 경 과 공개 같 내놓고 다. 또 Dolphin Smalltalk 경는 $50 가격로 구 며, 데베나 로그램 배 기능 꾸러미 로 매되는 경 $219 가격면 구 다. Smalltalk가 까? 5. Smalltalk는 다 ~~~~~~~~~~~~~~~~~~~ Smalltalk라는 가 말 님 명 다. Smalltalk는 다. 는 될 고 동 단 될 다. ANSI X3J20 규된 래 (class hierarchy) 볼 는 다른 객 래 다발보다 더 많 것 담고 다. C++ 경 ANSI 된 래 다발 기본 것들 뿐고 대부 C++를 만들 는 다 독 래 다발 만들 고 며, 따라 는 말 는 것럼 C++를 꾸 는 로 만드는 되고 다(Visual C++ MFC Borland C++ OWL 각 봅다.) ANSI 따 르는 Smalltalk경는 기본로 방대 래 다발 가고 만, 는 미 된 것기 때문 Smalltalk 높는 매가 됩 다. 러 방대 래 다발 됨로 겨나는 단로는 Smalltalk로 로그램 개발 때, Smalltalk 경 가 방대 다는 것 들 다. 물론 로그램 배 때는 개발 단보다는 기로 배가 가능만, Smalltalk 구 기로는 까 다른 로 만들 로그램들보다는 기 공 가 다는 단 가고 다. 그러나 Dolphin Smalltalk 경는 보 구되는 Smalltalk 보다 단 발된 기 로, 는 기 공 매 낮게 며, 는 Dolphin Smalltalk가 다른 Smalltalk 능 보 록 다고 다. 기공 가 다는 가 대, Delphi나 Visual Basic 경 교 보. 기를 놓 Delphi 4.0 경, 10% 며, 는 개발 로그램 면 록 더 더 많 게 됩다. (로 따라는 30% 때 다.) 그러나 Dolphin Smalltalk 경는 기본로 3% 다. 는 미 모든 래 다발과 객들 다 된 는 기 공 다. (보 배되는 Dolphin Smalltalk는 540개 래 45,000개 객가 들다.) 보면 Smalltalk는 다. 그러나 또 다. 것 무 단 될 만 는 것다. 그런데, 말 Smalltalk가 까? 그런 그렇 는 러 Smalltalk를 보면 것다. 6. Smalltalk는 구 다 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 문는 Smalltalk 가 개발된 곳 Xerox 구며, 따라 기 개발 들 내놓는 것보다는 낮 때문 기 것라고 각다. Delphi나 Visual Basic, C++ 로 Windows 로그 램 만들려고 때 매 높 다. 그러나 Smalltalk는 그렇 다고 급 바 다. 또 Smalltalk가 개발될 때 래부 를 는 방법 련되 며, 는 Smalltalk를 로 는 다. 더 Dolphin Smalltalk 경는 WIN32 API를 90% 다. 따라 로그램 만드는데 결 다른 개발 경 뒤떨 다. 7. ~~~~~~~ Smalltalk, Dolphin Smalltalk는 다 다. * Dolphin Smalltalk는 나 로그램 개발 는 공개 Smalltalk를 배다. 는 개발 경 구 가격 때문 망는 것다. * 대로 Smalltalk 개발 경 낮 로그램 개발 록 것다. * ANSI X3J20 Smalltalk 고 며, Smalltalk는 C++ 더 되가고 다. * Dolphin Smalltalk 공는 '3 로그램 모'(three tiered application framework) 로그램 매 게 만들 다. * Dolphin Smalltalk는 Windows 모든 며, Windows 다. 는 WIN32 API 보 며, 따라 WIndows 로그램 개발 게 다. Smalltalk를 공부 보. 게는 러 객 러다 는 구로, 게는 로를 개발 는 구로, Smalltalk 는 러게 몫 것다. 료 려 Dolphin Smalltalk Dolphin Education Center를 내리고 Smalltalk 공부를 보. 그리 고 리 께 공부다. 그래 Smalltalk 료가 더 록 다. 룰로 는 Smalltalk 나 구로 각다. 는 Delphi를 로 는데, Smalltalk를 공부면 델를 바라보는 각 바뀌다. 더 고, 관리기 드를 게 되다. 객 무, 말 객 를 보고 다면, Smalltalk를 꼭 권드립 다. 같 공부다.