2024 11 05
2024-11-05¶
Java / Kotlin / Scala¶
참고: https://okky.kr/articles/424642
- 개요
- Scala: 아카데미에서 설계 -> 함수형 프로그래밍과 다른 패러다임 간의 하이브리드
- Kotlin: 소프트웨어 회사에서 출발 -> 실용적
- Java에 문제라도?
- 많은 사람이 사용중이라, 설계자는 뭔가 잘못되어도 근본을 바꾸기 어려움
- Why Scala & Kotlin?
- Kotlin: Java의 개선판 => "필요한" 모든 것 제공
- Scala: 철학이 다름 => "원하는" 모든 것 제공
- Java vs Scala/Kotlin
- 객체지향: 자바에서는 숫자 primitive, 스칼라/코틀린은 모두 객체.
- 함수형
- 코틀린은 람다/고차함수 지원하나, 함수형 프로그래밍 패러다임 완전히 지원은 X
- 스칼라는 함수형 지원: Currying/memoization/partial application/type classes 등도 모두 지원
- 자바보다 생산성 우위를 가지는 것들
- 타입 추론/싱글톤/데이터 클래스 생성
- [Kotlin]
- null-safety, smart casts(새로운 유형으로 자동 캐스팅) 와 같은 흥미로운 지원
- 해당 변수가 실제로 해당 타입의 변수인지 여부 확인
- null-safety, smart casts(새로운 유형으로 자동 캐스팅) 와 같은 흥미로운 지원
- [Scala]
- 함수형, 객체지향적 모든 기능 제공.
- 많은 자유와 기회 -> 코드가 목적이 명확하지 않게 될 수도 있음
- 자바와 상호운용성
- [Kotlin]
- 자바와의 호환성 유지를 위함.
- [Scala]
- 호환이 쉽지만은 않다
- [Kotlin]
- 철학
- [Kotlin] : 더 나은 자바
- 람다, 기본 기능, null 없는 처리 등 Syntatic Sugar
- [Scala] : 자바보다 훨씬 더 많은 것
- 자바가 못하는 것을 할 수 있도록 설계
- 고급 함수 프로그래밍 훌륭한 지원
- 복잡성 증가, 사용하기 어려워져...ㅜ
- [Kotlin] : 더 나은 자바