“프로그래밍 언어에는 두 가지 종류가 있습니다. 사람들이 불평하는 언어와 아무도 사용하지 않는 언어입니다.” — Bjarne Stroustrup.
“Java를 비판하고 불평하는 사람들은 대개 젊고, 다른 어떤 것보다 JavaScript에 더 많이 노출되어 있는 것 같습니다. JS에 비해 Java는 약간 무겁고 제한적일 수 있습니다. 보일러플레이트가 곳곳에 있고, 컴파일러가 엄격하게 적용하는 타입 시스템 등이 있습니다. 하지만 선택권이 있다면 JS보다는 최적이 아닌 Java 코드베이스를 선택할 것입니다. 의심의 여지가 없습니다.”
“수십 또는 수백 개의 파일에 분산된 코드를 다루는 실제 경험을 쌓은 후에야 Java의 소위 '제한'이 실제로는 발에 총을 쏘는 것을 막는 보호 장치라는 것을 깨닫기 시작합니다.”
“Java를 발견하고 다시 전환하는 것은 계시와도 같았습니다. 저는 Java와 그 생태계를 사랑한다는 것을 깨달았습니다. 그래서 Java 생태계에 대한 제가 가장 좋아하는 몇 가지를 적어두기로 했습니다. 그러니 누군가가 Java를 비난한다면, 그들이 왜 틀렸는지 말해줄 25가지 이유가 있습니다.”
- 성숙한 생태계
- WRITE ONCE, RUN EVERYWHERE
- 이전 버전과의 호환성 (Backward compatiblity)
- 강 타입(Strongly Typed) 언어
- 빠른 릴리스 주기, 지속적인 개선
- 좋은 IDE들
- GraalVM의 Native Image 지원
- 오픈 소스 라이브러리와 프레임워크들
- 멀티쓰레딩
- 성숙한 객체 지향
- 메모리 관리와 가비지 컬렉션
- 관찰성(Observability)과 모니터링
- 함수형 프로그래밍 지원
- 풍부한 문서
- 빌드 도구와 의존성 관리
- 강력한 테스트 기능
- 거대한 커뮤니티
- 어노테이션
- 보안 기능
- 풍부한 API 세트
- 성능
- 구조화된 병행성
- 가상 쓰레드
- Switch 문을 위한 패턴 매칭
- 문자열 템플릿