Sun의 Java Platform Team의 Fellow인 Graham Hamilton와의 인터뷰에서 Java Technology의 가장 큰 위협이 무엇이냐는 질문을 던졌다.
Hamilton은 호환성(compatibility)가 깨지는 것을 가장 큰 위협으로 꼽았다. 각 벤더(vendor)들이 좀 더 빠른 제품 출시나 자신들만의 특수한 요구 사항으로 인해 다른 벤더와의 호환성을 깨뜨리거나 API의 일부만 잘라내서 사용할 경우 단기적으로는 제품 판매에 있어서 이익을 볼 수 있으나 이는 자바의 가장 큰 장점인 Portability를 잃게 만든다는 것이다.
Q. One final question. What is the biggest risk that you see facing the Java language today?
A. I think one of the key core values of the Java platform is compatibility. We aren’t always perfect, but we do go to great lengths to try to make programs portable across different J2SE systems or across different J2EE app servers. I wouldn’t go so far as to say compatibility is “at risk” but I think this is something we will always have to watch very closely.
“I suspect that the Java language will be good for another 20 to 30 years if we are careful in managing its evolution.”
There is always a temptation for each individual vendor to cut corners on compatibility. If someone can get their product out a little faster by skipping a few features or failing a few tests, I can understand that temptation. But we are all in this together. If each vendor cherry-picks the set of features that they want to implement, then we will end up with a fragmented platform where there is no real application portability. Fortunately, all of the major vendors understand the benefits of strong compatibility, but at the same time, no one wants to be unfairly disadvantaged.
One of the strengths of the Java Community Process is that it has very strong requirements around compatibility which are binding on all participants. This helps reassure the vendors that they are all held to the same standards. So it may take work to achieve compatibility, but all participants face the same work. And as developers, this means we benefit from a wide range of competing, but compatible, Java implementations!