•
완벽한 언어는 없다. 모든 언어가 각각 장단점을 가지고 있다.
•
자바는 1995년 첫 베타 버전이 공개된 이후로 커다란 생태계를 성공적으로 구축했다. 어떻게 그러한 성공을 거둘 수 있었는지 한번 살펴보자.
1. 프로그래밍 언어 생태계에서 자바의 위치
•
자바는 처음부터 많은 유용한 라이브러리를 포함하는 잘 설계된 객체 지향 언어로 시작했다. 스레드와 락을 이용한 소소한 동시성도 지원했다.
•
코드를 JVM 바이트 코드로 컴파일하는 특징 때문에 자바는 응용 프로그램의 주요 언어가 되었다.
•
최근 들어서는 프로그래머는 빅데이터라는 도전에 직면하면서 멀티코어 컴퓨터나 컴퓨팅 클러스터를 이용해서 빅데이터를 효과적으로 처리할 필요성이 커졌다.
⇒ 즉 병렬 프로세싱을 활용해야 하는데, 지금까지의 자바로는 대응이 힘들었다.
◦
자바 8은 더 다양한 프로그래밍 도구와 다양한 프로그래밍 문제를 더 빠르고 정확하며 쉽게 유지보수할 수 있다는 장점을 제공한다.
◦
자바 8에 추가된 기능은 자바에 없던 완전히 새로운 개념이지만 현재 시장에서 요구하는 기능을 효과적으로 제공한다.
2. 스트림 처리
•
조립라인처럼 Stream API는 파이프라인을 만드는 데 필요한 많은 메서드를 제공한다.
•
또한 스레드라는 복잡한 작업을 사용하지 않으면서 공짜로 병렬성을 얻을 수 있다.
3. 동작 파라미터화로 메서드에 코드 전달하기
•
동작을 파라미터화 해서 전달 가능하다. 함수형 프로그래밍 기술을 이용한다.
4. 병렬성과 공유 가변 데이터
•
병렬성을 공짜로 얻을 수 있지만 이를 얻기 위해 포기해야 하는 점이 있다. 안전하게 실행할 수 있는 코드를 만들려면 임계 영역에 접근하지 않아야 한다.
•
이런 함수를 순수 함수, 사이드 이펙트가 없는 함수, 상태 없는 함수라 부른다.
5. 자바가 진화해야하는 이유
•
언어는 하드웨어나 프로그래머 기대의 변화에 부응하는 방향으로 변화해왔다.
•
새로운 기능이 생길수록 다른 언어가 담당하던 생태계 영역을 자바가 정복하며 자바 프로그래머들에겐 많은 기회가 생길 것이다.