Untitled

개발사: JetBrains, 2011, 오픈 소스 프로그래밍 언어.

JVM 기반의 언어이며, Java와 유사하지만 더 간결한 문법과 다양한 기능을 추가하였다. Java와의 상호 운용이 100% 지원된다.

JVM 바이트코드가 기본이지만, Kotlin/Native 컴파일러를 사용하여 기계어로 컴파일할 수 있다.

안드로이드, 스프링 프레임워크, Tomcat, JavaScript, Java EE, HTML5, iOS, 라즈베리 파이 등을 개발할 때 사용할 수 있다.

특징

  1. 간결한 문법을 제공하면서도 런타임 오버헤드가 거의 없음.
  2. 오버헤드 없는 널 안전성을 제공한다. Kotlin의 변수는 Nullable(널 값 사용 가능)과 NotNull(널 값 사용 불가)로 나뉘는데, 변수 선언 시 '?'를 붙여 Nullable로 만들 수 있다. Swift에서도 유사한 기능을 쓰는데 Kotlin 쪽이 제약이 좀 덜해서 사용하기 편하다.
  3. 예외처리를 강제하지 않는다.
  4. 모든 함수가 리턴값을 가진다.
  5. Java의 'Integer'나 'Double'처럼 primitive type을 위한 별도의 wrapper class가 존재하지 않는다. 모든 primitive type은 객체 취급을 받는다. 따라서 Int 같은 변수는 객체에 할당된 toString 함수 등을 바로바로 이용할 수 있다.
  6. 확장함수, 연산자 오버로딩을 지원한다. 예를 들어 int형을 확장해 'i = 3 power 4' 같은 식으로 새 연산자를 만들 수 있다.
  7. API 문서에 Java의 HTML 대신 Markdown을 사용한다.
  8. ==, != 연산자가 객체의 identity가 아닌 내용물을 비교한다.
  9. 자바와 달리 부모 클래스로부터 상속을 바로 받을 수 없다. open 키워드가 붙은 부모 클래스로부터만 상속을 받을 수 있다.
  10. static 메서드가 없다.
  11. 코루틴을 지원한다.