다음과 같은 상황에서 배포 할 상용 소스 소프트웨어를 작성했다고 가정 해 봅시다. Windows 데스크톱 앱 .Net, ActiveX 컨트롤, Windows Netscape 플러그인, Cocoa, Mac Netscape 플러그인을 기반으로하는 Mac 데스크탑 앱 , 브라우저에서 호스팅되는 Java 애플릿. 공유 루비 소스 파일에서 내 모델 및 컨트롤러 클래스를 작성하고 MacRuby, IronRuby 및 JRuby를 사용하여 다양한 런타임에 통합하려면 코드 공유 측면에서 실행 가능합니까? 내 뷰 클래스는 Windows에서 WPF, Mac에서 Cocoa 및 Java (SWT?)에서 적절한 모든 것을 사용하도록 작성 될 것입니다.네이티브 툴킷으로 크로스 플랫폼 개발을위한 Ruby의 생존 가능성?
내 관점에서 볼 때 가장 중요한 것은 코드베이스를 장기간 유지 관리하는 것입니다. 루비는 내가 타겟팅해야하는 세 가지 플랫폼에서 첫 번째 언어가되는 것처럼 보입니다. 닷넷, 코코아와 자바, 어떤 언어로. 나는 이것을 잘못하고 있나?
두 번째 중요성은 코드에 대한 바이러스 라이센스 요구 사항을 피하는 것입니다. JRuby가 다양한 라이센스하에 배포되는 곳을 볼 수 있습니다. 내가 바이너리를 배포 할 수 있다고 가정하는 것이 옳은가? 라이센스는 자신의 애플리케이션에 대해 (자신의 프레임 워크를 수정하는 것과는 대조적으로) 작성한 루비 파일에는 적용되지 않는다.
루비는 잘 알려진 데스크톱 애플리케이션에서 사용 되었는가? 이전에 해본 적이 있습니까?
제가 말하고자하는 것처럼, 세 권의 플랫폼을 동시에 지원하지 않는 것이 내 권위 또는 설득력이 아닙니다. 그것은 Java, C# 및 Objective-C (아마도 C# Mono)에서 3 개의 병렬 코드베이스를 작성하거나 공통 분모 언어를 찾으려고 시도합니다. 공통 분모 언어는 바닐라 루비였습니다. Ruby에 대한 경험이 전혀 없습니다 (이상적인 우주에서 저는 코코아에서 모든 것을하고 싶습니다), 루비 아가 될 수있는 것처럼 보였습니다. –
또한 바닐라 루비는 Visual C++와 GCC 사이에서 C++보다 세 가지 맛에서 더 이상 차이가 있습니까? 저는 수만 줄의 바닐라 C++을 작성했습니다. 거의 모든 것들이 컴파일 오류로 끝나는 몇 가지 성가신 예외를 제외하고 Windows 및 OS X에서 동일한 동작으로 컴파일 할 수 있습니다. –
Gotchya ... 음 ... IronRuby 구현이 불완전하다는 소식을 들었지만 .Net 플랫폼을 개발하여 작업을 완료하는 방법에 대해 충분히 알고 있다고 말할 수는 없습니다. 그러나 자바, 코코아 및 웹에서는 귀하의 아이디어가 그럴듯 해 보입니다. – btelles