반응형
강점 : 스크립팅 언어, 웹 개발 위한 언어, 시장 출시까지 걸리는 시간
생산성을 높여준다. 모듈과 오픈 클래스는 이미 정의된 메서드나 인스턴스 변수를 넘어서는 동작을 문법에 추가하는 것을 가능하게 해준다.
시장 출시까지 걸리는 시간을 단축시킴
약점 : 성능(물론 점점 빨라지고 있음), 동시성과 OOP, 안전성
루비는 마츠의 의도는 명확. 언어의 성능이 아니라 프로그래머의 생산성을 최적화하는 데 관심이 더 크다. 오픈 클래스, 오리 타이핑, method_missing 같은 기능은 컴파일 가능성 및 성능 개선을 위한 바로 그 도구들의 존재를 무력화한다.
객체지향 프로그래밍은 치명적인 한계를 갖는다. 이 모델은 일반적으로 행위가 상태를 둘러싸고 있다고 전제한다. 하지만 상태는 변할 수 있다. 이러한 프로그래밍 전략은 동시성과 관련해서 심각한 문제를 낳는다.
최악의 경우 객체지향 시스템은 동시성 환경에서 디버깅하는 것이 거의 불가능하거나 안정적인 방식으로 테스트될 수 없다.
안전성 문제 - 오리 타이핑은 훌륭하다. 하지만 그에 수반하는 비용도 가지고 있다. 정적 타이핑은 수많은 도구들이 문법 트리를 구축하여 통합개발환경을 제공하는 것을 가능하게 해준다. 루비용 IDE는 만들기가 어렵고, 현재로서는 대부분의 루비 개발자가 그런 도구를 사용하지도 않는다. (동적이므로 정적인 문법을 만들지 않음)
루비의 핵심 강점은 문법과 유연성이다. 핵심 약점은 성능이다.
어떤 종류의 애플리케이션에 대해서는 평균 이상이다.
반응형
'프로그래밍' 카테고리의 다른 글
프롤로그 강점 약점 (0) | 2021.07.02 |
---|---|
Io 강점 약점 (0) | 2021.07.02 |
Ruby 2+ - 믹스인 (0) | 2021.06.29 |
C++ 함수 정의 부 어셈블리 코드 (eax, dword ptr [*], mov, add) (0) | 2021.06.21 |
[어셈블리] 문자열 복사 코드 (lea, mov, e*i, shr, rep, nop, dword) (0) | 2021.06.21 |