프로그래밍 언어 개발에 관심 있는 사람들의 모임입니다.
|
2008-03-24 11:57:55
|
몇년 전부터 Ajax 붐과 함께 다양한 JavaScript 프레임워크들이 쏟아져나오고 있는데요. 저는 몇년 전에 Prototype부터 접해서, 한동안 그것만 쓰다가, 약 2년 전부터는 MooTools만 사용하고 있습니다. 1.1 이전 버전까지의 MooTools 디자인은 굉장히 마음에 들었었는데, 최근의 1.2 베타를 보고 느낀 실망이 이만저만이 아닙니다. Prototype 대신 MooTools를 선택했던 것은 그 강력한 애니메이션 처리 부분이 아니라, 나름대로 제 생각에 MooTools의 디자인이 더 맞다고 생각해서였거든요. 클래스를 만들거나 상속 처리를 하는 방식 따위에서요. 아, 요즘에는 jQuery의 인기도 굉장히 좋던데, 저는 그 DSEL 자체는 칭찬해주고 싶지만 제가 너무 까칠한건지, 클래스라는 틀 안에서 어느 정도 정규화가 되어있지 않으면 지저분하다고 여겨집니다. 사실 본질적으로 재사용성이나 인터페이스 등에 있어서는 jQuery의 방식으로도 충분히 제 기능을 하는 것 같은데; MooTools에서 마음에 안 드는 부분만 수정해서 포크해버릴까 하는 생각도 들고. 써놓고 보니 주절주절 재미도 없고~ 감동도 없고~ ㅋㅋㅋ 젠장 |
트랙백 주소: http://langdev.net/post/trackback/23
대략 전국시대… 과도기… ecmascript4에서 패키지, 네임스페이스 도입된다카더라…뉴스.
저는 되도록이면 DOM을 그냥 쓰는 걸 좋아합니다. 프레임워크는 너무 두껍다는 느낌이 강해서요. (무겁다는 것과는 좀 다른 얘기입니다.)
브라우저 간 차이만 살짝 덮어주는 녀석이 있으면 좋겠어요.
저는 DOM 인터페이스가 매우 지저분하고 불친절하다고 느낍니다. 원하는 것을 하기 위해 굉장히 많은 코드를 작성해야 합니다. 그런 의미에서
$,$$같은 헬퍼들,new Element로 엘리먼트 생성하는 구문 따위는 굉장히 의미있는 것들이라고 생각합니다.저도 비슷한 이유로 DOM을 보통 그냥 씁니다. 아 물론
$같은 건 좋지만요.저는 MooTools가 여전히 마음에 들던데 MooTools의 어떤 부분이 마음에 들지 않는지도 밝혀주시면 좋겠습니다.
새로 도입된
get/set메서드도 구리고, 바뀐 상속 문법도 자연스럽지 않습니다. Traits 패턴도 부족하게 구현했습니다.Remote객체들이 상속 관계를 가지면서도 다형성을 깨뜨리는 인터페이스를 하고 있습니다. 즉, 인터페이스 상속이 아닌 구현 상속만 이곳저곳에서 빈번하게 합니다.음 1.2는 안 써봐서 잘 모르겠고, chain 패턴이 fx 계열에만 적용된다는 점이 전 좀 아쉬웠습니다.;;
chain패턴은Fx계열 같은 애니메이션이나, Ajax 같은 비동기적인 코드에서 동기적인 실행 순서를 보장하기 위한 것이니, 그 둘에서만 사용 가능하면 되지 않나요?음, 정확히 기억은 안 나는데 저는 그 외의 것에도 쓰려고 시도를 했었습니다. 단순히 애니메이션만 하는 코드가 아니라 애니메이션과 다른 코드가 함께 같이 들어갔던 경우였던 것 같네요. (mootools의 chain 패턴을 쓸 때 반드시 리턴값에 특정 타입의 오브젝트가 들어있어야 했던 걸로 기억합니다. 전 다른 타입의 오브젝트를 리턴하는 코드를 짜고 싶었거든요.)
아참, 그리고 개인적으로 mootools가 다른 건 다 맘에 들었는데 ajax 쪽에서 에러 핸들링이 세밀하게(?) 구현되어 있지 않다는 점이 조금 아쉽더군요.
시험삼아 jQuery 써보는데, 실용적이라는 느낌이 강하군요. 플러그인도 많이 있고요.