2018년 1월 16일 화요일

java를 사용하면서 변화가 두렵다.

솔직히 말하자면, ruby나 python, nodejs를 포함해 package manager를 이용하는 쪽이라면 마찬가지 일 것이다.
하지만, 다른 언어를 사용하면서 느끼지 못하는 두려움을 java에서는 느낀다.

일반적으로는 하나의 의존성이 있는 프로그램을 upgrade하면 뭔가가 잘못 되었을 때 걸리는 시간이 그래도 몇 분 정도인 것이 보통인데, java의 경우는 몇 시간에서 몇 일을 소모하는 경우가 많기 때문이다.
에러를 내는 이유가 업그레이드 된 프로그램의 설정 때문인지, 주변 프로그램의 설정을 바꿔야 하는지, eclipse가 문제인지, eclipse의 설정이 문제인지, 캐쉬 때문인지...
물론 끈질기게 버그를 따라가고 stack overflow를 추적하다 보면 결국 답이 보이게 마련이지만,
프로젝트와 관련없는 일을 하느라 버린 시간이 어마어마 하다.
java는 왜 이렇게 오랜 시간이 지났음에도 불구하고 여전히 느리고, 의존성 문제가 많고, debug가 힘든 것일까?
어떤 사람들은 eclipse가 좋지 않아서라고 하고, 어떤 사람들은 library를 제공하는 쪽의 문제라고도 하며, 또 다른 사람들은 java진영의 leader programmer들이 잘못된 방향으로 이끌고 있다고 말한다.
하지만 어쨌거나 java는 익숙해 지는데 시간이 오래 걸리고, 뭔가를 변경해 가는데 걸리는 시간도 너무 많이 필요하다.

결국 이런 이유로 그 동안 java에 익숙해 지면서 뭔가를 변화시키는 것이 점점 두려워 졌다. 뭔가 update된 새로운 기능을 사용하려면 엄청난 비용을 치뤄야 할 것을 알게 되었기 때문이다. 그리고, 처음에 java로 작업을 하게 되면서 느낀 질문에 답을 알게 되었다.

"왜 새로운, 더 좋은 기능들을 사용해선 안 되나?"

그때는 java가 무언가를 update했을 때, 맞지 않는 수많은 주변 package로 인해서 엄청난 고통이 뒤따른 다는 것을 몰랐던 것이다.

반면에 다른 언어들은 새로운 기능들을 가져다 써도 그렇게 까지 많은 고통이 뒤따르지는 않는다. 심지어 python 2.x를 쓰다가 python 3.x로 migration을 한다고 해도, 조금은 힘들겠지만, "다시는 이런 짓을 해서는 안된다."라는 생각이 들 정도는 당연히 아니다.

어쨌건, 가능하면 빨리 java를 벗어나야 할 것 같다. 더 있다가는 점점 구시대의 프로그래머가 될 것 같다는 생각이 든다. 빠르게 변하는 세상에서 모든 변화를 거부해야만 살아갈 수 있는.

댓글 없음:

댓글 쓰기