작년에 Oracle이 Sun Microsystems 인수 의향을 제시한 이후 Java 개발자 커뮤니티에서는 관리상 변화에 대한 토론과 Java 플랫폼의 미래에 미칠 영향에 대한 토론이 진행되었다.
사실 Java 기술의 발전은 최근 수년 동안 우려와 논쟁의 대상이 되었고 Java 기술 탄생 15주년을 앞두고 Java 기술이 "죽은" 기술이라고 선언하는 경우도 있었다. 그렇기 때문에 엔터프라이즈 개발자가 신뢰성과 규모 문제를 본격적으로 다루기 시작했을 때 많은 사람들이 Java 플랫폼과 라이브러리에 대한 관심이 되살아 나는 것에 놀랐다.
Oracle의 인수가 완료되고 올해에 Java 7의 공식 릴리스가 배포될 예정이기 때문에 Java 커뮤니티 리더—개발자, 아키텍트 및 분석가(회사에 소속되어 있는지에 관계없음)—의 원탁 회의를 소집할 여건이 형성되었다.
예상했다는 반응, 놀랍다는 반응 등 다양한 반응이 있었고 이러한 반응은 토론 참여자의 전문성과 Java 플랫폼에 대한 광범위한 작업을 반영하는 것이었다. 원탁 회의에 참여한 Dan Allen, Neal Ford, Andrew Glover, Richard Hightower, Mik Kersten, Christopher J. Mackie, Alex Miller, Ted Neward, J. Steven Perry에게 진심으로 감사의 마음을 전한다. developerWorks 등에 게재한 기사를 포함하여 기고자의 광범위한 배경지식에 대해 자세히 살펴보자.
참고: 토론 참여자의 관점과 의견이 IBM의 입장을 대변하지는 않는다. IBM의 현재 활동과 Java 플랫폼에 대한 자세한 정보는 Oracle Java 7 스펙을 통해 제공되는 주요 개선사항 중 일부와 IBM으로부터의 추가적인 개선사항에 대해 소개하는 Chris Bailey의 "Java technology, IBM style: A new era in Java technology"를 참조한다. IBM SDK for Java 7의 기술 팀장인 Trent Gray-Donald도 시기에 맞는 적절한 팟캐스트에서 다가오는 변화에 대해 언급한다.
토론을 시작하기 위해 토론 참여자에게 오늘날 Java 기반 개발자가 직면하고 있는 가장 중요한 과제와 최고의 기회는 무엇이라고 생각하는지 물었다. 다양한 응답이 있었지만 가장 공통된 내용은 복잡도였다. Java 플랫폼과 연관된 웹 애플리케이션 프레임워크의 복잡도로 인해 오늘날 소프트웨어 개발에 기본적으로 수반되는 과제가 더 증가한다.
Alex Miller는 "일반적인 Java 웹 애플리케이션은 사용자가 코드 작성을 시작하기도 전에 15MB 또는 20MB의 프레임워크를 사용한다!"고 말을 꺼낸 뒤 "이렇게 뒤죽박죽인 상태로 시작하는 것은 Java 개발 경력이 10년이나 되는 나에게도 쉽지가 않다."고 말했다.
Mik Kersten도 "우리가 작업하는 시스템의 규모가 계속 커지는데 우리의 뇌 용량은 그렇지가 않다."라며 동조했다.
한편 Dan Allen에 의하면 제품 인도에 대한 부담감이 지나치게 크다고 한다. 그는 "개발자는 애플리케이션의 비즈니스 로직에 기여하지 않는 코드 행을 개발하는 데 소비할 시간적인 여유가 없고 특히 해당 코드가 이미 해결된 문제를 해결하기 위한 것일 때는 더욱 그러하다."라고 말했다.
대부분의 토론 참여자는 복잡도—본질적으로는 Java 플랫폼의 생존 문제—를 해결하는 방법은 Java 기반 프레임워크, 도구 및 언어의 혁신에 달려 있다는 것에 동의했다.
Andrew Glover는 "Java가 계속 살아남으려면 실용적인 애플리케이션을 신속하게 전개할 수 있는 플랫폼으로 인식되어야 한다."고 말했다. 그는 Java 플랫폼 위에 빌드된 단순화된 엔터프라이즈 스택의 예로 Grails를 언급했다.
"Grails와 같은 프레임워크를 사용하면 Rails에서와 마찬가지로 실용적인 웹 애플리케이션을 매우 빠르게 빌드할 수 있다."고 그는 말했다.
토론 참여자들은 Java 플랫폼의 발전을 지원하는 다른 기술로는 Spring 프레임워크, Eclipse, Java 기반 클라우드 및 가상화 기술, 키/값 저장소 데이터베이스 및 Java EE 6 자체가 있다고 했다.
기술만으로 Java 개발자가 직면한 문제를 모두 해결할 수는 없지만 Java의 프로그래밍 문화도 변화해야 한다는 압력을 받고 있다.
Neal Ford는 "Java 개발자는 복잡도를 맹신하고 있다는 고정 관념이 있다."라고 말을 꺼낸 후 "개발자인 우리는 자체적으로 새로운 문제를 만들지 않고 균형있게 문제를 해결하기 위해 노력해야 한다."고 말했다.
Steve Perry도 "혁신도 좋고 나 역시 변화에 호의적이지만 소프트웨어 개발은 정말로 성장해야 한다."라며 동의했다. 그는 "소프트웨어에 대한 의존도가 더 높아지고 있는 지금, 소프트웨어 개발 방식이 개선되지 않으면 엄청난 문제가 발생할 것이다."라고 말했다.
Chris Mackie에 따르면 엔터프라이즈를 벗어난 소프트웨어 개발 활동 움직임이 Java 문화와 기술의 발전을 이끌고 있다. 그는 "작업이 증가하고 있는 아웃소싱 벤더는 다른 조직 문화와 다른 코딩 요건을 가지고 있는 다른 유형의 회사이다."라고 말하며 "매우 숙련된 Java 개발자에게도 새로운 환경으로 변화하는 것이 쉽지 않을 것이다."라고 했다.
수 개월 간의 소송 절차가 끝난 지금 Oracle은 Java의 미래를 결정할 수 있는 소유 지분을 가지고 있다. 우리는 토론 참여자에게 새로운 소유권과 관련하여 가장 중요하다고 생각하는 것이 무엇이며 Oracle의 소유 하에서 변화가 생기길 바라는지 아니면 현 상황을 그대로 유지하길 바라는지 물었다.
대부분의 토론 참여자는 Rick Hightower와 같이 기술적인 면에서는 큰 변화가 없을 것이라고 예상했다. Rick Hightower는 "Oracle은 기존의 방식에서 벗어나 Java 개발자를 힘들게 하지는 않을 것이다."라고 예상했다.
몇몇 토론 참여자는 JCP에 대한 관심을 보였으며 Oracle 체제 하에서 JCP는 계속 유지되거나 더 강력해질 것이라는 희망적인 예상을 했다. Alex Miller는 "Oracle이 Apache가 수년 동안 반대해 온 사용 영역 제한을 제거하고 Java 7 JSR을 방해하는 JCP 정체를 해결할 수 있기를 바란다."고 말했다.
Steve Perry도 "Oracle이 JCP를 계속 유지하고 JCP에 더 많이 참여할 수 있도록 하겠다는 약속이 홍보용 발언이 아니길 바란다."며 동조했다. "기업이 JCP에 참여하는 데 필요한 비용이 증가할 것인가? 개인적으로 참여하는 경우에는 어떤가?"
IDE에 대해 언급하면서 Mik Kersten은 "Java 기능, 확장성 및 사용 가능한 통합 면에서 Eclipse가 주도적인 입지를 구축하고 있는 상황을 고려하면" JDeveloper를 선택하는 것이 첫 번째 과제라고 지적했다.
또한 "Oracle이 Java가 성공하는 데 Eclipse가 얼마나 중요한지 인식하길 바란다."고 덧붙였다.
Chris Mackie는 "장기적으로 봤을 때 Oracle이 Java를 엔터프라이즈와 가까운 방향으로 이끌어 갈 것인지 아니면 Java를 클라우드로 밀어 넣을지 지켜보는 것은 흥미로울 것이다." "클라우드에 더 많은 초점을 두는 것이 커뮤니티에 이롭다고 생각하지만 Oracle이 이것을 우선 사항으로 보고 있는지 의문스럽다."고 말했다.
Andrew Glover는 "클라우드를 활용하면 하드웨어의 이동도 줄어들어 Oracle을 하드웨어 회사(Solaris가 있음)라는 흥미로운 위치에 둔다."고 말했다.
Java 기술—회사 소유권 변경 또는 오픈 소스 대체물 등장—과 관련하여 무엇이 더 중요한가에 대한 질문에 대해서는 패널의 의견의 나눠졌다.
Glover는 "개인적인 판단으로는 Java를 둘러산 동력은 소유권이 아니라 일반적으로 커뮤니티와 이 커뮤니티의 오픈 소스에 대한 기여와 관련이 있다."고 말했다. 하지만 Dan Allen은 "Java를 책임지고 있는 회사가 최종적으로 Java로 수행할 작업을 알고 있는 것"이 중요하다고 말했다.
Alex Miller는 "지금 우리는 다른 의도를 가진 새로운 사람들을 접하고 있으며 이는 Java와 JCP(Oracle의 지배 지분으로 제어)가 발전하는 방식만 변경할 수 있다." "Oracle은 Sun Java 제품에 여러 가지를 혼합하여 더 효율적으로 수익을 창출할 수 있을 것이라고 생가한다."고 말했다.
Oracle의 수익 중심 비즈니스 모델이 Java 문화의 일부 측면을 바꿀 것이라는 것은 명확해 보인다.
Ted Neward는 "많은 Java 개발자는 무료로 제공되던 것이 유료화되기 시작하는 것을 보면 불만을 쏟아낼 것이다". 그리고 "솔직히 이러한 변화는 오래전부터 다가오고 있었다."고 말했다.
3년 넘게 진행 중인 Java 7은 현재 2010년 후반에 공개될 예정이다. 우리는 클로저에 대해 여전히 논쟁할 가치가 있는지와 JDK 7가 동시성과 같은 과제를 충분히 충족할 수 있을 것인지에 대해 질문했다.
몇몇은 현장 애플리케이션 개발에 대한 Java 7의 적합성에 대해 의문을 가졌다. Andrew Glover는 "애플리케이션 서버를 제공하는 영리 회사와의 계약 때문에 아직도 Java 1.3을 사용하는 클라이언트를 상대하고 있다." "이러한 비즈니스 현실로 인해 일부 Java 영역에서는 Java 7의 채택의 요원하다."고 말했다.
Java 4와 Java 5는 흥미로운 기능을 제공했지만 "Java 7에는 흥미로운 기능이 별로 없다."고 Steve Perry는 말했다. 하지만 그는 확립된 안정적인 기술을 사용하여 작업하면 컨설턴트로서 도움이 된다고 말했다.
Glover는 동시성에 대한 가장 흥미로운 작업은 Java 7과는 독립적으로 오픈 소스, Java 기반 프레임워크 Kilim 및 함수형 언어(예: Scala) 등을 사용하여 수행된다고 언급했다.
Alex Miller는 "JSR 203은 NIO에 적합한 추가 항목이다. JSR 166에는 적절한 동시성 업데이트가 포함되어 있기 때문에 나는 아직도 JSR 310이 날짜 및 시간 정밀 검사를 수행할 수 있다고 믿는다."고 말했다.
Miller도 "invokedynamic과 매우 매력적인 새 가비지 콜렉터인 GI에 대해 적절한 작업이 진행 중이다."라며 JVM에 대해 우호적인 발언을 덧붙였다.
클로저에 대해 Miller는 "여전히 논의할 가치가 있으며 다시 사용하게 되어 기쁘다."고 말했다.
Neal Ford는 무엇보다도 클로저는 다양한 JVM 언어 사이에서 "의사소통을 위한 공통 표준 바이트코드 형식"을 제공한다고 말했다. 그는 "현재 Scala는 JRuby, Clojure 및 Groovy와 다른 내부 표시를 사용하며 자체 맞춤 형식을 가지고 있다." "하나의 내부 형식을 가지고 있으면 모든 Java 기반 언어가 동일한 내부 표시로 해석될 수 있다."고 말했다.
Dan Allen은 "Groovy의 성공은 사람들이 Java의 클로저를 원한다는 매우 좋은 징후이다."라고 말했다. 그는 또 Java에는 특성과 직접적인 필드/메소드 참조가 부족하다는 데 실망감을 표시하면서 이로 인해 유형 안정성이 낭비되거나 위반된다고 말했다.
Allen은 "프레임워크 개발자에게 매우 유용할 수 있는 수 많은 언어 정보가 컴파일 시에 손실된다." "그 예로는 Java에서 바이트코드로 이동할 때 삭제되는 메소드 매개변수의 이름과 다양한 제네릭 유형 정보가 있다."
"어노테이션은 뛰어나지만 지원해야 하는 메타데이터를 표면적으로만 다루고 있다."고 말했다.
하지만 Ford는 결국 "Java 설계자는 Java를 버전 7에서 멈춰야 한다." "당신은 하위 레벨 라이브러리를 작성할 것이며 유지보수를 위해서도 Java 언어는 하위 레벨 액세스를 위한 JVM의 어셈블리 언어와 같이 될 것이다."라고 말했다.
Miller는 플랫폼 프론트에서도 "Java는 수명 주기에서 혁신적인 변화가 일어나거나 일어날 수 있는 지점에 있지 않다.— 대부분 이와 비슷하며 예상대로 수행된다. 엔터프라이즈를 위해서도 이것은 나쁘지 않다."고 말했다.
JDK가 모듈화되어야 한다는 논쟁은 90년대 중반으로 되돌아가지만 Java 모듈 방식—또는 실현 가능한 솔루션에 대한 희망—에 대한 관심은 지난 몇 년 동안 폭발적으로 증가했다. OpenJDK 프로젝트의 일부인 Project Jigsaw는 Sun이 Java 7 릴리스에서 JDK를 모듈화하려고 한 노력을 보여 준다.
우리는 토론 참여자에게 OSGi와 관련하여 Project Jigsaw를 어떻게 생각하는지와 Project Jigsaw가 모듈화된 Java 플랫폼 및 프로그래밍 모델에 대한 요구를 충족할 수 있을 것인지에 대해 물었다.
Chris Mackie는 "Java에는 '적합한 모듈 방식 솔루션'이 없다고 생각한다." "'적합한' 모듈 방식과 관련하여 다양한 위치에 숨어 있는 매우 다양한 유스 케이스를 쉽게 인식할 수 있다."고 말했다.
모듈화에 대한 다양한 JSR을 언급하면서 Alex Miller는 "JSR 294, 277 및 Project Jigsaw를 둘러싼 전체 프로세스는 시작부터 뒤죽박죽이었다고 생각한다."고 말했다. 그는 계속해서 "참여한 사람들은 일반적으로 똑똑하고 좋은 의도를 가졌지만 최종 결과는 내가 사용하고 싶은 것이 될 것이라고 전혀 기대하지 않는다."고 말했다.
또한 "OSGi는 훌륭한 기술이지만 유일하게 사용할 수 있는 답이라고는 생각하지 않는다."고 말했다.
Ted Neward는 우리에게 필요한 것은 "버전 추적, 버전 종속성 검사에 대한 컴파일 시 지원 및 런타임 지원과 구성 요소에 대한 오픈 메타데이터 시스템을 허용하는 기능이다." 대신 Project Jigsaw는 "엔지니어가 열광한 OSGi 및 Maven의 또다른 사생아로 변했다."고 말했다.
Miller는 "Mark Reinhold와 Alex Buckley가 모듈 방식에 대해 소개한 환상이 실제로 매우 매력적이라고 생각하기 때문에 이것은 부끄러운 일이다." "모듈 정의, 종속성 관리 및 전개의 밀접한 통합이라는 개념은 CPAN, Ruby Gems 또는 Groovy Grape와 같은 시스템을 사용할 수 있게 하고 Java 소프트웨어를 빌드하고 전개하는 데 필요한 더 나은 방법을 시작한다."고 덧붙였다.
여전히 Java 플랫폼 모듈화에는 부정적인 면도 있다.
Steve Perry는 "Project Jigsaw에는 별 관심이 없다." "Project Jigsaw가 제안한 것은 내가 전혀 관심을 가지고 있지 않은 유스 케이스를 해결한다." 고 말했다.
Mackie는 "모듈 방식 솔루션은 이제 성숙 단계에 접어들었을 뿐이라는 사실은 기존 Java 애플리케이션의 많은 부분이 모듈 방식의 혜택을 받을 수는 있겠지만 모듈 방식을 반드시 필요로 하지는 않는다는 것을 제시한다." 많은 애플리케이션의 경우 "모듈 방식을 사용하면 얻는 것보다는 바로 잃는 것이 더 크다."고 말했다.
하지만 그는 모듈 방식이 모바일 환경을 위해 Java development에서 중요할 수 있다. "예를 들어, Java는 스마트폰에서 모듈 방식을 사용하지 않고 성공하기 힘들다."고 말했다.
Dan Allen은 모바일 애플리케이션에는 "JVM이 가져오는 항목이 모두 필요하지는 않다." "Sun이 JDK 모듈화에 개방적인 태도를 취했다면 Android와 Java ME는 발생하지 않았을 것이다."라고 말했다.
특정 Java 커뮤니티 권위자(몇몇은 developerWorks에 기고함)들은 Java 언어가 죽은 언어인지 아니면 COBOL처럼 죽은 언어인지에 대해 토론했다(참고자료 참조). JVM에 현재 존재하는 지나치게 많은 언어를 고려할 때 오늘날의 더 본질적인 질문은 Java 언어의 유용성 여부가 중요한가이다.
Andrew Glover는 다중 언어 VM은 "'Java가 죽은 언어이다'라는 논쟁에 점점 더 흥미를 잃게 만든다." "Java는 플랫폼이다. Java 언어에 내게 필요하거나 다른 언어에 있는 기능이 없다면 대체 JVM 언어에 해당 기능이 있을 수 있다."고 말했다.
Neal Ford는 "Java의 가장 뛰어난 점은 언어와 가상 시스템과의 완벽한 분리였다." 강력한 JVM을 통해 개발자는 "각각의 언어를 최대한 사용하여 언어를 짜맞출 수 있다."고 말했다.
Alex Miller는 OpenJDK Da Vinci Machine 프로젝트에서 실현된 것처럼 다중 언어 VM은 Java 개발자를 위한 기회만 제공하여 "언어 상호 운용성, 메타오브젝트 프로토콜 및 기타 적절한 항목에 더 많은 노력을 기울이도록 한다."고 말했다.
Miller와 다른 참여자들은 규모가 큰 엔터프라이즈 소프트웨어 기업에서 Java에 많은 투자를 하는 것을 계속 보게 될 것이라는 데 동의했다.
Dan Allen은 "Java는 이해하기에 매우 쉬운 언어이며 기업의 개발자에게 매우 적합하다."고 말했다. 과제는 Java 언어를 적극적으로 발전시켜야 한다는 것이다. 그는 "새로운 언어 기능을 제공하고 오래된 언어 기능은 사용을 중지하며 사용 중단된 항목을 제거해야 한다. Java 5 어노테이션을 사용하는 사용자 중 사용이 중단된 Java 1.1의 코드를 사용하고 있는 사용자는 없다."고 말했다.
Ted Neward도 Java 언어 설계자에게 다른 언어— C++, C# 및 Visual Basic 등—를 살펴 Java를 다시 흥미로운 언어로 만들 수 있는 새로운 기능을 찾아내도록 요구했다.
Mik Kersten은 "Java는 오브젝트 지향 프로그래밍 언어의 관점에서 훌륭한 기반을 제공한다." "그렇게 되었고 효과가 있었으며 지속적인 발전은 점진적으로 진행될 것이다. 하지만 커뮤니티로서 우리는 JVM에 대해 추가적인 혁신이 일어날 수 있도록 해야 한다."고 말했다.
VMWare가 SpringSource를 도입한 2009년 Java의 가장 강력하고 유명한 개발 플랫폼 중 하나의 주인이 바뀌었다. 우리는 토론 참여자에게 VMWare 하에서 Spring Portfolio는 어떻게 발전할 것으로 예상되는지 물었다.
VMWare 하에서 Spring은 클라우드 컴퓨팅으로 이동할 것이라는 공감대가 형성되었다. Ted Neward는 Spring이 "클라우드 개발을 수행하는 데 필요한 플랫폼이 되고 이에 따라 현재까지 지원하고 있는 엔터프라이즈 개발을 계속 지원하게 될 것이다."라고 말했다.
Mik Kersten도 동의했다. "SpringSource의 CloudFoundry에서 미래를 엿볼 수 있다. 여기서 개발자는 IDE에서 제공된 애플리케이션을 클라우드에서 전개, 디버그 및 관리한다."고 말했다.
Steve Perry는 비즈니스 애플리케이션 개발자의 관점에서 Spring은 800파운드의 대형 상자에 근접하는 지나치게 많은 것을 하려고 한다."고 말했다. 또한 개발자는 3달마다 Spring 구현을 업그레이드하지 않아도 된다고 말했다.
Rick Hightower도 Spring Portfolio가 "모든 면에서 순조롭게 성장하고 있다."고 판단했으며 "Spring Roo와 Spring STS는 'Spring 방식'으로 작업을 수행하는 좋은 예이다."라고 말했다.
새로운 Spring Portfolio 제품은 관점 지향 프로그래밍의 Spring 루트로 돌아갈 수 있다고도 덧붙였고 "아직 이를 수행하지 않은 경우에는 AspectJ 서적을 읽어보는 것이 좋다."라고 말했다.
Java 플랫폼을 오픈 소스화하는 결정은 환영할 만한 것이었으며 적어도 부분적으로는 Java 개발자 커뮤니티의 막대한 지속적인 압력으로 인한 것이었다. Apache Harmony가 먼저 나타났지만 OpenJDK가 Sun의 지지를 받았다. 두 가지 구현이 진행되는 상황에서 우리는 토론 참여자에게 Java 환경이 두 오픈 소스 Java 플랫폼 구현의 혜택을 받을 수 있는지에 대해 물었다.
Dan Allen은 "다양한 구현이 존재하면 문제에 대한 최적의 솔루션이나 특화된 요구에 맞는 솔루션을 찾을 수 있는 확률이 높아진다." "예를 들어, 한 JVM은 더 빠르게 시작할 수 있지만 다른 JVM은 오랜 기간 실행되더라도 메모리 이용량이 적을 수 있다."고 말했다.
Chris Mackie는 "어떤 의미에서는 완벽한 틈새 전략이 있다는 의미이다."라고 말했다. 하지만 그는 시간 경과에 따라 "부분적으로 경쟁하는 프로젝트를 정당화하는 것은 점점 어려워지고 있다. 이는 작성자가 아니라 작성자의 열정 또는 개인적인 욕심을 공유할 필요가 없는 증가하는 두 프로젝트의 사용자에게 해당된다."고 말했다.
그는 또한 사용자가 공유하는 것은 "ROI(투자수익률) 최대화에 대한 관심"이라고 말했다.
일부 사용자의 경우 Apache Harmony와 OpenJDK는 오픈 소스에 대해 무엇이 유용하고 무엇이 유용하지 않은지 전형적으로 보여준다.
Ted Neward는 "Java 소스를 사용할 수 있도록 하는 것은 좋은 생각이며 개인적으로는 그러한 노력을 했다는 것을 매우 기쁘게 생각한다. 하지만 착각하지 말자. 여기에 신경을 쓰는 Java 개발자 커뮤니티 중 2%는 오픈 소스 방식으로 많은 작업을 수행하지 않는다."고 말했다.
Andrew Glover는 "오픈 소스는 멋진 것이다. 특히 오픈 소스를 지원하고 혁신하는 댓가를 받는다면 더욱 그렇다. 금전적인 후원자가 있는 프로젝트는 대부분 완전히 자원 봉사자에 의존하는 프로젝트보다 더 빠르게 진행된다."고 말했다.
Rick Hightower는 기술적인 면에서 "OpenJDK와 Apache Harmony는 안전 낙하산과 같다. 이들이 존재한다는 것이 기쁘지만 둘 중 어느 것도 사용할 일이 없었으면 좋겠다. Oracle이 Java 플랫폼을 제대로 보조하여 백업 계획에 의존하지 않아도 되길 바란다."고 말했다.
영향력 있는 기업이 클라우드에 상당한 컴퓨팅 및 마케팅 자원을 집중하고 있는 상황에서 우리는 토론 참여자에게 클라우드 컴퓨팅의 상황을 현장에서 어떻게 바라보는지와 오늘날의 기업에서 클라우드 인프라를 활용하는 현실적인 방법은 무엇인지 물었다.
Ted Neward는 "2010년의 클라우드는 2008년의 가상화, 2007년의 그리드 및 2005년의 웹 서비스와 동일한 입장에 처해 있다." "치밀하지 않고 유지하기 어려우며 겉은 단단해 보이지만 실체가 없다."고 말했다.
Alex Miller도 "'클라우드 컴퓨팅'은 과대 선전 주기(hype cycle)의 유행어이다. 하지만 관련 기술은 현재 실재하며 유용하다. 실제로 내가 알고 있는 모든 개발자는 개인용 또는 공용 클라우드에서 클라우드 인프라를 사용 중이거나 지켜보고 있다."며 동의했다.
Andrew Glover는 "지금 명백한 접근 방식은 Amazon의 EC2와 같은 서비스를 테스트에 활용하는 것이다. 사용한 만큼 비용을 지불하면 되는 경우에는 테스트 인프라를 위해 미리 비용을 지불하지 않아도 된다."고 말했다.
Miller도 "대부분의 그룹은 찬반 양론에 익숙해질 때 확장성 및 성능 테스트 또는 내부 애플리케이션 전개를 통해 처음 사용해 본다."며 동의했다.
Dan Allen은 "서버를 프로비저닝하려면 상당한 오버헤드가 발생하며 서버를 유지하는 것도 부담이 된다." "모두를 분리하여 IDE에서 제어할 수 있으면 [...] 개발자는 비즈니스 로직에 집중할 수 있다."고 말했다.
일부는 개발자와 조직이 애플리케이션을 새로운 클라우드 인프라에 이식하는 데 관련된 작업을 과소 평가할 수 있다는 우려를 나타냈다.
Steve Perry는 "내 고객이 클라우드를 원한다면 정보를 찾아서 클라우드를 빌드할 것이다." "하지만 그런 일이 생기기 전에는 클라우드와 거리를 둘 것이다."라고 말했다.
Allen은 "우리는 클라우드에서 실행되도록 하기 위해 강제로 개발자들이 플랫폼, 프레임워크 및 도구를 해킹하도록 하지는 않는다."라고 말했다.
Chris Mackie도 "EC2에서 최신 엔터프라이즈 애플리케이션을 사용하는 것은 말처럼 쉽지가 않다. 즉, 클라우드에 익숙한 개발자는 단기적인 요구에 시달리고 있을 수 있다."며 동의했다.
IBM과 다른 기업은 더 나은 기술이 더 나은 세상을 만드는 데 있어 중요하다는 생각에 많은 투자를 하고 있다. 이는 단순한 가정이지만 소프트웨어 개발자는 새로운 아이디어에는 새로운 과제도 함께 수반된다는 것을 더 잘 알고 있다. 우리는 토론 참여자에게 새로운 산업에 더 똑똑한 기술을 가져오기 위해 필요한 힘든 작업과 지능적인 소프트웨어 솔루션의 혜택을 가장 많이 받을 산업이 무엇인지에 대해 물었다.
Steve Perry는 "보건과 금융(특히, 은행) 두 가지 산업이 바로 떠오른다." 두 산업 모두 "규제가 더 철저할수록 더 나은 소프트웨어 메소드가 필요하다고 믿는다."라고 말했다.
Dan Allen도 보건 산업에서의 기술 인프라 부족에 대해 언급했다. "트위터 덕분에 지구 반대편에 있는 사람들도 아침에 뭘 먹는지 공유할 수 있지만 한 달이 지난 후에도 내 아내의 병원에서 X-레이 자료를 찾을 수 없다." "여기서 핵심은 단순하다. 그것은 바로 REST와 같은 경량 웹 서비스이다."고 말했다.
Allen과 Andrew Glover는 모바일 기술에서 확장의 여지가 있음을 간파했다. Glover는 "모바일이 최선이다." "더 똑똑한 세상에서는 더 나은 정보 공유 및 효율성을 위해 모바일 컴퓨팅을 활용한다."고 말했다.
Allen은 Java 개발자의 경우 "Android를 받아들여 지원하는 것이 핵심이 될 것이다." "하지만 이것이 Java의 멀티미디어 문제점을 해결하고 표준화하는 것을 의미하지는 않는다."고 말했다.
Chris Mackie는 Java 기술이 차별성을 가질 수 있는 다른 영역을 지적했다. 그는 "오늘날 비영리 분야의 가장 특징적인 기능 중 하나는 현재 기술에서 제공하는 생산성 면에서의 혜택을 완전하게 실현하지 못한 세계적인 주요 경제 분야 중 유일하게 남아 있는 분야라는 것이다." "단순히 현재의 기술을 비영리 분야로 가져오는 것은 논란의 여지는 있지만 현재로서는 가장 큰 잠재적인 혜택이다."라고 말했다.
일부 참여자는 Ted Neward가 언급한 대로 "기존 산업의 기본적인 결함을 고치기" 전에 새로운 산업으로 확장하는 것에 대해 경고했다.
Steve Perry는 우수한 소프트웨어를 만드는 데는 시간도 걸리고 주의도 많이 필요하지만 현재 소프트웨어 산업에서는 시간도 제공하지 않고 주의도 기울이지 않는다고 말했다. 또한 그는 "우리는 높은 생산성을 원하는데, 개인적인 의견으로는 이로 인해 거의 대부분 관리상 애로사항이 발생한다."고 말했다.
Neward는 엔터프라이즈를 벗어나서도 소프트웨어가 실제로 유용하려면 품질뿐만 아니라 유용성도 개선해야 한다고 말했다. 그는 "오늘날 대부분의 소프트웨어가 수익을 내기 전에는 필요한 기타 항목을 설치하거나 소스로부터 빌드하거나 필수인 비트를 설치하기 위해 필요한 비트를 설치하는 데 상당한 자본을 미리 투입해야 한다."고 말했다.
Alex Miller는 "경쟁자보다 빠르게 기술을 빌드, 변경 및 전개할 수 있는 능력을 보유하여 대부분의 산업에 영향을 미칠 수 있는 가능성을 열어 두는 것이 중요하다."고 말했다. 하지만 그는 "Java의 접근성을 높이려면 복잡도를 관리하는 것이 중요하다."고 말했다.
오늘날 빌드된 다수의 Java 애플리케이션에 필수인 무료 오픈 소스 라이브러리, 프레임워크 및 도구의 과잉이 없는 세상을 상상할 수 있는 Java 개발자는 없을 것이다. 하지만 오픈 소스 개발의 자금 문제로 인해 전문가들에게 장기적인 실행 가능성에 대한 의문이 제기되는 경우가 있다. 우리는 토론 참여자에게 오픈 소스의 미래에 대해 질문하고 소프트웨어를 무료로 제공하지 않고 오픈 소스를 통해 생계를 유지하려고 하는 개발자와 조직에게 효과적인 방법이 무엇인지 질문했다.
대부분의 토론 참여자는 오픈 소스 소프트웨어는 당분간은 계속 생존할 것이라는 데 동의했다. 벤더는 패키지화된 엔터프라이즈 버전의 도구를 무료로 제공하면서 주로 제품에 대한 지원과 교육을 통해 계속 수익을 얻을 것이다.
Mik Kersten은 "IBM Rational®은 Eclipse를 오픈 소스 도구로 만드는 데 성공했고 해당 플랫폼을 기반으로 혁신적인 제품을 계속 판매하고 있다."고 말했다.
Andrew Glover는 성공을 원하는 오픈 소스 프로젝트에는 "지속 가능한 성장 동력"이 있어야 한다고 말했다. 오픈 소스 비즈니스 모델이 모두 성공한 것은 아니다. Glover는 "기본 제품이 상업적인 제품 제공을 지원하는 다양하고 규모가 큰 커뮤니티가 필요하다."고 말했다.
Chris Mackie는 성숙도도 중요하다고 말했다. 그는 "오픈 소스는 성숙한 수직적인 소프트웨어 시장에 매력적인 가격을 제시하기 때문에 사라질 가능성이 거의 없다."고 말했다. 실제로 Mackie는 "시간 경과에 따라 영속성 있는 오픈 소스 대체 항목에 양보하기 위한" 초기의 소유권 있는 혁신 경향에 대해 언급했다.
그는 소유권 있는 소프트웨어 벤더는 변화에 더 민감하며 자본을 더 빠르고 효율적으로 집중할 수 있다. 하지만 오픈 소스에는 인적 자본이라는 장점이 있어어 "소유권 있는 수직적인 시장 벤더보다 수적으로 압도한다."고 말했다.
Ted Neward는 "오픈 소스를 통해 수익을 창출하려면 수익 창출 방법을 찾은 뒤 오픈 소스가 어떤 식으로 도울 수 있는지 살펴보라." "순서가 바뀌면 도움이 되지 않는다."고 말했다.
그는 Oracle이 Sun을 인수한 것을 "오픈 소스를 더 늦게 채택한 기업(Microsoft와 Oracle 등)이 오픈 소스가 비즈니스에 피해를 주지 않고 어느 부분에 어떤 도움이 될지 더 잘 파악한" 증거로 든다.
Rick Hightower는 "IBM은 오픈 소스 소프트웨어를 통해 수십 억 달러의 수익을 얻었으며 오픈 소스에 투자도 많이 했다." "IBM은 오픈 소스 소프트웨어를 기반으로 수익을 얻는 방법과 이렇게 얻은 수익을 커뮤니티에 다시 돌려주는 것을 상징적으로 보여주는 회사이다."라고 말했다.
Steve Perry는 "Oracle과 VMWare와 같은 더 많은 기업이 [오픈 소스] 기술을 지원하기를 바란다."고 덧붙였다.
Java 기술은 거의 20년이나 된 기술로서 새로운 전환점에 이르렀다. Oracle이 Java 기술의 미래를 형성하는 데 중요한 역할을 하고 있지만 Java 개발 및 오픈 소스 커뮤니티의 의지와 창조성도 중요한 역할을 한다.
Java Community Process는 Oracle이 JCP의 유지와 활성화에 대한 약속을 지킬 것인지 여부와 이를 정확하게 어떻게 수행할지에 대해 의문을 가진 다수의 개발자의 실제 우려에 대한 주제로서 등장했다. 많은 개발자는 Oracle 체제 하에서 무료인 오픈 소스 소프트웨어의 모델이 미묘하게든 극적으로든 변경될 것이라고 예상하며 이러한 변화는 Java 개발자가 기술과 이 기술에 대한 기여에 어떻게 관여하는지에 영향을 미칠 것이다.
Java 기술이 성숙 단계에 접어들면서 Java 프로그래밍의 문화도 성숙되고 있다. 혁신을 위한 흐름은 끝난 것이 아니지만 프로그래밍 트렌치와 CTO와 비즈니스 관리자 사이에서 유지보수 가능성을 염두에 두고 코드를 작성해야 한다는 인식의 증가에 따라 균형을 맞춘다.
Java 플랫폼의 미래를 형성하는 또다른 원동력은 어떤 면에서는 진부한 사고 및 방식에 발목을 잡힌 상태로 산업에서 만들어 내는 기술에 대한 새로운 수요이다. Java 플랫폼이 발전하고 업계의 요구와 보조를 맞추려면 이점은 바뀌어야 한다.
이 원탁 회의에서 제시하는 한 가지 메시지가 있다면 그것은 바로 Java 기술의 미래는 흥미로운 동시에 도전적이라는 것이다. 빠르게 발전하는 기술(예: 클라우드 및 모바일 컴퓨팅)이 특정 산업(예: 보건 및 금융)과 접촉하는 영역에서 뛰어난 능력을 가진 Java 개발자의 미래는 화창한 동시에 매우 바쁠 것이다.
이제 당신 차례이다: Java 업계의 미래를 형성하는 원동력에 대한 이 원탁 회의 토론에 당신의 의견을 제시해 보자.
교육
-
"Podcast
with Trent Gray-Donald"(developerWorks, 2010년 4월): IBM SDK for Java 7 기술 팀장이
developerWorks에서 Java 7과 IBM SDK의 부가 가치에 대해 이야기 하는 것을 들어보자.
-
"Java technology, IBM style: A new era in Java technology"(Chris Bailey, developerWorks, 2010년 4월): 2010년 후반부에 출시될 Oracle Java 7 릴리스에 IBM이 어떻게 더 많은 타격을 가할지 살펴보자.
-
"OTN Tech Cast LIVE: Justin Kestelyn Interviews Mark Reinhold"(Editor's Daily Blog, Java.net, 2010년 2월): Java 7에 어떤 기능이 제공되는지와 관련된 주제에 대해 Tech Cast에서 Java SE Principal Engineer Mark Reinhold와 실시한 전체 인터뷰의 개요를 확인할 수 있다.
-
"Oracle and the Future of the JCP"(Mitchell Pronschinske, Javalobby, 2010년 2월): JCP Executive Committee의 구성원이 Oracle이 JCP 참여도를 높이려는 의도를 발표한 것에 대해 어떤 생각을 공유하는지 살펴보자.
- Pure Danger Tech: Java 7: Alex Miller가 작성한 Java 7에 대해 제안된 기능과 이러한 기능에 대한 정보의 전체 목록을 확인할 수 있다.
-
"Dead like COBOL?"(Ted Neward, developerWorks, 2008년 5월): Ted Neward는 Java 플랫폼이 사장되어 가고 있는지와 만일 그렇다면 무엇이 Java 플랫폼을 대체할지 묻는다.
-
Java development 2.0(Andrew Glover, developerWorks): 클라우드 컴퓨팅, 다중 언어 프로그래밍 및 동시성에 대한 새로운 접근 방식(예: Kilim)을 포함하여 Java development를 재정의하는 기술에 초점을 둔 일련의 기사를 확인할 수 있다.
-
Language, expressiveness, and design, Part 1"(Neal Ford, developerWorks, 2009년 7월): Neal Ford는 JVM용 동적 언어인 Groovy를 사용하여 전형적인 4가지 패턴을 고쳐 쓴다. developerWorks에 관해 Ford가 작성한 일련의 기사 중 일부, Evolutionary architecture and emergent design.
-
"The case for Java modularity"(Jeff Hanson, JavaWorld.com, 2008년 8월): Java 엔지니어가 Java 플랫폼에 모듈 방식이 왜 중요한 진화된 단계인지 설명한다.
-
Java 스펙 요청: Java 7에서 출시될 JSR을 포함한 JSR의 전체 목록을 확인할 수 있다.
- Java 플랫폼 원탁 회의 기고자: 원탁 회의는 기고자의 자질에 의해 그 내용이 충실해지며 이러한 기고자는 모두 Java 커뮤니티에서 인정하는 리더들로서 Java 기술, 문화 및 업계의 발전에 활발히 참여하고 있다.
-
기술 서점에서
다양한 기술 주제와 관련된 서적을 살펴보자.
-
developerWorks Java 기술 영역: Java 프로그래밍과 관련된 모든 주제를 다루는 여러 편의 기사를 찾아보자.
- developerWorks 클라우드
컴퓨팅 영역: 클라우드 개발의 모든 단계에서 주요 스킬을 배우고 문제를 해결하는 데 도움을 주는
developerWorks의 자원 콜렉션을 확인할 수 있다.
토론
- My developerWorks 커뮤니티에 참여하자.

Jenni Aloi는 2000년 11월부터 developerWorks Java 영역을 관리해 왔다. 그 전에는 IDG's Web Publishing Inc.의 편집장, JavaWorld.com의 선임 편집자, Coriolis Group Books의 편집자 및 ComputerPrep의 편집자로 근무하면서 교육 안내서를 개발했다. 거의 모든 일에 대해 불평을 잘 하는 편이지만 자신이 가장 잘하는 일을 20년 가까이 한 것에 대해서는 만족하고 있다. 그것은 바로 고양이를 키우는 것이다.

Athen O'Shea는 첨단 기술 분야의 편집자 및 저자이며 JavaWorld.com의 전직 편집자였다. 프리랜서로 일하면서 2001년부터 developerWorks 관련 업무를 수행해 왔다.