달빅으로 jvm을 대체할 수는 없을까요?
2013.02.17 18:48
제목대로인데요. 얼마 전 ---오러클의 괘씸한 행태로 말미암아 --- java생태계가 죽어가고 있다는 탄식의 글이 올라왔었죠? 뭐 저야 인문계지만 코딩으로 업을 삼으시는 여러 회원님들께서는 인생이 걸린 문제겠네요.
제가 궁금한 것은, 달빅으로 jvm을 대체하여 언어로서의 java를 오러클로부터 떼어내 다룰 수는 없겠느냐 하는 겁니다. 물론 현재 오러클의 (1심에서 패한 현재로서는 가망없어보이는) 소송이 진행 중이기는 하지만, 여기서 오러클이 완전 지고 자바의 핵심 api를 사용하는데 법적인 문제가 없어진다는 가정 하에서요.
이미 달빅은 모바일 플랫폼에서는 jvm보다 널리 퍼져있다고 보이고요. (애플도 java를 그리 달가워하는 것 같진 않네요.) 데스크탑에서는 언제나 자바는 죽을 쑤는 편이었죠. 요즘 웹 클라이언트 쪽에서는 ---이름만 같을 뿐 java와 별 상관없는--- javascript가 java applet의 역할을 대부분 떠맡게 된 듯 하고요.
문제는 서버쪽에서 java가 하는 역할이 많다는 것일 텐데, 서버 쪽에 설치된 jvm을 달빅으로 대치하고 소스 수준에서 혹은 바이트코드 수준에서 리컴파일링할 수는 없나요? 뭐 만문에 올릴 수도 있는 글인데, 답이 궁금해서라기보다 (정답은 없을 것 같아서요) 그쪽 업에 종사하시는 분들의 의견을 들어보고 싶어서 여기 올렸습니다. 글치만 태클거시면 만문으로 옮길께용 :-)
추신: 아 그러고 보니 server side java를 위한 api를 dalvik에 포함시켜 줘야 하긴 하겠네요.
코멘트 8
-
purity
02.17 19:22
-
꼬소
02.17 19:42
실상 C로 밥 벌어 먹고 있지만, 요즘 java에 대한 호들갑은 괜한 오지랍 같습니다..
오라클 행실이 좋지 못하고 mySQL과 java를 물에 밥말아 드시듯 말아 드시고 있으시지만...
그렇다고 개발자 죽는 소리 나오는건 아니거든요..
딱이 이 동네가 아니다 싶으면 개발자들이 먼저 움직일 것이고, 대체 할만한 언어는 많습니다..
(성능이랑 효용성 그리고 생산성은 좀 떨어 지겠네요... 더불어 개발자의 귀차니즘의 증가...)
그리고 오라클이 굳이 성숙한 시장을 죽일만큼 바보도 아니라고 봅니다...
-
에스비
02.17 19:44
댓글을 달려고 하니 역시 purity님께서 먼저 자세히 설명해 주셨네요. : )
Java 태생이 Sun이다보니, Oracle이 똥을 싸더라도 Java가 순식간에 망가질 일이 없도록 여러 장치가 마련돼 있습니다. 당장에 OpenJDK만 해도 상당수준 발전해 있고요. 차차 저물어 간다고는 할 수 있겠지만, 당장 수년 내에 가시적으로 판도가 바뀔 것 같지도 않고요. 물론 10년 후에는? 이라는 조건을 단다면, 과거보다 더 어두워보이는건 어쩔 수 없습니다.
이미 상용 JVM도 많고, 굳이 Dalvik같이 "같지도 않은 JVM"을 쓸 이유는 없습니다.
또한 Oracle이 싫어서 Google을 쓰겠다는 것도.. 똥 먹기가 싫어서 설사를 먹는 꼴이라 생각하고요.
Google이 자사 플랫폼 강요가 심하고, 차츰 플랫폼 강요가 심해지고 있어서, 고운 시선으로 바라보진 못하겠더라고요.
-
언이아빠
02.17 19:54
흠 역시 전공이 아닌 것에 궁금하다고 나서는 것이 아니었어. ㅠ.ㅠ 전공인 논리학이나 귀납추론이나 붙잡고 있어야지... 암튼 잘 정리해주셔서 감사합니다.
-
언이아빠
02.17 19:59
위키피디아를 보니 openjdk의 현황이 잘 정리되어 있네요 :-)
-
purity
02.17 20:04
아이고 이런 지금 읽어보니 꽤나 거칠게 혹은 교조적으로 쓴 댓글인 듯 합니다 ㅠㅠ;;; 부끄럽네요 ㅠㅠ;;;
매우 많이 알려진 테크 이슈이다 보니 그의 반대급부로 조금 깊게 들어가다보면 장황설이 되어버리고 마치 무엇인가 알리려는 듯 보이게 됩니다. 이점은 무엇보다도 제 일천한 글 솜씨와 지식이 원인입니다.
부디 너그러운 용서와 이해를 부탁드려봅니다.
-
언이아빠
02.17 20:07
아뇨 덕분에 궁금하던 것은 말끔히 알게 되었네요. 비록 제 밥벌이와 관련된 것은 아니지만 상식 차원에서 알아두는 건 좋네요 :-)
-
해색주
02.17 21:13
달빅을 걷어 내자는 말이 많은데, 여기는 좀 다른 관점으로 보는군요. 아흥, 내가 일하는 분야에서 자바가 대세라서 시간 날때 배워볼려고 했더니만.
외람되지만... 방향을 조금 잘못 잡으신 것 같습니다.
실무의 개발자들은 적어도 그다지 걱정하지 않는다고 단언해도 될 것 같습니다. 언어는 수단이지 그 자체가 목적이 되지는 않거든요. 이 부분은 실무를 하는 이들과는 다른 방향에서 과장되는 느낌이 적잖이 있습니다. 또한 실제 많은 방법론들이 설명될 때 특정 언어를 이용하는 경우도 있지만 가상의 언어, 즉 Pseudo Language로 기술되는 경우도 많습니다. 즉 언어를 환경으로서 받아들이지 그 자체를 목적으로 삼는 경우는 심화될 수록 논외가 되어버립니다.
Dalvik VM은 안드로이드의 VM으로 자바의 일정 부분을(어디까지나 개발사의 말 그대로라면) 포함하고 있는 안드로이드의 프론트엔드 환경일 뿐 입니다. 즉 여러 곳에 쓰이는 범용의 VM이 아닌데다 유일한 대체 VM도 아닙니다(비교적 흔한 사례로는 블랙베리 역시 고유의 VM을 제공하고 Java로 개발합니다). 또한 점유율 측면에서도 다르게 접근하셔야 할 것 같습니다. 예를 들어 합계 10,000대 팔린 10개 기기보다 합계 1,000대 팔린 100개의 기기를 대상으로 하는 것이 산업 지배력은 더욱 높을 수 있습니다.
이미 자바는 OpenJDK라는 훌륭한 탈 오라클 기반을 가지고 있으며 Oracle JVM외에도 JVM은 실상 많은 종류가 더 있습니다(심지어 대부분 상용으로). 오라클에 인수된 Web Logic이 채용하고 있는 JRockit 같은 것은 개발자들이 매우 자주 접한 사례가 될 것입니다. JVM의 정의와 실 구현이 반드시 동일한 것은 아니며(심지어 JVM은 자바 그 자체만을 타겟으로 하지도 않습니다). 제기하신 주제에 대하여서는 OpenJDK로 이미 충실히 개방화되었다고 할 수 있고 빌드된 결과물이 돌아갈 VM 역시 매우 많은 수가 존재합니다.
오라클이 까여야 하는 부분은 Java 표준화를 이끌어가야 하는 처지에 전진 의욕이 성실하지 않다는 것과 빠르게 대응하지 못한 오라클 JVM 들인데 이중에서 후자는 따지고 보면 매우 마이너한 문제일 수도 있습니다. VM이 문제가 아닌 자바 자체의 지속가능성을 보증하지 못한다는데 개발자들은 비난의 초점을 맞추고 있습니다. 궁극적으로 오라클은 정의자의 입장에 서기 시작해 점진적으로 표준화 기관에 정의 권리 자체를 넘기며 VM의 개발과 분리되어야 한다는 시각들은 여기에서 부터 출발합니다. 실상 이러한 작업은 Sun이 이미 시작했었으나 오라클은 제자리 걸음은 고사하고 후퇴하고 있으니 열받는 것이지요.
요약하면...
1) 자바 비관론에 대한 개발자들과 주변인들간의 간극과 시선 방향의 차이가 큽니다.
2) 시장 점유의 측면을 다르게 볼 필요가 있습니다.
3) Dalvik과 같은 VM은 환경의 일부 일 뿐 그 자체가 자바를 정의하지 않으며 이미 많은 VM들이 존재합니다.
4) Java 환경의 탈 오라클 대체제는 OpenJDK와 다수의 오픈소스/상용 VM 등 이미 많이 존재합니다.
5) 오라클이 진정으로 해야할 일은 JDK/JRE를 개발하고 배포하는 것이 아닙니다.
등등입니다.