Kotlin - Kotlin 이 가지는 의미.

Language/Kotlin 2018.07.09 00:12 posted by TechNote.kr


Android java api를 찾아볼 일이 생겨 android developers 에 오랜만에 접속하였다. Android Jetpack 이라는 메뉴가 보였다. 







Android app을 만들기 위해 Google이 새롭게 내놓은 library/tool의 모음이겠거니 생각이 들었다. 


Android Jetpack components are a collection of libraries that are individually adoptable and built to work together while taking advantage of Kotlin language features that make you more productive.


하지만 Android jetpack을 설명하는 문구 중에 Kotlin language 라는 문구가 보인다. 본격적으로 Android 에서 Kotlin을 지원하기 위한 Package라고 보인다. 



Oracle과의 소송 이후 Java 를 벗어나기 위한 하나의 흐름이라고 생각되었다. Kotlin은 JVM 위에서도 구동이 가능하기 때문에, Google에 있어서 kotlin은 Android의 전체 structure에는 큰 변화는 없이 Java에서 벗어날 수 있는 하나의 대안이 될 수 있을 것이다. 



2017년 Google I/O에서 kotlin을 공식 언어로 채택한데이어, 같은 해 Android Studio 3.0에서는 kotlin을 fully 지원하고 있다. 

(Android kotlin compiler 를 통해 Java 6나 Java 8와 호환성을 가지는 bytecode 생성)


Android가 Java를 버리고(정확히 이야기하면 Java API) kotlin으로 전환할 수 있을지는 앞으로 android 발전에 있어 하나의 큰 관전 포인트가 될 것이다. 


그렇다면 android 라는 큰 지원군을 얻은 kotlin이 android 외에서는 어떤 의미를 가질 수 있을까?



Multiplatform을 위한 programming language로써의 kotlin


Kotlin은 Android 뿐만 아니라 다양한 platform을 지원한다.  





JVM : Frameworks for Server-side Development

Android : Building Android application

Browser : Compile Kotlin to JavaScript

Native : Compling native binaries that run without any VM



 kotlin 문서는 대표적으로 위 4가지 경우에 대해 kotlin을 사용할 수 있다고 명시하고 있다. JVM 상에서 동작하는 servier-side framework의 개발(대표적으로 spring), Android application 개발, kotlin code를 java script 로 변환, 일반 native app 개발 등이 그것이다. 언급하기로는 4가지만 나열해놓았지만 Native app 개발이라는 부분을 자세히 보면 그 범위가 훨씬 넓어짐을 알 수 있다. 


  • Windows (x86_64 only at the moment)
  • Linux (x86_64, arm32, MIPS, MIPS little endian)
  • MacOS (x86_64)
  • iOS (arm64 only)
  • Android (arm32 and arm64)
  • WebAssembly (wasm32 only)


Kotlin/Native is currently in development; preview releases are available for you to try.


2018년 07월 09일 현재 기준으로 Kotlin/Native는 아직 preview 수준이지만 Android 공식 언어로 채택되는 등 지속적으로 발전하고 있다는 사실을 보면 상당히 기대가 된다. 


비록 script 언어지만 python이 platform에 상관없이 사용이 가능하고, 쉬운 문법으로 널리 사용되는 것을 볼 때, kotlin 또한 python과 같이 널리 사용될 수 있을거라 기대해본다.