컴퓨터

MacRuby

실마리 2008. 2. 29. 16:53

Apple의 ruby 홈페이지에 새로운 프로젝트가 등록되었습니다. 이름하여 MacRuby.

대충 읽어보니 현재의 ruby + RubyCocoa가 가지는 무거움을 극복하기 위해 아예 ruby 인터프리터와 object-C를 합쳐버린듯 합니다. 기반을 둔 버젼은 개발중인 ruby의 차기버전 1.9 (소위 YARV) 입니다. Ruby의 이전 버젼에 비해 속도가 상당히 증가되었으며 그 외에도 RubyCocoa와 비교하여 다음과 같은 차이점들이 있습니다.

  • Object는 NSObject, string은 NSString, array는 NSArray, hash는 NSDictionary와 같이 ruby의 모양을 가지고 있지만 내부적으로는 objective-C 클래스를 기반으로 사용합니다. 따라서 이전 RubyCocoa와 같이 ruby의 string을 NSString으로 변환시켜 보내야 할 필요없이 바로 사용할수 있게 되었습니다.
  • Objective C 함수의 이름이 RubyCocoa의 ’_’를 사용하여 연결하는 방식에서 hash keyword를 사용하는 방식으로 바뀌었습니다. 예를 들어 [person setFirstName:first lastName:last]는 person.setFirstName(first, lastName:last)와 같이 호출됩니다.
  • Cocoa의 프레임워크를 사용하는 framework란 keyword가 새로 도입되었습니다.
  • Garbage collector를 ruby의 것을 사용하지 않고 objective-C 2.0에 새로 도입된 자체의 것을 사용한다고 합니다.

Ruby와 objective-C 모두 smalltalk의 영향을 많이 받은 언어라서 가능한 일이겠죠. Performance를 생각하면 좋은 방법같기는 한데 ruby에 gem으로 설치되는 것이 아니라 ruby를 내부적으로 변형한 것이라서 ruby 자체의 버젼과 동떨어질 가능성이 있을것 같기도 합니다.