2009-10-17 8 views
12

루비는 훌륭한 언어입니다. 빠르고 유연하며 많은 Python을 생각 나게합니다.Ruby의 실제 문제는 무엇입니까?

루비는 또한 매우 인기가 있으며 지금은 몇 년 동안되었습니다. 이제 "현실 세계"프로젝트와 "레일 애플리케이션 비즈니스"가 있기 때문에 내 질문은 다음과 같습니다. Ruby의 문제점은 무엇입니까? 특히 잘하지 않는 것은 무엇입니까? 통합 할 때 특히 다루기 힘든 것으로 판명 된 다른 제품이나 기술이 있습니까? 미션 크리티컬 앱을 위해 Ruby를 채택하기 전에 개발자가 일시 중지하고주의해야하는 사항은 무엇입니까?

또한 Ruby 개발의 주된 함정과 그 위험을 완화하는 방법에 대한 목록 (블로그 스팸 또는 기타)을 컴파일 한 사람이 있습니까?

편집 :하여

"실제"어떤 예산과 일정이없는 곳 학계 반대로 내가 비즈니스 세계를 의미한다.

+2

질문 제목에서 "실제"의 의미는 무엇입니까? 어떤 차이를 만들고 있습니까? 루비에 문제가있는 "환상의 세계"가 있습니까? "실제"란 무엇을 의미합니까? 이 용어를 정의하십시오. –

+1

루비가 빠릅니까? 제 경험상 파이썬이나 tcl보다 눈에 띄게 느린 것 같았습니다. –

+1

흠. 나는 학문적 세계에서 일하고 있으며, 우리는 매우 실제 예산과 일정을 가지고 있습니다. 나는 당신이 학계가하지 못하는 아이디어를 어디에서 얻고 있는지 확신 할 수 없다. –

답변

0

루비는 인터프리터 언어이기 때문에 Java와 C# 같은 Just-In-Time 컴파일 언어보다 실행 속도가 최대 50 배 느려질 수 있습니다. 대부분의 사이트가 CPU 시간보다 대역폭과 데이터베이스 시간에 훨씬 더 많이 제한되는 경향이 있으므로이 문제가 사이트인지 여부는 사이트 자체의 작동 여부에 달려 있습니다.

+0

당신이 이것을 올렸을 때조차도 그것은 정확하지 않았습니다. 당신은 MRI (Matz Ruby Interpreter)를 설명하는 것 같습니다.이 MRI는 다른 사람들이 표준을 준수하여 구현할 수 있도록하는 표준으로 사용됩니다. JRuby와 Rubinius는 모두 게시 당시 존재했습니다. 둘 다 JIT 컴파일을 사용합니다. – bigtunacan

2

루비가 빠르지 않습니다. 그것은 다른 특성을 가지고 있지만 CPU가 병목 현상 (많은 웹 응용 프로그램에서 실제로 그렇지 않은 경우)이라면 Ruby는 적절한 도구가 아닙니다. 현재의 "표준"루비는 파이썬처럼 (예를 들어 파이썬 에서처럼) 바이트 코드로 컴파일하지는 않지만 대신 AST를 해석합니다. 아마도 AST를 해석하기 때문에 아마도 20-100의 야구장에서 속도가 느려질 것입니다. 그러나 이것은 아마도 Ruby 1.9로 바뀌려고하고 있습니다 (또는 적어도 좋아집니다). 그리고 JRuby는 분명히 알고있는 JVM 기반입니다.

1

Ruby의 성능이 특별한 경우에 바람직한 것으로 남을 경우 JRuby을 살펴 보는 것이 좋습니다. 그것은 바닐라 루비 코드를 JIT 또는 AOT 방식으로 JVM 바이트 코드로 컴파일하고 Java의 동시성 우수성 및 훌륭한 응용 프로그램 서버에 대한 액세스를 제공합니다.

+0

+1은 동시성을 언급합니다. – DaveParillo

1

Ruby의 속도는 실제로 주요 문제가 아닙니다. 가장 큰 문제점은 단일 스레드라는 것입니다. 맥스 A.의 제안이 좋다. JRuby는 동시성을 허용합니다.

+0

또는 하나의 프로세서 코어 만 사용합니다. –