JVM기반 언어들, 쓸만한 녀석들을 골라보면

less than 1 minute read

JVM은 버추어 머신으로 자바만을 돌리기 위한 플랫폼?이 아니고

자바는 컴파일시에 바이트코드를 생산하기 때문에 다른 언어들도 바이트코드로 변환할 수 있게 만들면 JVM위에서 돌릴 수 있다.

자바 처음 공부할 때 이런 내용을 본 것 같은데 그때는 뭐 컨셉만 잡아놓고 말겠지~라고 했는데

하나씩 나왔다. jRuby, jython, … 이정도?

사실 여기까지는 쓸모없다고 느꼈었다. 네이티브로 돌리면 되는걸 왜 jvm으로 돌려~ 그리고 같은 언어라고 하긴하지만… 세부 문법까지 똑같지는 않을거고 이거 복사해서 붙여넣는다고 cruby, cpython에서 돌아가는것도 아니잖아~’라고 생각했었고 지금도 그렇다.

그런데.. groovy, scala, clojure 등의 언어가 나오면서 상황이 좀 바뀐 것 같다.

groovy, scala는 spring에서도 지원하고 있고

playframework는 scala 전용프레임워크 정도로 자리를 잡은 것 같다.

이중 clojure는 … 지구의 90%이상 프로그래머가 모언어로 섬기는 C언어에 짓눌려 기를 못 펴고 있다.

scala함수형, groovy스크립트 정도로 이해하고 있는데.. 그래도 문법 자체가 c계열에서 크게 벗어난다는 느낌은 없었는데

lisp계열인 scala는… 정말 다르다.

언어의 너무 다른 컨셉때문에라도 한번 익혀놓는게 좋지 않을까 싶을정도… 그래서 clojure도 한번 해보려고 한다.

 

내 경험상… 언어를 잘 익히려면 뭔가를 만들어봐야 하는데.. clojure을 이용해서 만들만한게 뭐가 있을까 모르겠다. 언어의 특성에 따라 만들기 좋은 작품이 있는데…

몇몇 클로저 라이브러리를 보고 느낀건데… 가독성은 상당히 좋은 것 같다. 줄바꿈도 잘 지켜지고.. 자바나 파이썬에서 많이 보이는 변태적인 문법도 오히려 더 적어보인다.

일단 자바기반 프로젝트에 라이브러리를 클로저로 심는 정도로 하는게 좋을 것 같다.