2008년 9월 8일 월요일

Java.next

JtestR 에 관한 글을 쓴 이후에 아래 질문에 대해서 좀 써 봐야겠다고 생각했었다.

  • 왜 Java 프로젝트에서 Ruby 를?

충분하지 않은 간단한 답은 간결함 이랄까? 어쨌든 설명이 수월치 않았다.

그러던 와중에 웹 서핑을 하다가 실마리가 될만한 시리즈를 발견했다. Stuart Halloway 가 쓴 것으로 JVM 을 기반으로 차세대 언어에 관한 글이다. Clojure, Groovy, JRuby, Scala, 이 네개의 언어가 소개된다.

첫번째 글은 차세대 언어들의 Java 와 대비되는 공통점들에 대해서 이야기하고 있다. 이글이 위 질문에 대한 답을 어느정도는 해줄 수 있다고 생각한다.

같은 것을 표현 하는 코드는 (readablity 를 해치지 않는 범위 안에서) 짧을 수록 좋다. Java 는 같은 일을 하는데 군더더기 코드가 많이 필요하다.

또 한가지, 첫번째 글의 결론에 나오는 데로 Java.next 언어들은 Java 에 비해서 좀 더 Domain 에 잘 맞는 DSL(Domain-Specific Languages) 을 개발하기가 용이하다. JtestR 에 포함된 RSpec 이 한가지 예로 BDD(Behavior Driven Development) DSL 이라고 말할 수 있다. 물론, Java 에도 BDD 를 지원하는 페키지들이 개발되어 있기는 하다. 그렇지만, 각각의 예제를 RSpec 의 예제와 비교해 본다면 어떤 것이 읽기 좋은지 금방 결정할 수 있을 것이다.

질문의 범위를 좁혀서 ‘왜 JtestR 을 쓰려고 했나?’ 라는 질문을 해보자. 그러면 ‘테스트 코드만이라도 간결하게 짜고 싶어서’, 그리고 ‘RSpec 을 쓰고 싶어서’ 라는 말이 대부분의 이유를 설명해 주는 대답이 될 것이다.

댓글 없음: