ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ruby vs python
    카테고리 없음 2006. 12. 26. 10:07
    python이 한참 잘나가던 시절이 있었다. 아니 아직도 잘 나가고 있긴 하다. ruby on rails가 나오면서 rails때문에 ruby에게 주도권을 빼았겼다는 얘기가 있다. 과연 rails때문이었을까? rails는 그저 결과일 뿐이라는 생각이 든다.

    4~5년쯤 전에 Guido가 python은 functional language가 아니라고 선언을 했다. 많은 python 지지자들은 python이 imperative + objective + functional 의 특성을 가진 multi paradigm language이기 때문에 모여들었었다. 그런데 python의 창시자인 guido는 python 은 functional language가 아니라는 선언을 해 버린 것이다. 그리고 존재하던 functional language의 특성도 제거해 버린다는 계획을 발표 했다.

    functional이 궁극적인 대세라고 믿는 똑똑한 친구들이 많이 있다. 그들이 배신감을 느끼고 ruby 진영으로 갈아타기 시작한다. 거기에서 각종 framework들을 만들고, 그 framework들을 이용해서 만들어진 web application framework인 Ruby on Rails가 조명을 받기 시작한다.

    약간 억지 스러운 면이 있는 시나리오지만 그럴법 하지 않은가? 나는 저 시점에 ruby로 갈아타기 보다는 native tongue인 C로 회귀 하였지만, 아직도 python을 선호한다. 그 이유는, 지저분해 보이는 $, @, # 따위를 language내부에서 사용하지 않기 때문이다. ruby code에서 저 코드들을 보면.. perl 냄새가 난다..

    그런데 guido는 왜 functional language가 아니라는 선언을 했을까? 두가지 이유가 있었으리라고 짐작한다. 한가지는 python을 geek lanuage가 아닌 general language로 변모시켜 좀더 대중화 시키려는 욕심이 있었을 것이고. 또 한가지는 functional 한 특성을 강조할 경우 실행 속도가 떨어질 것을 저어한 듯하다. 하지만, 어차피 scripting language는 geek들 만의 것인데 그들을 버린 셈이 되니 큰 실수를 한 것이다. 그리고, 속도 개선의 한계에 온 듯 하더니 듀얼 코어, 쿼드 코어 쪽으로 진화해 나가기 시작해 버리면서 속도는 다시한번 의미를 가지지 않게 되었다. 결국, 더이상 느리게 구현할 수 없는 vm이라는 별명을 가진 ruby vm의 성능으로도 python의 사용율을 앞지르게 되었다.

    교훈 : 내가 결정하는 것이 아니고 그들이 결정하게 내버려 두어야 한다.

    댓글

Designed by Tistory.