코틀린은 2011년 7월 JetBrains 에서 최초 공개됐다.
2017년 Android 공식 언어로 채택
Java와 100퍼센트 호환이 가능함
코틀린의 타입 시스템을 사용하면 자바의 가장 흔한 에러인 NullPointerExceptions에서 자유로울수있다.
자바에서 불편한 getter/setter의 번거로움을 dataClass로 편리성과 자유도를 제공한다.
자바에 없는 타입 추론은 각 변수의 유형을 명시적으로 지정할 필요가없다.
자바의 ; 세미콜론이 필요가 없다.
코틀린은 오픈소스이다. 기존 자바의 프레임워크와 라이브러리를 사용할 수 있는 등 자바와 호환되어 사용할수있다.
따라서 AndroidApi 들을 그대로 사용하면서 maven,gradle 같은 빌드 시스템도 사용할수있으며
추가적인 개발비용이 들지 않는다.
반복되는 문법은 버그의 발생 빈도를 높인다.
이와는 반대로 간결한 문법을 가지고있는 코틀린 같은 언어를 사용하게 되면 버그의 발생횟수를 줄일뿐만 아니라
덜 지루하게 개발이 가능하다
코틀린의 문법은 이해하기 쉽고 독창적이어서 초보자들도 쉽고 빠르게 학습할 수 있다.
훨씬 단순하며 문법의 간결성과 가독성의 균형 또한 잘 맞추고 있다.
Intellij 내부의 컴파일은 점진적이며 자바만큼 빠르지만 Gradle을 통한 컴파일은 점진적이지 않기때문에 속도가 느리다
하지만 컴파일을 Gradle이 아니라 intellij 로 변경하여 컴파일하면 이문제를 해결 할 수 있다.
코틀린은 자바6 바이트 코드를 대상으로 하기때문에, 자바 8의 향상된 기능들을 제공하지 않는다.
또한 코틀린이 가지고있는 사소한 문제 중 하나는 코틀린 표준 라이브러리가 자바 8 표준 라이브러리의 기능을 중복해 제공한다는것
개인적인 생각으로 한줄 적자면 코틀린스럽게 코딩하는게 어렵다고 생각한다.
어중간하게 코틀린을 쓴다면 자바처럼 코딩을 하게된다면 자바도 코틀린도 둘다 어중간한 실력에 머물 수 있을거 같다는 생각이 든다.