The departure of the hyper-enthusiasts

Tags:

The departure of the hyper-enthusiasts

자바를 떠난 hyper-enthusiasts 들이 Ruby로 향해 가는데 대해, Bruce Eckel 씨가 아주 불을 지르는군요. ㅎㅎ 결국 (Ruby라는 이름에서 알 수 있듯이) Perl 의 OO 개선 버젼이며, 그 새로운 기능이라는 것들이 – 비록 Zope 같은건 자꾸 바뀌어서 배우기 어렵지만 – Python에 잘 흡수되버리고 있다는군요. 이런 현상은 C++의 standard committee였던 Eckel 씨가 커미티를 관두고 다른 사람들과 Java로 떠난 것과는 비교된다는 것이죠.

마지막 문단이 압권인데,

I think we’ve mostly been hearing from people who have come from Perl and found Ruby to be a “better Perl, with objects that work,” or people who are finally convinced that dynamic languages have merit, and so mix the enthusiasm of the first time dynamic language user (quite a rush, as I remember from my 2-month experience with Perl many years ago) with their experience of Ruby. So far, I’ve heard from the hyper-enthusiasts about Ruby being cool, or that it has begin-end blocks and they don’t like indentation to delineate scope. That kind of thing: “I like this, I don’t like that,” which is fine but not compelling. The person I want to hear from is the core Python expert, someone who knows that language incredibly well, who has decided that Ruby is just so much better that all the mature Python libraries and community expertise doesn’t hold a candle to the value of moving to Ruby. That person would be able to make a compelling, feature-by-feature argument (such an essay is better served as his or her own weblog entry, rather than posting it as a comment here).

앞 부분만 해석하자면, ruby에 열광하는 사람중 대부분은 “펄보다 더 낫고 OO가 추가된 언어”라는 점에 반한 사람들이거나, “이제야” dynamic language가 장점이 있다는 것을 깨달은 사람들이라고 하는군요. ㅋㅋ 본문의 중반에 나오지만, 이러한 dynamic language 또는 simplicity 의 이면에는 efficiency의 저하가 반드시 수반되기 마련이므로 어느정도의 compromise가 필요할 수 밖에 없죠.

Ruby라는 언어 자체를 놓고 보면 이처럼 Python과 같은 언어에 비해 장점이 있다고 말하기 상당히 곤란하고, Rails 가 확실히 Ruby를 이끌어주는 원동력이지만 지금처럼 Python이 Turbogears, Subway 같은 식으로 그 장점을 흡수한다면 Ruby 언어 자체의 장점은 무엇일까? 라는 질문을 던지고 있습니다.

뭐, “그래서 Ruby가 싫으냐?” 라고 제게 물으신다면, 저는 사실 예제 몇개 입력해보다가 이건 순 시간낭비에 차라리 이 시간에 Python 배우면 리눅스에서 여기저기 스크립트에도 써먹을 데가 많고 더 좋지 않나라고 생각했었다는 정도…. 그렇다고 넌 자바가 그렇게 좋아? 라고 제게 물으면 사실 곤란;; 어쨌든 제게는 자바는 생각만 하면 손이 코딩하는 언어이므로. 그러나 사실 요즘은 C++이나 C# 코딩만 하고 살고 있네요;; 익명 클래스 비스므리한게 분명히 C#에 있었는데라며 MSDN 을 뒤지던 게 몇시간 전이니.

그리고 이건 사족 및 잡설..

누군가 제게 ‘Java나 C#으로 코딩하면 후에 다른 사람들이 코드 보기 어려우니 C++로 해라’라는 말을 얼마전 했었습니다. 그렇지만 저로서는 그 말이 별로 이해가 안갑니다. C++에서 템플릿 하나 만들고 그 클래스에대가 operator<< 하나만 오버로딩해도 그거 제대로 알아보는 사람이 몇이나 될런지. STL 코드 약간 썼을 때 제대로 알아보는 사람이 몇이나 될지. 하다못해 #include <iostream> 한다음 using namespce std; 라고 적어놓으면 여기서 using namespace 가 가지는 의미를 아는 사람이 몇이나 될런지. 어떤 클래스를 이 클래스의 friend로 선언 해 놓으면 ‘그건 information hiding의 위반이 아니야?’ 라고 질문을 하지 않을 사람이 몇이나 될런지 궁금함. C#, Java는 몰라도 C++을 할 줄 안다고 말하는 사람중에 (전 할줄 모름), template 사용할 때 class, template, typename의 차이를 다 구분할 수 있는 사람은 정말 손에 꼽을 거라고 장담함. (사실 언어자체가 드러워서 그런 것들을 외우는 것 조차도 짜증나지만.)

C++은 사실 더럽게 복잡하고 – 물론 덕분에 강력하지만 – 자바와 C#은 이 언어를 혁신적으로 분명하게 개선 했죠. 하지만 자바는 현재 많이 쓰이는 웹 애플리케이션 분야에서 결코 쉽지 않고, C#은 MS란 이유때문에 사람들이 싫어하는데다가, 오픈이래봤자 모노 프로젝트에 구현안된 코드는 한두개가 아니니 결국은 다 따지고 보면 모두가 엉망진창. Ruby는 잘나봐야 아직은 niche market 에 써야된다느니 어쩌니 하는게 일반론이고, ‘우리가 데스크탑 애플리케이션을 루비로 짤 수 있을까요?’ 물어보면 결국 한다는 말이 ‘가능한 일이다’ 정도이니, 결국은 모든 언어가 엉망진창 인건가…. (헛소리 되버렸군요; 죄송.)

어쨌든 RoR이 프로그래밍을 위한 프로그래밍이 아니라 programming for the problem at hand 의 본질로의 회귀를 가르쳐줬다는 것은 일대 혁명임..

아무래도 이 글 돌 많이 맞겠음;; 어제 잠을 두시간 밖에 못자서 그러니 이해해 주시기를.

Comments

2 responses to “The departure of the hyper-enthusiasts”

  1. CN Avatar

    class, template, typename의 차이는 class, typename의 차이라고 해야 하지 않을까요? 일반적으로 template에서 X에 들어가는 것이 class와 typename 둘 중의 하나이니 이 둘의 차이점을 설명해보라는 것이 더 적합할 것 같아서요. (설마 이중 템플릿이나 next C++ standards에 맞춘 설명이실려나요 …)

    개인적으로는 C++의 friend 기능은 무의미한 기능이라고 생각합니다. 대부분의 경우 적절한 위임을 통해서 결합도를 더 낮출 수 있다고 생각합니다.

  2. The departure of the hyper-enthusiasts

    Thinking in Java의 저자로 알고 있던 Bruce Eckel이 쓴 글이다. 논란의 여지도 많지만 그만큼 재&#481…

Leave a Reply

Your email address will not be published. Required fields are marked *