2009년 12월 수정 : Java 7에 클로저를 도입하기로 했네요.(
http://www.yunsobi.com/blog/513 )
2010년 초반 출시를 목표하고있는 Java 7의 기능을 Java SE의 수석 엔지니어 Mark Reinhold가 Devoxx에 게시한 이후 여러 반응이 나오고 있습니다. 비록 그의 발표가 완전히 결정나지 않은 사항에 대한 잠정적인 내용이라곤 해도 커뮤니티 - 특히
클로저(Closure)의 누락을 주시하는 - 의 반응은 대단합니다.
Mark의 소식을 전한 Hamlet D'Arcy는 그의 블로그에
Java 7 Update from Mark Reinhold at Devoxx란 제목으로 Devoxx에 발표한 Java 7 중요한 새로운 기능을 요약해 올렸습니다.
모듈화 - JSR-294와 Project Jigsaw.
JSR 292 - JVM의 dynamic language 지원
JSR 203 - 진정한 비동기 I/O( non blocking I/O가 아닌)로 구현되는 더 새로워진 I/O API
JSR TBD - 아래에 기술하는것 같은 약간의 언어적 변화
- 안전한 rethrow
- Null dereference 표현식 : '?' 신택스를 이용한 Null 체크
- 향상된 타입 추론
- Multi-catch : catch 절에 ','를 이용하여 다수의 Exception 기술
JSR 296 - 스윙 어플리케이션 프레임워크
6u10 기능들의 개선(자바 커널, 퀵스타트,플러그인 등)
위 내용과 함께, 심사숙고했지만 Java 7에 포함되지 않을 몇몇 기능도 언급했습니다.
Closure - 의견을 통일하지 못해서.
구상화 제네릭 ( Reified generics )
퍼스트 클래스 프로퍼티
연산자 오버로딩
BigDecimal Syntax
JSR 295 - Beans Binding
이에대해 Java.net 에는 "
Java 7에서 제외된 아래 기능 중 당신이 가장 관심을 두고 있는것은 무엇?"이란 주제로 투표가 진행되고 있습니다.
많은 이들이 Closure의 부재에 대해 관심을 갖고 있군요.
Ricky Clarkson같은 사람은 극단적으로
Closure없이는 자바는 죽을 것이라고까지 표현하고있습니다.
So it's confirmed. Despite James Gosling wanting closures, despite 3 working closure prototype compilers, despite every other JVM language supporting closures, Java 7 will not have closures.
Martin Kneissl 역시
Java7에 Closure가 빠진것을 아쉬워하는 사람 중 하나입니다.
It should have closures instead of the new style "for" loop added in Java 5. It should have closures in Java 6. Now it seems that it will not get closures in Java 7. Closures are not that difficult to understand. At least when you compare them to anonymous inner classes in Java. Others disagree. I don't follow the reasoning of the closure opponents when they say that because there are stupid Java programmers out there you should limit the Language trying to prevent them from doing too much harm. That's just impossible. Incompetent programmers will shoot themselves in the foot in any language. Fortunately there are other languages on the JVM that can use the real strength of Java: libraries, portability, and (to some extent) tooling.
이 외에도 정말 많은 개발자들이 자바언어의 Closure 미 지원을 아쉬워합니다.
이번 발표와 커뮤니티의 반응을 통해 너무나 많은 개발자들이 클로저를 원하고 있다는 사실을 알수 있었습니다. 아직 Java 7의 모든 기능 확정되지 않은 상황이기에 커뮤니티의 반응에따라 기능이 추가될 여지도 배제할 순 없지만 개인적으로도 개발의 편의성을 고려하여 언어차원에서 클로저를 지원하면 좋겠다는 생각입니다.
현재 한국 자바 개발 현장에선 1.4가 주류를 이루고 있다고 보여지고 많지 않은 곳에서 1.5 이상이 쓰이고 있는 현실에 비추어보면 1.7이 현장에서 침투하기까진 적지않은 시간이 필요하겠지만요..
Closure에 대해 관심을 갖으신 자바개발자라면 "Neal Gafter의
자바를위한 클로저 프리젠테이션" 을 훑어 보시는것을 추천합니다.