Scala는 JVM 위에서 돌아가는 언어들 중 하나로 객체지향 패러다임과 함수형 패러다임의 여러 장점을 잘 활용한데다 Java 코드를 투명하게 활용할 수 있으니 실용성까지 갖추어 급부상하고 있는 언어입니다.
다만 복잡하다는 이야기가 자주 언급되는 것 같습니다. 그러나 창시자 Martin Odersky의 이야기로는, 언어 명세로만 보면 Java와 비슷한 수준으로 그리 복잡하지 않은 언어라고 합니다. 하지만 그 속에 담겨있는 이론, 권장요소(functional, immutable), break/continue의 부재와 같은 것이 전통적인 imperative-style 프로그래머에게 복잡하게 다가올 수 있겠습니다. 한편, functional-style 프로그래머에겐 Java background와 OOP가 낯설은 모양입니다. 유머글 A Brief, Incomplete, and Mostly Wrong History of Programming Languages에 이런 재미있는 표현이 있습니다.
"2003 - A drunken Martin Odersky sees a Reese's Peanut Butter Cup ad featuring somebody's peanut butter getting on somebody else's chocolate and has an idea. He creates Scala, a language that unifies constructs from both object oriented and functional languages. This pisses off both groups and each promptly declares jihad."
제가 보는 Scala의 약점은 아직 부족한 개발환경입니다. Eclipse, NetBeans의 플러그인을 써봤는데 시스템 요구사양이 높거나, 불안정하기도 하고, Java 쓰다 Scala 쓰니 없어서 아쉬운 IDE 기능도 많았습니다. 하지만 차차 해결 될 문제. 다른 뛰어난 언어가 등장해서 인기를 독차지하지 않는다면 길지 않은 시간 내에 Python, Ruby 못지 않은 주류 언어로 부상할 것으로 기대하고 있습니다. 어쩌면 언젠가는 지금 Java가 가진 위상을 얻을 수 있을지도 모릅니다.
다만 복잡하다는 이야기가 자주 언급되는 것 같습니다. 그러나 창시자 Martin Odersky의 이야기로는, 언어 명세로만 보면 Java와 비슷한 수준으로 그리 복잡하지 않은 언어라고 합니다. 하지만 그 속에 담겨있는 이론, 권장요소(functional, immutable), break/continue의 부재와 같은 것이 전통적인 imperative-style 프로그래머에게 복잡하게 다가올 수 있겠습니다. 한편, functional-style 프로그래머에겐 Java background와 OOP가 낯설은 모양입니다. 유머글 A Brief, Incomplete, and Mostly Wrong History of Programming Languages에 이런 재미있는 표현이 있습니다.
"2003 - A drunken Martin Odersky sees a Reese's Peanut Butter Cup ad featuring somebody's peanut butter getting on somebody else's chocolate and has an idea. He creates Scala, a language that unifies constructs from both object oriented and functional languages. This pisses off both groups and each promptly declares jihad."
제가 보는 Scala의 약점은 아직 부족한 개발환경입니다. Eclipse, NetBeans의 플러그인을 써봤는데 시스템 요구사양이 높거나, 불안정하기도 하고, Java 쓰다 Scala 쓰니 없어서 아쉬운 IDE 기능도 많았습니다. 하지만 차차 해결 될 문제. 다른 뛰어난 언어가 등장해서 인기를 독차지하지 않는다면 길지 않은 시간 내에 Python, Ruby 못지 않은 주류 언어로 부상할 것으로 기대하고 있습니다. 어쩌면 언젠가는 지금 Java가 가진 위상을 얻을 수 있을지도 모릅니다.




덧글