2010-08-22 2 views
5

웹 응용 프로그램의 경우 Ruby on Rails를 사용합니다. 이제 Ruby로 데스크톱 애플리케이션을 코딩 할 수 있는지 알아 보겠습니다.MacRuby + IronRuby 또는 JRuby for Desktop Applications?

내가 선택할 수있는 것이 궁금합니다.

내가 보는 방식은 MacRuby + IronRuby 대 JRuby입니다.

전자는 Mac 및 Windows 용 데스크톱 응용 프로그램을 제공하지만 후자는 두 가지 모두를 가질 수 있지만 하나의 도구 만 배우게합니다.

  • 후자를 사용하는 강력한 인수가 있습니까?

  • JRuby Desktop 응용 프로그램은 MacRuby + IronRuby 데스크탑 응용 프로그램과 같은 기본 (또는 거의 기본)으로 사용할 수 있습니까?

  • 각 솔루션에 대한 장단점은 무엇입니까?

매우 새로운 것 너무 데스크톱 개발. 생각과 경험을 공유하십시오!

답변

3

MacRuby은 기본 Apple Objective C 스택을 사용합니다.
장점 : 클래스 라이브러리는 기본적으로 Objective C API 클래스의 래퍼입니다. 빠른 네이티브 응용 프로그램을 사용할 수 있습니다.
단점 : Mac에서만 실행됩니다. 그들은 iPad 나 iPhone으로 이식 할 수 없습니다 (Ruby 솔루션은 없습니다).

IronRuby은 기본 Windows .NET 프레임 워크를 사용합니다.
장점 : 기본 WinForms를 사용하여 풍부한 네이티브 응용 프로그램을 만듭니다. .NET 라이브러리는 전체 .NET 에코 시스템에 액세스 할 수 있습니다.
단점 : Windows에서만 실행됩니다.

JRuby은 Java 추상화 레이어 (JVM)를 사용합니다.
장점 : 여러 GUI 라이브러리를 사용할 수 있습니다. 가장 보편적 인 것은 SWT와 스윙입니다. SWT는 기본 위젯을 사용하며 더 빠르고 더 원시적입니다. Swing은 순전히 Java (에뮬레이트 된 위젯)이며 더 휴대 가능합니다. SWT와 Swing을 추상화 한 Ruby 라이브러리가 추가되어 Ruby를 더욱 친숙하게 만듭니다. 예를 들어 Profligacy에서 Swing을 찾습니다.
단점 : 레이어 위의 레이어 위에있는 레이어. 스윙과 SWT는 매우 성숙하지만 그 위의 루비 레이어는 그렇게 적습니다.

또 다른 옵션이 있습니다.
Qt 라이브러리가있는 Ruby입니다.
Qt는 크로스 플랫폼이며 기본 위젯을 사용하며 C++로 작성되었습니다. 그것은 상당히 빠르지 만 도서관은 복잡하고 크다.

내 경험에 비추어 볼 때 GUI가 복잡할수록 네이티브 플랫폼에 더 가까이 있어야합니다. 또한 이러한 각 그래픽 라이브러리의 학습 곡선과 플랫폼 간 이동에 필요한 노력을 평가해야합니다.

+2

IronRuby가 Windows에서만 실행되는 것은 사실이 아닙니다. 이 제품은 어디서나 ISO 호환 CLI 구현이 가능하며 모든 곳에서 실행됩니다. 아, 아이폰 용 CLI 구현조차있다! 사실, 정확하게 기억한다면, IronRuby * 용 데비안 패키지가있었습니다. * 전에 Windows 설치 프로그램이있었습니다. 또한 YARV는 iPhone에서 실행됩니다. 오, 그리고 당신은 다소 중요한 차이점을 잊었습니다 : YARV, MRI, Rubinius, IronRuby 및 JRuby가 제작 준비가 완료되고 표준을 준수하는 것으로 발표되었습니다. MacRuby는 AFAICT와 같은 것입니다. –

+3

@ Jörg W Mittag : 나는 여분의 레이어와 제한을 도입했기 때문에 난해한 해결책을 찾지 못했습니다. 예를 들어, Windows 외부의 IronRuby는 CLI 코드를 해석하기 위해 Mono와 같은 것이 필요합니다. 아이폰에서는 MonoTouch가 CLI가 아닌 네이티브 코드로 컴파일되기 때문에 .NET GUI를 사용할 수 없습니다. iPhone의 YARV에 대해서는이 참조를 찾을 수 없었습니다. Apple은 iPhone/iPad에서 Silverlight, Flash, JVM과 같은 중간 레이어를 허용하지 않는 것에 대해 매우 엄격합니다. – Alkaline