Skip to content

Kotlin

Kotlin is a statically-typed programming language that runs on the Java Virtual Machine and also can be compiled to JavaScript source code. Its primary development is from a team of JetBrains programmers based in Saint Petersburg, Russia (the name comes from the Kotlin Island, near St. Petersburg). Kotlin was named Language of the Month in the January 2012 issue of Dr. Dobb's Journal. While not syntax compatible with Java, Kotlin is designed to interoperate with Java code and is reliant on Java code from the existing Java Class Library, such as the collections framework.

Categories

  • Kotlin:Basic
  • 타입바운드
    • 무공변성(invariant)
    • 공변성(covariant)
    • 반공변성(contravariant)

Libraries

Android는 새 언어가 필요할까?

구글과 오라클의 Java 소송전이 길어지면서 사람들은 Android 가 Java를 버릴지도 모른다는 생각에서 대안언어가 무엇이 있는지 관심을 가지기 시작했다. Google이 만든 언어인 Go 를 꼽는 사람도 있었고, 구글 내에서의 Go를 안드로이드에 쓰겠다는 일부 움직임도 있었지만, Java로 되어있는 엄청난 양의 API와의 호환성 때문에 불가능 하다고 이야기 하고 있다.

코틀린 (Kotlin)은 Scala등과 같이 자바가상머신(JVM) 언어에서 돌아가는 Jetbrains에서 만든 개발언어 이다. 다시말하자면, Kotlin을 컴파일 하면 JVM에서 돌아가는 bytecode를 생성해준다. Jetbrain은 요즘 개발자 사이에서 커다란 인기를 끌고있는 IntelliJ 시리즈 (Java, Python, Ruby, C, Javascript 등등 언어별 각각의 최적의 IDE를 제공)로 유명한 회사이고 최근에는 Android Studio 가 Jebrains의 IDE 플랫폼으로 제작되어 더욱 많이 알려졌다. 따라서 일단 Kotlin을 쓸때 IDE 걱정은 할필요 없다는 것이 첫번째 장점이다.

왜 Kotlin 인가?

Kotlin이 Android에서 Java의 대안언어로 각광받는 이유 중에 하나는 Java와 100% 호환이 된다는 점이다. 따라서 현재의 Android API들을 그대로 사용할 수 있고, 모든 Java 프레임웍 들을 사용 할 수 있다. 또한 Ant나 Maven, Gradle과 같은 빌드 시스템을 사용할 수 있다. 이로서 Java에서 Kotlin으로 넘어가는 가장 큰 장벽을 넘었다고 할 수 있다. 또한 Java 코드를 Kotlin코드로 변환하는 도구를 제공하고 있다.

Kotlin 에서 장점으로 내세우는 것 중에 하나는 Null pointer exception 에서 자유롭다는 점이다. Kotlin의 type 시스템은 Java의 가장 흔한 에러인 Null exception 에서 구해준다. 또한 자바의 boilerplate 코드들을 줄여 주고 간결한 코드를 작성할 수 있는 문법을 제공한다. getter/setter의 번거로움을 줄여주고 함수를 class 밖에서 선언할 수도 있는 등 편리성과 자유도를 준다. Functional programming 지원은 물론이고 새로 만들어진 언어이니 만큼 Java 에서 불편하게 사용했던 점들이 많이 개선되었다. 개발 도구로는 Commandline 컴파일러는 물론이고, IntelliJ또는 Eclipse 에 Kotlin 플로그인을 설치해서 사용할 수도 있다.

Kotlin/Native

Documentation

코틀린 핵심 파악하기 - 핵심만골라배우는안드로이드스튜디오3&프로그래밍_별책부록_배포용.pdf
Identify_the_core_of_Kotlin.pdf

See also

Favorite site

Guide

Article