2011년 2월 6일 일요일

seaside in smalltalk

smalltalk란 언어는 대학교때 프로그래밍언어 시간에 잠깐 다룰 뿐, 대부분 실전에서 잘 쓰이지 않는 언어였다. ( 정말? )
아뭏든, 주류 언어는 분명히 아니다.
ADA와 함께 OOP를 설명할 때 자주 등장하는 언어이다.

seaside란 프레임워크를 최근에 알게 되었는데,
웹 프로그래밍에 입문하면서 답답했던 것을 이 프레임워크가 풀어내고 있었다.
바로, 유저 컨텍스트에 기반한 플로우 콘트롤이다.
( http://seaside.st/about/examples/task?_k=8o4aoROk )
처음 웹 프로그래밍에 접했을때, 프로세스를 모델링하면서, 있어야 한다고 생각했던 것이 없어서 당황했는데, 바로 이 플로우 콘트롤 매니져 개념이었다.

Essential complexity 와 Accidental complexity란 말이 있다.
전자는, "복잡하고 지저분한 어려운 문제를 풀려고 할 때"
후자는,"왜 이렇게 간단한 문제를 어렵게 풀고있는 거지?"의 상황이다.

그런데, 전자는 결국 해결될 문제가 아닌데, 후자는 풀릴 수 있을 것 같다. 그런데, 이런 것이 반복되면 개발 속도에 큰 지장을 주는 문제라고 생각한다. 아마도 최근 ruby on rails가 각광받는 이유가 바로 후자의 문제를 잘 풀어주고 있기 때문이리라.
seaside의 플로우 콘트롤이 해결하고 있는 듯 해서 매우 큰 관심이 간다.

비록 smalltalk/seaside는 커뮤니티에서도 큰 인기를 못하지만,

다른 프레임워크에서도 이러한 플로우 콘트롤이 지원되지 않는 한, 존재가치가 분명히 있다고 생각했다.  다른 프레임워크에서 이러한 구조를 지원하는지는 아직 확인 못했다.

그렇다면, smalltalk/seaside를 메인 언어 및 프레임워크로 쓸 수 있느냐?
그 문제에 대한 해답을 아직 못 찾은 듯 하다.
현실적으로 인기를 못 얻는 탓이 그 때문인 것 같다.
다음 링크에, 경험자의 이야기가 있다. 그 사람 이야기는 모든 프로젝트에 사용 가능하고, 크고, 복잡한 어플리케이션에 오히려 적합하다고 말한다.
( http://unhandledexpression.com/2011/02/04/smalltalk-for-engineers/ )

도움이 되셨다면, 광고 클릭을 ㅎㅎ ^^