The Modern Java Platform - 2021년판
(jamesward.com)자바 플랫폼의 현재
- 3개의 Top-20 프로그래밍 언어 : Java, Scala, Kotlin
- 전문적이고 성숙한 개발도구 : IntelliJ IDEA/VS Code, Gradle/Maven/sbt
- 생산적인 프레임워크 : Spring Boot, Micronaut, Quarkus, Play, ZIO
- Reactive Request : R2DBC, sttp, Quill
- Reactive Event-Driven / Streaming : Akka, ZIO streams/Flink//ksqlDB/Spark
ㅤCommand Query Responsibility Segregation (CQRS), Event Sourcing (ES), Conflict-free Replicated Data Types (CRDTs)
- Containers : Dockerfile/Jib/Buildpacks, OpenJDK 기반 이미지들(AdoptOpenJDK), Distroless Java image
ㅤSpring Boot Containerization, Micronaut Containerization (Gradle | Maven), Quarkus Containerization
- Serverless 와 JVM 오버헤드 피하기 : GraalVM Native Image
- Fear, Uncertainty, Doubt, and Governance : OpenJDK는 멀티벤더/분산형 거버넌스 구조를 가진 정규 오픈소스 프로젝트임(대부분의 경우 다른 오픈소스 프로그래밍 환경들과 비슷)
- The Future : Java 에코시스템은 여러방향으로 혁신을 계속 하는 중. 언어측면에서 Java, Kotlin, Scala가 다른 방향으로 나아가고 있지만 효과는 어느정도 공유됨
ㅤ예를 들어
ㅤㅤ→ Scala의 패턴 매칭은 프로그래밍 언어들중 최고라서 이게 Kotlin 과 Java에 더 좋은 패턴 매칭을 유도하는데 도움이 되었음
ㅤㅤ→ JVM은 가비지 컬렉션 및 성능관련해서 엄청난 혁신을 보였고
ㅤㅤ→ Project Loom(JVM위에서 fiber 와 continuation)이 더 성숙해지면 Reactive Programming이 더 쉬워질 것
ㅤㅤ→ GraalVM은 놀라운 기술이고
ㅤㅤ→ Netty 는 이미 io_uring(완전 비동기식 Linux 시스템 호출) 지원 작업을 시작했음
ㅤㅤ→ CRDT 와 CQRS를 통한 분산 데이터가 Cloudstate 같은 프로젝트에서 모멘텀을 얻기 시작