루비 그리고 파이썬

루비

루비언어 자체는 “최소 놀람의 법칙” 덕분인지 그만의 색깔이 없는 것같다. 반면 파이썬은 누가봐도 ‘이건 파이썬이구나’라고 알아차릴 만큼 특징이 뚜렷한 언어였다.

최근에 들어오는 일감들은 무조건 루비온레일즈(ROR)로 진행하고 있다. 그루비를 쓸수있으면 좋겠지만 간단한 어플리케이션은 ROR로 만드는게 빠르다. 몇번 작업을 해보니 꽤 익숙해져서 간단한 넘은 정말 빠르게 만들수 있다.

헌데, 요 며칠 루비 참고서를 다시 들춰보면서, 내가 아직도 이런 종류의 언어들에서는 초보나 다름없다는 것을 깨달았다.

지금 진행중인 프로젝트에서도 루비의 yield를 쓰면 딱 좋은 상황이었는데, (그걸 쓰면 코드가 너무 간단해진다) 이상하게 코드가 길어졌다고 투덜대고 있었다.

그루비에도 비슷한 개념은 있어서, 클로저를 쓰는 척했었지만, 사실 그냥 코드블럭일 뿐이지, 클로저의 특징을 살리지는 못했었다. “저 함수에게 이 코드를 던져준다” 라고 하는 것은 그 동네에서는 기본중의 기본일텐데, 오늘에야 실전에서 (루비로) 그 기능을 처음 써봤다.

그루비 번역하면서 다 공부했던 개념들인데도, 실전에서는 안쓰고 있었다. 실전에서 써보기 전에는 절대로 내것이 되지 않는다. (심지어 책을 번역했을지라도)

객체지향이라는 것을 받아들일 때는 이렇게 까지 힘들지 않았는데, 많이 굳어있었나보다. 아직 루비에는 파고들만한 깊은 광산들이 꽤 많이 있었다. 그루비로 넘어가기 위해 잠시 거쳐갈뿐이라는 생각은 접어야겠다. (잠시 거쳐가기는 힘들겠다.)

그래도 불만은 있는데.. 루비에 대한 불만보다는 레일즈에 대한 불만이다. “설정보다관례”라는 대목인데, 간단한 작업에 있어서는 이보다 더 좋은 개발환경이 없다. 하지만 제대로 쓰려면 레일즈를 소스수준까지 파고들어야한다. MFC나 OWL은 그렇게 해본적이 있지만, 아주 옛날 얘기고, 어쩐지 레일지는 그렇게 할 욕심이 생기지 않았다.

가끔 그 관례를 만든 인간의 머리를 떠올리면서, ‘이런 상황에서는 어떻게 하란거지?’ 라고 고민하다보면, 차라리 서블릿스펙만 외우면 되던 때가 그리워지기도 한다.

파이썬

파이썬은 개인적인 장난감을 만들때 유용하게 쓰긴했지만, 어쩐지 정이 안간다고나 할까. 언더바들도 보기 싫었고.. 뭐 그런 정도의 인상이었다.

인터프리터가 좋고, ARM칩에서도 잘 돌아간다. 웹이라면 DJango가 있다. 인기는 없지만 DJango도 굉장히 깔끔한 프레임웍이다. 파이썬 도사들이 파이썬을 사랑하는데는 다 이유가 있었다.

한동안 루비, 파이썬, 그루비 등등 여기저기 발을 걸쳐놓으니까, 마치 그쪽 언어들의 전문가처럼 느껴지기도 했고. 사람 만나면 할말도 많았던 것 같다. 하지만 당분간은 개인적인 프로그램들도 모두 루비로 만들기로 했다. (그루비 공부도 당분간 중단…)

어쩐지 나는 파이썬으로 코딩하다보면 모듈로 나누는 따위의 작업이 잘 안된다. 그러다보니 시간이 조금만 지나면 유지보수를 할 수가 없게된다.

뭐.. 파이썬 인터프리터자체는 아무리봐도 너무 빠르다. 하지만 나와 언어와의 궁합도 중요하니까. (아니면 이녀석도 루비처럼 시간이 필요한건가…)

그루비

사람들은 여전히 그레일즈 때문에 그루비를 공부하는 것 같다. 하지만, 난 그레일즈는 별로. 스프링/하이버네이트가 몽땅 올라가 있는 것도 싫고, 그런 식의 시도는 레일즈로 충분하지 않을까.

차라리 그루비로 간단하게 서블릿을 만들수 있게 해주면 좋을텐데.. 그러는 쪽이 기존의 서블리(JSP) 엔지니어들이 더 쉽게 전향할 수도 있을 것이고…

그런 녀석을 하나 만들자고 생각은 품고있고, 또 간단하게는 만들어서 써보기도 했는데, 수준이 저급하고, 발전시킬 시간도 없다. 그래도, 그쪽은 계속 마음이 간다. 스칼라니 클로저니 하는 녀석들도 한번쯤은 실전에서 써보고 싶기도 하고.

요즘은 그루비보다는 스칼라랑 클로저가 뜨는 것처럼보이기도 하고, 스칼라가 속도면에서는 훨씬 유리해보이지만, 아직은 자바엔지니어에게 그루비만한 대안도 없는 것 같다. (책도있고, 리소스도 많다. 그리고 자바랑 딱 붙어있다고 할 정도로 비슷하다.)

그래도 한동안은 루비만 파기로 . ^^

======

우짜둥둥. 요 며칠 리스프 인터프리터까지 깔아보면서 (스킴 인터프리터가 자바로 구현되어있고 그거로 petstore까지 구현되어있었다. 뭐 한참전에 찾아 놓은 거긴 하지만…) 이런 저런 신기한 것들을 만져보고 정리하는 느낌으로 포스팅한다. 이상.

P.S. 신기한 것들을 뒤져보는 과정에서 발견한 것들중에..


댓글

calmglow : 안녕하세요. 혹시 Project Zero를 아시는지요? Project Zero는 어떻게 생각하세요? ^^ (2009-11-21 16:03:03)