intellj,pycharm 등 IDE 툴을 만든 젯브레인즈(jetbrains)에서 개발한 언어.
2011년에 발표되었고, 코틀린섬 이름으로부터 지어졌고, 2017년 구글에서 안드로이드 공식언어로 선택되었다.
정적 타입 지정 언어
모든 프로그램의 구성요소를 컴파일 시점에서 알수 있고, 컴파일러가 타입을 검증해줌으로써 개발자가 타입을 선언하지 않아도 타입을 추론해주기에 타입선언을 생략하고 프로그램이 타입 오류로 중단될 가능성을 줄인다.
Null 안정성
널이 될수 있는 타입도 지원한다. 컴파일 단계에서 널 값 허용여부를 검사해 널 포인터로 인한 프로그램 중단을 예방할 수 있다.
함수 타입에 대한 지원
함수형 프로그래밍을 지원함으로써 프로그램의 행동을 나타내는ㄴ 코드 조각을 순수함수로 나누어 문제를 해결한다. 이로써 가독성을 높이고 유지보수를 용이하게 하며 다중스레드를 사용해도 안정적이다.
자바와 호환성
자바 메소드 호출, 자바 클래스 상속, 인터페이스 구현, 자바 어노테이션 등 자바에서 적용하던걸 모두 코틀린에서 할 수 있다.
실용적
다른 프로그래밍 언어가 채택해서 이미 성공적으로 검증된 해법과 기능만 담았다.
간결하다
자바에 비해 간단하고 간결하다.
예를들어 getter, setter, 생성자 파라미터를 대입로직 등 자바에서 번거로운 코드를 코틀린에선 묵시적으로 제공하고 람다 표현식으로 작은 코드 블록을 라이브러리 함수에 쉽게 전달할 수 있다.
안전성
우선 JVM에서 실행하기 때문에 상당한 안전성을 보장한다. JVM 사용으로 인해 메모리안전성 보장,버퍼오버플로우 방지, 동적메모리 할당으로 인한 문제 예방할 수 있다.
또한 앞서 말한 듯이 타입자동추론으로 타입 안정성을 보장하고 널타입 지원으로 NullPointerException으로 인한 프로그램 오류도 방지해준다.
https://incheol-jung.gitbook.io/docs/study/kotlin-in-action/1