AndreaSmalltalkLecture:QnA 11

From 흡혈양파의 인터넷工房
Revision as of 15:16, 5 December 2013 by Onionmixer (talk | contribs) (안드레아::질문과답-11 페이지 추가)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
질문과 답변-11
:Linux에서 GUI지원은 어떤 언어로?

Linux에서 GUI지원은 어떤 언어로?

안녕하세요? 김찬홍 안드레아입니다. 정남님의 글은 언제나 저를 성찰하게 만들고 새로운 것에 궁금하게 만들고 관찰하게 만드는것 같습니다. 그런 면에서 아래 올려주신 글도 많은 생각을 해 보게 만듭니다.


Smalltalk에 대한 정남님의 의견이 이해가 갑니다. 그 '당위성'. 그걸 찾기가 어렵다는 건 저도 인정합니다. 그래서 저를 더 안타깝게 만듭니다. 다행이 OOT 동에 계신 여러분들은 OOPL에 대해서도 관심들이 있으실테니 Smalltalk에 대해서도 어느 정도는 알고계시겠지만, 다른 사람들은 모르는 사람들이 태반입니다. 그건 바로 Smalltalk를 써야할 당위성이 그만큼 좁다는, 즉 Smallltalk의 활용폭이 그만큼 좁다는 의미이겠지요.


말씀하신 Python, Perl, Tcl 같은 언어는 나름대로의 목적을 가지고 있습니다. 그러데 Smalltalk 는 그러한 목적이 없다는 말씀이라고 알아들어도 되겠지요? 이걸 써도 그만, 안 써도 그만... 저도 그렇게 생각했습니다. 그러나 요즘은 Smalltalk에 대한 몇 가지의 가능성을 생각해 보고 있습니다.


예전에 프로그래밍 언어의 주류는 BASIC이었습니다. 그러다가 구조화 프로그래밍이 보급되면서 파스칼이 주류화 언어가 되었습니다. 성능을 중요시 할 때에는 C가 쓰였고, 객체지향이 도입되면서 C++이 쓰였습니다. 요즘은 또 Java도 많이 쓰지요.


그런데 안타깝게도, Java나 C++은 Smalltalk만큼 덜 객체지향적입니다. Object Arts의 Andy Bwoer가 이런 말을 한 적이 있습니다.


"효율성과 타협해서 생겨난 객체지향 언어들은 __진정으로__ 객체지향적이지 않다. 따라서 이런 언어들을 사용해서 객체지향을 논의한다는 것 자체가 의미 없는 일일지도 모른다."


쉽게 말해서, 순전히 객체지향적으로 생각하지 않은 상태에서 어찌 객체지향을 논하겠느냐는 말이지요. 물론 일리가 있는 말입니다. 그래서 Pascal이 그랬듯이, 저는 Smalltalk가 OOPL을 공부하는 학생들에게 도움이 되었으면 하는 생각이 듭니다. 결국 이제 Smalltalk로 우리 나라에서 할 수 있는 일은 이 정도가 아닐까 합니다. 정남님도 느끼셨겠지만, Smalltalk를 공부하고 나서 C++이나 Java를 보는 시각이 180도 바뀌었습니다. 이를테면 C++에서 virtual 함수가 왜 필요한지에 대해서 시원하게 대답할 수 있는 사람이 적습니다만, Smalltalk처럼 객체지향을 충실하게 표현하고 있는 언어를 공부한 다음에 C++을 공부하게 되면 이것이 아주 쉽게 다가옵니다.


아무튼 Smalltalk가 쓰일 목적을 찾는 것, 그리고 많은 사람들에게 Smalltalk를 알리는 것은 저와 Smalltalk에 관심이 있는 여러분들의 목시라고 생각이 드네요.


아.. 이야기가 너무 다른 쪽으로 갔는데, Linux의 X에서 Smalltalk를 가지고 GUI를 작업할 수는 없는건가요? Squeak를 공부할까도 생각해 봤지만, 아직 Dolphin도 다 못 알고 있는 상태에서 Squeak를 공부할 엄두가... 그리구 리눅스를 깔기도 좀 그래서요. Smalltalk 에는 응용 프로그램 뼈대(framework)가 몇 개 있는데, MVC, MVP 같은 것들이 그것이라고 알고 있습니다. Squeak을 써 보셨다면 어떤 뼈대로 응용 프로그램을 짜 나가는지 궁금합니다. Tcl을 이용해서 GUI를 포장할 수 있다면, Smalltalk를 이용해서도 분명히 할 수 있으리라고 생각하는데요. 아무래도 저는 Windows계열만 쓰다보니 리눅스쪽으로는 꽝이라서요.


정남님께서 써 보신 방법들이 있으면 소개해 주십시오. 그렇다면 저도 많은 공부가 되겠습니다. 그럼... 질문 겸 잡담을 마칩니다.


Notes