디자이너가 이런것도 알아야해 ? 코틀린과 자바

오라클과 구글의 자바 소송에서 오라클이 승소했다는 소식을 접했다.
이와 관련하여 개발자 사이에서는’코틀린 가속화’에 대한 이야기가 나왔다.
사실 디자이너 입장에서는 코틀린이 무엇인지 크게 신경쓰지 않아도 된다.
디자이너도 하루가 다르게 쏟아져 나오는 많은 디지털 디바이스와 디자인 툴을 익히느라 여념이 없으니까 말이다.
하지만 최근에는 디자이너도 코딩을 하는 사람들이 늘어나고 있고, 개발자와 IT업계를 이해하기 위해서 알아둬야 하지 않을까 싶어 이 글을 적게 되었다.

코틀린이 뭐에요?

코틀린은 2011년에 만들어진 오픈소스 프로그래밍 언어이다.
자바가상머신(JVM) 언어라 자바와 호환되고 안드로이드 개발에 주로 활용되며,
2017년 5월 ‘구글I/O’ 컨퍼런스에서 구글 안드로이드 공식 언어로 소개된바 있다.

1
코틀린은 경량급 프로그래밍 언어라고 한다.
또한 현재 코틀린 공식 웹사이트에서 시범으로 사용해볼 수 있다.
코틀린 공식 웹사이트

직접 사용해본 개발자들은 ‘쉽고,간결하고,실용적,경제적’ 이라고 말한다.
예를 들면 코틀린 타입 시스템을 사용하면 자바의 가장 흔한 에러인 NullPointerExceptions 에서 자유로울 수 있다.
또한 자바의 불편한 점을 개선하여 getter/setter의 번거로움을 줄여주고 함수를 class 밖에서 선언할 수 있는 등 편리성과 자유도도 제공한다.

위와 같이 실용적일 뿐만 아니라 코틀린은 경제적이기도 하다.
오픈소스인 코틀린인 기존의 자바 프레임워크와 라이브러리를 사용할 수 있는 등 자바와
호환되어 사용될 수 있다. 따라서 현재 Android API들을 그대로 사용할 수 있고, Maven, Gradle과 같은 빌드 시스템도 사용할 수 있으며 추가적인 개발비용이 들지 않는다.

또한 코틀린의 문법은 이해하기 쉽고 독창적이어서 초보자들도 쉽고 빠르게 학습할 수 있다.
얼핏 보면 코틀린은 스칼라와 비슷한 것처럼 보이지만, 스칼라 보다 훨씬 더 단순할 뿐만 아니라 문법의 간결성과 가독성의 균형 또한 잘 맞추고 있다.

아울러 개발자들이 반복되는 문법을 사용하며 안드로이드용 프로그래밍을 할 때, 장황한 코드의 사용은 버그의 발생 빈도를 높인다. 이와는 반대로 간결한 문법을 가지고 있는 코틀린과 같은 언어를 사용하게 되면 버그의 발생 횟수를 줄일 뿐만 아니라, 덜 지루하게 개발이 가능하다.

2

하지만 모든 것에는 장단점이 있듯 코틀린에도 단점은 있다.
컴퓨터 운영 체계와 프로그램 언어에서의 앨리어스는, 이미 정의된 데이터 오브젝트에 대해 좀 더 이해하기 쉽고, 보다 의미 있게 붙인 이름을 말하는데, 코틀린은 아직 앨리어스가 없다. 따라서 함수 유형을 매번 중복해서 작성해야 한다는 번거로움이 존재한다.

또, 코틀린은 자바 6 바이트코드를 대상으로 하기 때문에, 자바 8의 향상된 기능들을 제공하지 않는다. 더불어 코틀린이 가지고 있는 사소한 문제 중 하나는 코틀린 표준 라이브러리가 자바 8 표준 라이브러리의 기능을 중복해 제공한다는 것이다.

마지막으로 인텔리 J (인텔리 J 아이디어는 JetBrains 사에서 제작한 상용 자바 통합 개발 환경이다. 줄여서 인텔리 J 혹은 아이디어로도 불린다.) 내부의 컴파일은 점진적이며 자바만큼 빠르지만, Gradle (Gradle은 Groovy를 이용한 빌드 시스템이다. Groovy와 유사한 도메인 언어를 채용하였으며, 현재 안드로이드 앱을 만드는데 필요한 안드로이드 슈튜디오의 공식 빌드 시스템이기도 하다. 자바, C/C++, 파이썬, 코틀린 등과 같은 여러가지 언어를 지원한다.) 을 통한 컴파일은 점진적이지 않기 때문에 속도가 느리다는 단점이 있다.

그럼에도 불구하고 업계에서는 코틀린이 18년 12월쯤이면 자바만큼 사용량이 늘어날 것으로 전망하고 있다.

직접 사용해보고 적으면 좋겠지만, 개발 능력이 안되므로 좀 더 자세한 사용 후기는 다른 분들의 글들을 첨부하기로 한다.

자바는 어떻게 될까요?

사실 미래라는게 어떻게 될지는 아무도 모르는 것이다.
자바가 당장 사라질 수도 있고 당장 사라지지 않을 수도 있다.
하지만 여전히 전 세계에서 많이 쓰이는 언어는 자바이며, 기존에 만들어진 것들을 유지보수 하기 위해서도 필요하다. 쉽게 사라지지 않을 것이다.
하지만 자바를 만든 오라클에서도 더이상 자바 사업에 힘쓰고 있지 않다.
이 얘기는 자바의 미래가 밝지 않다는 것을 얘기한다.

프로그래밍 언어의 역사는 늘 꾸준히 어떠한 하나의 언어의 단점을 보완하는 형태로 만들고 발전해왔다. 자바 역시 미래의 더 향상된 프로그래밍 언어를 위한 그 뿌리가 되지 않을까 생각한다.

부록 : 코틀린 커뮤니티

자료 출처