코틀린은 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어로 자바가 사용되고 있는 플랫폼에 적합하면서도 간결하고, 생산적인 안전한 언어를 제공한다.
또한, 자바 코드와의 상호운용성을 중시하고, 서버 개발 및 안드로이드 앱 개발 분야에서 사용한다.
Kotlin/JVM : 자바 가상 머신 상에서 작동하는 앱( 자바앱/안드로이드앱 ) 개발
Kotlin/JS : 자바스크립트에 의해 DB부터 서버, 클라이언트까지 다루는 풀스탭 웹개발
Kotlin/Native : 안드로이드와 IOS뿐만 아니라 임베디드, IoT등의 앱 개발
코틀린은 모든 프로그램의 구성요소를 컴파일 시점에 알 수 있고, 컴파일러가 타입을 검증해준다. -> 정적타입 지정언어
그 이유로, 개발자가 타입을 선언하지 않아도 된다( 타입추론지원 )는 장점이 있다.
결과적으로 컴파일러가 프로그램의 정확성을 검증하기때문에 프로그램이 오류로 중단될 가능성이 적어진다.
코틀린은 Null이 될 수 있는 타입도 지원한다.
Null을 허용할지 컴파일 단계에서 검사하기 때문에 NullPointerException으로 인한 프로그램 중단도 예방할 수 있다.
코틀린은 함수형 프로그램( Functional Programming )을 지원한다.
많은 프로그램의 행동을 나타내는 코드 조각을 순수함수로 나누어 문제를 해결한다.
함수를 작성해 변수에 저장할 수 있고, 다른 함수에 전달할 수 있고, 반환 또한 가능하다.
결과적으로 가독성을 높이고 유지보수가 용이해지며, 함수를 통해 불변데이터 구조를 사용하기 때문에 다중 스레드를 사용해도 안정적이다.
간결하고 실용적이다.
자바 코드와 상호운용 가능하다.
대부분의 자바 프로젝트에서 코틀린을 활용할 수 있다.
성능은 자바와 비슷하나, 간결하고 재사용성이 높다.
null 체크, 타입 검사와 캐스트로 인한 언어의 안정성이 높다.