Kotilin(코틀린)은 IntelliJ IDEA(인텔리 제이)를 만든 JetBrains사에서 프로그래밍 언어이다.
Android(안드로이드)나 Spring-boot(스프링 부트)같은 인텔리제이 기반으로 만들어지는 프로그램들을 사용할 때 사용할 수 있으며,
2019년 안드로이드는 어플리케이션 개발 공식언어로 코틀린을 채택하기도 했다.
그래서 자바로 개발을 못하나? 하면 그것도 아니다
2010년 초반 당시에 자바로 개발하는 안드로이드 개발자는 많았다
비용적인 측면이나 익숙함, 그리고 개발의 편의성 등 안드로이드로 시작하는 앱 개발자도 많았다.
내 입장도 그러했었다.
지금도 자바로 개발된 안드로이드 프로그램은 많고, 사용하는 사람들도 지금은 코틀린이 더 우세하긴 했어도 자바는 명백하게 좋은 언어다.
코틀린은
자바의 단점을 보완하는 형태로 계속 발전하며 성장해왔다.
자바의 장점
1. 메모리 관리를 알아서 해준다.
2. 오류가 발생했을 때 도와줄 커뮤니티가 많다. ( 스택, 블로그 등)
3. 이용한 운영체제의 독립성을 가질 수 있다. ( OS 호환성 )
4. 여러타입을 호출할 수 있는 제네릭 타입 ( 형변환 자유로움 )
5. 이외의 개발의 편의성 (객체타입에 따른 속성 힌트)
6. 자동적으로 사용안하는 변수 및 함수 제거 후 컴파일
7. 멀티스레드를 사용하여 다양한 작업을 동시 수행 가능
8. 컴파일할 파일만 수정할 수 있는 유지보수성
등등 다양한 장점이 있지만, 이건 자바와 100% 호환되는 코틀린도 마찬가지다
코틀린 장점
0. 자바코드를 코틀린으로 자동으로 변환해 줌으로
자바 개발자는 코틀린 기본 학습에 어려움이 덜함
1. 자바클래스도 사용가능한 호환성
2. 타입을 지정 안해줘도 되는 변수
3. null을 허용하지 않기에 오류 줄일 수 있음 - 자바의 NPE를 예방
4. 간결한 코드 ( 세미콜론, 중괄호 생략 등)
5. IOS 개발 가능 ( 멀티플랫폼을 이용해서 운용할 수 있다는데, 이건 나도 잘 모름 )
6. 읽기 쉬운 코드
단점을 써봤자 뭐할 것인가?
내가 원하는 답에 맞는 언어를 사용하는 게 중요하다고 생각한다.
이런저런 이야기가 있지만, 우리가 기업 걱정할 일은 아니듯 자바를 선택하거나 코틀린을 선택하거나 모두 그 사람의 몫이다.
하지만, 자바 개발자를 뽑는 회사가 이젠 적어질 수 있다는 것도 걱정해야할 것이다.
내가 지금 다니는 회사는 자바 개발자를 뽑았지만,
예전에 코틀린을 찍먹했던 나한테는 코틀린 개발로 역량을 높이고 싶다.
이 다음 회사는 코틀린 개발자를 뽑는 곳을 가거나 요즘 내가 하고있는 Dart개발쪽 flutter로 갔으면 좋겠다.