Kotlin In Action 01 - 코틀린 철학
in Programming Language on Kotlin
프로그래밍 언어, 프레임워크를 공부하다 보면 왜 배워야 하는지, 어떤 목적으로 만들어졌는지에 대한 생각이 가장 많이 난다. 굳이 왜 잘쓰고 있는 자바를 대체하면서 Kotlin으로 마이그레이션을 하는지 궁금했다. 그래서 Kotlin in Action이라는 책을 읽으며 왜 Kotlin을 써야하는지 어떤 부분에서 좋은지 알고 싶었다. 회사에서 안드로이드 개발도 해야하니 Kotlin을 주언어로 써야하기도 한다. (사실 이게 가장 큼)
실용성
코틀린은 실전 문제를 해결하기 위해 만든 실용적인 언어
코틀린은 연구를 위한 언어가 아니기 때문에, 최신 프로그래밍에 앞서 채택하지 않고, 다른 프로그래밍 언어가 채택한 이미 성공적으로 검증된 해법과 기능에 의존한다고 한다. 이러한 장점이 언어의 복잡도가 줄어들고 이미 알고 있는 기존 개념을 통해 쉽게 배울 수가 있다. 기존 자바의 라이브러리 기능을 그대로 사용할 수 있다는 말 인 것 같다.
코틀린은 어느 특정 프로그래밍 스타일이나 패러다임을 사용하는 것을 강제로 요구X
코틀린을 처음 배우는 사람은 자바에서 사용해 온 익숙한 프로그래밍 스타일이나 기법을 활용할 수 있고, 나중에 코틀린의 강력한 특성을 발견하고 적응 해나가 더 간결한 코드를 작성하라고 한다.
간결성
코틀린은 코드가 더 간단하고 간결할수록 내용을 파악하기 더 좋다
어떤 언어가 간결하다는 말은 그 언어로 작성된 코드를 읽을 때 의도를 쉽게 파악할 수 있는 구문 구조를 제공하고, 그 의도를 달성하는 방법을 이해할 때 방해가 될 수 있는 부가적인 준비 코드가 적다는 뜻이다.
코틀린은 boiler plate 코드를 줄임
코틀린은 Setter, Setter, Constructor 묵시적으로 제공하기 때문에 코틀린 소스코드는 boiler plate 코드를 줄였다고 한다.
안정성
JVM에서 실행되는 정적 타입 지정 언어
JVM을 사용하면 메모리 안전성을 보장하고, 버퍼 오버플로우를 방지하며, 동적으로 할당한 메모리를 잘못 사용함으로 인해 발생할 수 있는 다양한 문제를 예방할 수 있다.
컴파일 시점 검사를 통해 오류를 더 많이 방지
NullPointerException을 없애주기 위해 노력했다고 한다.
코틀린의 타입 시스템은 null이 될 수 없는 값을 추적하며, 실행 시점에 NullPointerException이 발생할 수 있는 연산을 사용하는 코드를 금지한다.
ClassCastException을 방지해준다.
코틀린은 어떤 객체를 다른 타입으로 캐스트하기 전에 타입을 미리 검사하지 않으면 ClassCastException이 발생한다.
상호운용성
코틀린은 자바 표준 라이브러리 클래스에 의존하기 때문에 자바와 상호운용성이 좋다.
자바와 코틀린 소스 파일을 자유롭게 내비게이션 할 수 있다. 자바 메서드를 리팩터링 해도 그 메소드와 관련 있는 코틀린 코드까지 제대로 변경된다. 역으로 코틀린 메소드를 리팩토링해도 자바 코드까지 모두 자동으로 변경된다고 한다.
가자 Kotlin Deep Dive~~