~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를 꼭 권드립
다. 같 공부다.