면책 조항 : JVM에서 Polyglot 프로그래밍에 대한 책을 작성할 때 편견이 있습니다 (Shameless Plug !!-The Well-Grounded Java Developer) :)
첫째, 변경이 진정으로 보장되는 부분 만 소개해야합니다!
시작하기 좋은 곳은 Ola Bini의 프로그래밍 언어 피라미드를 고려하는 것입니다. Ola는 안정적이고 동적 인 언어와 도메인 특정 언어에 대해 이야기합니다.
Java는 안정적인 언어 (정적으로 유형이 지정되고 관리되는)이며 여러 가지 이유로 (사람들이 관심이있는 경우 나중에 사용할 수 있음) 동적 계층 프로젝트 (예 : Rapid Web Development) 또는 도메인 특정 계층 프로젝트 (예 : 모델링)에 이상적인 선택이 아닙니다. 엔터프라이즈 통합 패턴 도메인). 해당 레이어 중 하나에 맞는 프로젝트가 있다면 시작하기에 좋은 장소가 될 수 있습니다.
대체 언어가 제공하는 기본 기능이있는 경우 Java를 대체하기 위해 안정적인 계층에 새 언어를 도입하는 것도 고려할 수 있습니다. 예를 들어 스칼라는 단순히 Java보다 안전하고 자연스러운 방식으로 동시성을 처리합니다.
요청에 따라 이것에 대한 더 많은 것. WRT 자바 :
- 재 컴파일은 힘들다
- 정적 타이핑은 융통성이 없으며 리팩토링 시간이 길어집니다.
- 배포는 헤비급 프로세스입니다
- Java의 구문은 DSL 생성에 적합하지 않습니다.
이 시점에서 다음과 같이 스스로에게 묻습니다.“이러한 계층에 어떤 유형의 프로그래밍 문제가 있습니까? 어떤 언어를 선택해야합니까?”, 은색 글 머리 기호가 없지만 선택을 평가할 때 고려해야 할 몇 가지 기준이 있습니다.
도메인 별
- 빌드 / 지속적인 통합 / 지속적인 배포
- 데브 옵스
- 엔터프라이즈 통합 패턴 모델링
- 비즈니스 규칙 모델링
동적
- 빠른 웹 개발
- 프로토 타이핑
- 대화식 관리 / 사용자 콘솔
- 스크립팅
- 테스트 주도 개발 / 행동 주도 개발
안정된
위험이 적은 소규모 모듈 (이러한 JVM 언어는 기존 Java 코드와 아름답게 상호 작용하는 경우가 많음) 또는 프로젝트로 시작하십시오. 이것이 프로토 타입이 될 것임을 분명히하십시오.
해당 언어의 프로그래밍 라이프 사이클 및 툴링 측면을 조사했는지 확인하십시오. TDD, 빌드 도구 및 지속적인 통합 실행, 강력한 IDE 지원 및 기타 모든 요소를 사용할 수 있는지 확인해야합니다. 일부 언어의 경우 특정 툴링이 없거나 매우 기본적이라는 것을 받아 들여야합니다. 개발자의 힘과 툴링 지원은 언어의 힘을 능가 할 수 있습니다.
팀이 막힐 때 도움이 될 수있는 활기찬 커뮤니티가 있는지 확인하십시오. 로컬 사용자 그룹이 더 좋습니다.
특히 언어가 OO 스타일 언어가 아닌 경우 개발자가 초기 언어 교육을 받도록하십시오 (클로저로 이동하는 것이 중요하지 않음).
그것은 내 생각에 관한 것입니다. XML 처리, 빠른 웹 사이트 구축 및 일부 데이터 처리와 같은 작업을 위해 Java와 함께 개발시 Groovy, Scala 및 Clojure를 개인적으로 성공적으로 사용했습니다.