저는 하드 코어 프로그래머를위한 언어로 프로그래밍하는 것을 좋아합니다. (내가 가장 좋아하는 것은 Python과 D입니다.) MATLAB은 엔지니어를 대상으로하고 R은 통계 전문가를 대상으로하며,이 언어는 하드 코어 프로그래머가 아니고 하드 코어 프로그래머가 아닌 사람들을 위해 설계된 것처럼 보입니다. 나는 항상 그것들이 사용하기에 다소 어색하다는 것을 알았으며, 어느 정도까지는 왜 손가락을 넣을 수 없습니다. 다음은 내가 식별 한 몇 가지 문제입니다.
- (모두) : 진정한 프리미티브가 없을 때까지 벡터와 행렬을 극도로 강조합니다.
- (둘 다) : 기본 문자열 조작의 어려움.
- (모두) : 해시 테이블 및 "실제"와 같은 기본 데이터 구조 (예 : 유형 매개 변수 및 중첩 가능 배열)에 대한 지원이 부족하거나 어색합니다.
- (둘 다) : 코드를 벡터화하기 위해 뒤로 구부리지 않는 한 해석 된 언어 표준으로도 실제로 느립니다.
- (모두) : 외부 세계와 상호 작용하도록 설계되지 않은 것 같습니다. 예를 들어, 둘 다 시작하는 데 시간이 걸리고 간단한 텍스트 필터 프로그램을 쉽게 작성할 수 있도록 설계되지 않은 상당히 큰 프로그램입니다. 또한 문자열 처리 기능이 부족하면 거의 표준 형식 이외의 파일 I / O가 거의 불가능합니다.
- (모두) : 물체의 방향이 매우 느슨해 보입니다. 예, 할 수는 있지만 C의 OO보다 관용적 인 느낌은 아닙니다.
- (둘 다) : 참조 유형을 얻는 명백하고 간단한 방법은 없습니다. 포인터 나 클래스 참조가 없습니다. 예를 들어, 자신의 링크 된 목록을 이러한 언어 중 하나로 롤링하는 방법을 모르겠습니다.
- (MATLAB) : 여러 개의 최상위 기능을 단일 파일에 넣을 수 없으므로 매우 긴 기능과 잘라 내기 및 붙여 넣기 코딩이 가능합니다.
- (MATLAB) : 정수는 첫 번째 클래스 유형으로 존재하지 않는 것 같습니다.
- (R) : 기본 내장 데이터 구조는 너무 수준이 높고 문서화가 잘되지 않은 것으로 보이며, 유사하지만 하위 수준의 데이터 구조에 대한 경험을 감안할 때 기대했던 것을 수행하지 않는 것 같습니다.
- (R) : 문서가 모든 곳에 퍼져 있으며 탐색 또는 검색이 사실상 불가능합니다. 심지어 나쁜 문서화로 종종 쓰러지고 여전히 상당히 알파 인 D조차도 내가 알 수있는 한 실질적으로 더 좋습니다.
- (R) : 적어도 내가 아는 한, 좋은 IDE는 없습니다. 다시 말해, 작은 공동체를 가진 상당히 알파 언어 인 D조차도 더 좋습니다.
일반적으로, MATLAB과 R은 충분히 포괄적 인 라이브러리가 존재한다면보다 일반적인 언어로 된 오래된 라이브러리로 쉽게 대체 될 수 있다고 생각합니다. 라이브러리 작성자를위한 많은 기능이 포함 된 최신 범용 언어에서 특히 그렇습니다.
R과 MATLAB이 왜 그렇게 이상하게 보입니까? 이 언어가 하드 코어 프로그래머에게 이상하게 보일 수있는 다른 주요 문제가 있습니까? 그들의 사용이 필요할 때, 좋은 생존 요령은 무엇입니까?
편집 : 내가 얻은 답변 중 하나에서 문제가 나타납니다. 데이터를 분석 할 때 전체 파이프 라인을 통합하는 하나의 스크립트를 사용하는 것이 개인의 선호도가 높습니다. 이는 범용 언어를 사용해야 함을 의미합니다. 나는 데이터를 "정리"하기 위해 스크립트를 작성하는 것이 싫다. 그리고 나서 완전히 다른 환경에서 다시 읽을 수있는 스크립트를 작성하는 것이 싫다. 나는 내 작업의 일부와 완전히 위해 MATLAB / R을 사용하는 마찰을 발견한다. 완전히 다른 주소 공간을 가진 다른 언어와 나머지는 큰 마찰의 원천이 될 생각입니다. 또한 접착제 층이 존재한다는 것을 알고 있지만, 그들은 항상 엄청나게 복잡하고 마찰력이있는 것처럼 보입니다.