자바가 JVM을 통해서 기기에 무관하게 동일한 결과를 보여주는게 흥미로운데요
JVM을 거치니까, 속도가 문제 있어 고사양 게임이 어렵다는것 까지는 이해가 가는데
한글과 컴퓨터의 한글과 같이 이런 프로그램들은 왜 자바로 만들지 않을까요?
고사양이 요구 되지도 않는것 같은데, 자바로 한번 딱 만들어서 리눅스 윈도우 맥 이렇게 배포하면
될듯한데, 초보된 입장에서는 이해가 안되서 여쭤보고싶습니다.
자바가 JVM을 통해서 기기에 무관하게 동일한 결과를 보여주는게 흥미로운데요
JVM을 거치니까, 속도가 문제 있어 고사양 게임이 어렵다는것 까지는 이해가 가는데
한글과 컴퓨터의 한글과 같이 이런 프로그램들은 왜 자바로 만들지 않을까요?
고사양이 요구 되지도 않는것 같은데, 자바로 한번 딱 만들어서 리눅스 윈도우 맥 이렇게 배포하면
될듯한데, 초보된 입장에서는 이해가 안되서 여쭤보고싶습니다.
우리나라에서 리눅스 운영체제를 많이 사용하지 않아서가 아닐까요? 단순한 저의 생각 ㅎ
이미 작성한 코드를 재작성하는게 그렇게 쉽지 않기 때문입니다.
한글은 아마 최소 수십만 라인인데, 이걸 다 바꾸려면…?
모든 프로그래밍은 버그를 낳습니다. 단순히 언어를 바꾸는 것도 마찬가지입니다.
즉, 자바로 바꾸면서 "코드 재작성 시간 + 새로 생겨난 버그 처리 + 플랫폼별 테스트 + …" 를 할 시간, 인력, 비용을 고려해야 합니다.
CEO의 어지간한 결단이 아니고서는 자바 적용은 일어나지 않을 것입니다.
또한 자바는 만능이 아닙니다. 간단한 프로그램에서야 write once, run anywhere 이지, 실제로 여러 플랫폼에서 제대로 동작하려면 플랫폼 별로 한 번 쯤은 고려해야 할 사항이 나옵니다.
큰 문제중에 하나가 jvm이 기본적으로 깔려 있지 않다는게 문제 입니다. 맥은 잘 모르겠고 윈도우즈나 리눅스나 jvm을 따로 깔아야 합니다. 사용자들이 이런걸 싫어하지요. 제대로 못하기도 하고. 제 개인적인 경험으로 두 환경 다 jvm 까는 거 상당히 귀찮습니다.
그리고 자바로 만든다고 저절로 리눅스, 윈도우즈, 맥에 똑같이 [b:1wnsuf8r]보여지는[/b:1wnsuf8r] 프로그램이 되지는 않습니다. 각 플랫폼에서 제공하는 그래픽 툴킷이 다르기 때문에 그 부분에 대한 추가적인 작업을 고려하면 그냥 다른 언어로 만드는 것과 큰 차이가 없지 않을까 합니다.
또 다른 이유는 자바로 만들어진 데스크탑용 프로그램들의 반응 속도가 다른 프로그램들에 비해 둔한 편입니다. 제 생각에 멀티 플랫폼 데스크탑용 프로그램을 만들어야 한다면 1순위로 기피해야 하는 언어가 자바 입니다. 만드는 사람 입장에서 어떤 장점이 있을진 몰라도 쓰는 사람 입장에서는 다른 언어로 쓰여진 프로그램에 비해서 장점이 하나도 없습니다.
어느 리눅스 관련 커뮤니티를 가도 qt, gtk 어떻게 깔아야 하는 질문은 거의 없습니다. 자동으로 깔리니까요. 근데 그놈의 자바 어떻게 설치하는지는 십년이 넘게 꾸준히 올라오는 것 같습니다.
자바 언어 자체는 멀티 플랫폼에 친화적일지 모르나 그 언어를 돌리는 jvm이 멀티 플랫폼 친화적이지 않다… 그런 생각이네요.