자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어이다. 자바와 마찬가지로 정적 타입 지정 언어
이다. 정적 타입 지정 언어란 프로그램 구성 요소의 타입을 컴파일 시점에 알 수 있고, 프로그램 안에서 객체의 필드나 메서드를 사용할 때마다 컴파일러가 타입을 검증해준다는 말이다.
타입 추론
이 가능해요!자바와 달리 코틀린에서는 모든 변수의 타입을 프로그래머가 직접 명시할 필요가 없다. 대부분의 경우 코틀린 컴파일러가 문맥으로부터 변수 타입을 자동으로 유추할 수 있기 때문에 프로그래머는 타입 선언을 생략하도 된다.
성능
실행 시점에 어떤 메서드를 호출할지 알아내는 과정이 필요 없으므로 메서드 호출이 더 빠르다.
신뢰성
컴파일러가 프로그램의 정확성을 검증하기 떄문에 실행 시 프로그램이 오류로 중단될 가능성이 더 적어진다.
유지 보수성
코드에서 다루는 객체가 어떤 타입에 속하는지 알 수 있기 때문에 처음 보는 코드를 다룰 때도 더 쉽다.
도구 지원
정적 타입 지정을 활용하면 더 안전하게 리팩터링 할 수 있다.
코틀린은 디폴트로 자바8과 호환되고, 자바 9-17버전을 지원할 수 있다. 따라서 호환성과 관련한 새로운 문제를 야기하지 않는다.
대부분의 코틀린 표준 라이브러리 함수는 이자로 받은 람다 함수를 인라이닝 한다. 따라서 람다를 사용해도 새로운 객체가 만들어지지 않으므로 객체 증가로 인한 가비지 컬렉션 문제도 없다.