루비 코딩이 재미있는 이유는 무엇보다 ‘루비스러움’을 추구하는데서 오는 만족감에 있다. 깨끗한 코드를 생산했을 때의 쾌감을 아는 개발자라면 ‘루비’가 제격이다.
그렇다면 ‘루비스러운’ 코드가 뭘까? DSL을 주제로 하는 A Firstful of Languages에 올라온 메뉴를 만드는 코드(Example Mini Language: MenuBuilder)를 보면 조금 알 것 같다.
데이터 스트럭처 시간에 만들어보았을 것 같은 트리를 만드는 전형적인 모습의 코드이다. 하지만 반복되는 문자때문에 쉽게 눈에 들어오지 않는다. 루비 공동체가 추구하는 제1원칙 ‘DRY’에 위배된다. 아래 코드가 훨씬 루비스러운 코드이다.
블록 문법을 이용하니 훨씬 간결하게 표현이 되었다. 이런 간결함, 읽기 편함, 아름다움을 추구하는 것이 루비스러움이다. 그리고 위 코드보다 아래같은 코드를 만들었을 때 훨씬 즐겁다.
도에인 언어를 만들겠다고 시작하는 것이 아니라, 루비스러움을 추구하다보니 최종 결과물이 도메인 언어처럼 보이는 것이다.