2. 코틀린은 간결하고 실용적이다.
4. 코틀린은 기존 자바 라이브러리나 프레임워크와 함께 잘 동작하며, 성능도 자바와 비슷한 수준이다.
완전한 대체 언어를 제공하는 것이다.
정적 타입 지정이란? 모든 프로그램 구성 요소의 타입을 컴파일 시점에서 알 수 있고
프로그램 안에서 객체의 필드나 메소드를 사용할 때마다 컴파일러가 타입을 검증해준다는 뜻
동적 타입 지정이란? Groovy, JRuby가 대표적인 동적 타입 지정언어이다. 타입과 관계없이
모든 값을 변수에 넣을 수 있고, 메소드나 필드 접근에 대한 검증이 실행 시점에 일어나며,
그에 따라 코드가 더 짧아지고 데이터 구조를 더 유연하게 생성하고 사용할 수 있다.
8. 자바와 달리 코틀린에서는 모든 변수의 타입을 프로그래머가 직접 명시할 필요가 없다.
10. 코틀린은 타입 추론을 지원하므로 직접 타입을 선언해야 함에 따라 생기는 불편함이 대부분 사라진다.
12. 함수형 프로그래밍의 핵심 개념
first-class 함수 란?
- 함수를 변수에 저장하거나 일반 값처럼 다룰 수 있다. 함수에서 새로운 함수를 만들어서 반환할 수 있다.
Immutability(불변성) :
- 함수형 프로그래밍에서는 일단 만들어지고 나면 내부 상태가 절대로 바뀌지 않는
불변 객체를 사용해 프로그램을 작성한다.
No side-effect(부수효과없음) :
- 입력이 같으면 항상 같은 출력을 내놓고 다른 객체의 상태를 변경하지 않으며,
함수 외부나 다른 바깥 환경과 상호작용하지 않는 순수 함수를 사용한다.
- 간결성, 강력한 추상화, 다중 스레드를 사용해도 안전함, 또한 테스트를 하기 쉽다.