2012.07.16

IDG 블로그 | 프로그래밍 언어 춘추전국 시대

Andrew Oliver | InfoWorld
마이크로소프트가 옳았던 것일까. 앞으로는 한 플랫폼에 일곱 가지 프로그램 언어로 프로젝트를 작성하게 될지도 모른다. 실론(Ceylon)의 개빈 킹, 클로저(Clojure)의 리치 히키, 루비(Ruby)의 찰스 너터 등 프로그래밍 언어 창시자들과 인터뷰를 하면서 한 가지 공통점을 발견할 수 있었다. 바로 이들이 “다중 언어” 소프트웨어 개발에 대한 믿음을 가지고 있었다는 점이다.
 
몇 년 전, ECMA닷넷 CLI (ECMA.Net CLI)의 상임 이사회의 일원이었던 샘 루비는 트라이앵글 자바 사용자 그룹(Triangle Java User Group)에서 연설을 한 적이 있다. 루비는 닷넷에 대한 프리젠테이션을 상당히 건방진 발언으로 마무리했는데, 필자의 기억이 맞다면 “당신이 한 플랫폼에서 일곱 가지 프로그래밍 언어로 프로젝트를 작성하고 싶다면 닷넷을 선택하라. 만약 당신이 일곱 가지 플랫폼에서 한 가지 프로그램 언어로 프로젝트를 작성하고 싶다면 자바를 선택하라”라고 말했다. 사용자 그룹은 마이크로소프트를 비꼰 이 발언에 대해 기립 박수로 응답했다.
 
오랜 시간 동안 핵심 비즈니스 소프트웨어는 메인프레임 환경일 경우에는 코볼이나 RPG로 혹은 둘 다를 사용해 작성되었다. PC 프로그래밍은 훨씬 다양하게 분열된 시장이었는데, C/C++언어의 물결은 펄(Perl)등의 스크립트 언어에게 밀려나는 모습도 보았다. 
 
지난 10년 동안은 자바, 비주얼 베이직/ASP, 그리고 그냥 광고에 가까웠던 다중언어 지원을 보여줬던 닷넷 등으로 비교적 안정적인 시장이 유지되어 왔다. 오래된 자바가 시장을 지배하면서, 다른 JVM 언어들은 비즈니스 소프트웨어 작성에 그다지 쓰이지 않았고, 닷넷 소프트웨어는 C# 언어로 작성되었다.
 
하지만 시대가 바뀌었고, 프로그래밍 언어 시장은 더욱 다변화되었다. 자바는 2001년과 같은 지배적인 위치를 보여주지 못하고 계속 사용자가 줄어들고 있다. 루비는 장기적으로 C#를 따라잡을 것으로 예측되고 있다. 반면 클로저, 스칼라(Scala) 등등의 다른 프로그래밍 언어는 컴퓨터를 좀 안다는 사람들 사이에서 많이 회자되고 있는데, 아직까지 시장에 대한 영향력도 미비하고, 실제 프로젝트에 사용되는 일도 최근에야 일어나고 있는 수준이다.
 
최근 필자는 개빈 킹과 찰스 너터에게 프로그래밍 언어 시장이 앞으로 더 분열될 것인가에 대해 질문했다. 너터는 “나는 그것이 분열이라고 생각하지 않는다. 더 다양해진다고 봐야 한다”고 답했다.
 
킹도 여기에 동의했는데, “어떤 의미에서 분열인가? 사람들은 컴퓨터 역사의 시작에서부터 꾸준히 새로운 프로그래밍 언어들을 시험해 왔다. 우리가 이야기하는 이런 대부분의 ‘새로운’ 언어들은 실상 몇년씩 된 것들이다”라고 강조했다.
 
그 둘 어느 누구도 현재 상태에서 앞으로 몇 가지 프로그래밍 언어로 합쳐질 것이라고 보지 않았다. 대신, 이 다양성을 프로그램 언어들이 서로 혁신을 공유할 수 있는 훌륭한 토양이 될 것으로 보고 있었다.
 
킹에 의하면, “수많은 이종 교배가 이루어지고 있고, 프로그램 언어 분야에서도 좋은 아이디어라고 판명된 부분들이 빠르게(혹은 느리게) 다른 언어들에게 채택되어 가면서, 일종의 수렴 현상들을 관찰할 수 있다”고 평가했다. 너터는 “다양한 JVM 언어들간의 훨씬 폭넓은 협동을 보게 될 날이 점점 빠르게 가까워지고 있다”고 덧붙였다. 이에 발맞춰 너터는 다른 개발자들과 함께 JVM 언어 그룹에 참여하고 있다.
 
이런 언어의 춘추전국시대를 과장되게 볼 위험성도 있다. 이 “새로운” 언어들에 대해 수많은 이야기들이 있었지만, 그들의 전반적인 시장 점유율이 계속 증가함에도 루비를 제외하고는 모두 1% 미만에 그치고 있는 것이 현실이기 때문이다.
 
한가지 프로그래밍 언어가 다른 모두를 지배하는 일을 상상하기 어렵다. 너터와 킹이 옳다면, 자바의 대체 언어는 없을 것이다. 그 대신, 샘 루비가 조롱했듯, 우리는 “한 가지 프로그램을 작성하는데 일곱 가지 프로그램 언어들”을 사용하게 될 것이고, 아마도 플랫폼은 웹 클라우드 하나로 모아질 것이다.  editor@itworld.co.kr


2012.07.16

IDG 블로그 | 프로그래밍 언어 춘추전국 시대

Andrew Oliver | InfoWorld
마이크로소프트가 옳았던 것일까. 앞으로는 한 플랫폼에 일곱 가지 프로그램 언어로 프로젝트를 작성하게 될지도 모른다. 실론(Ceylon)의 개빈 킹, 클로저(Clojure)의 리치 히키, 루비(Ruby)의 찰스 너터 등 프로그래밍 언어 창시자들과 인터뷰를 하면서 한 가지 공통점을 발견할 수 있었다. 바로 이들이 “다중 언어” 소프트웨어 개발에 대한 믿음을 가지고 있었다는 점이다.
 
몇 년 전, ECMA닷넷 CLI (ECMA.Net CLI)의 상임 이사회의 일원이었던 샘 루비는 트라이앵글 자바 사용자 그룹(Triangle Java User Group)에서 연설을 한 적이 있다. 루비는 닷넷에 대한 프리젠테이션을 상당히 건방진 발언으로 마무리했는데, 필자의 기억이 맞다면 “당신이 한 플랫폼에서 일곱 가지 프로그래밍 언어로 프로젝트를 작성하고 싶다면 닷넷을 선택하라. 만약 당신이 일곱 가지 플랫폼에서 한 가지 프로그램 언어로 프로젝트를 작성하고 싶다면 자바를 선택하라”라고 말했다. 사용자 그룹은 마이크로소프트를 비꼰 이 발언에 대해 기립 박수로 응답했다.
 
오랜 시간 동안 핵심 비즈니스 소프트웨어는 메인프레임 환경일 경우에는 코볼이나 RPG로 혹은 둘 다를 사용해 작성되었다. PC 프로그래밍은 훨씬 다양하게 분열된 시장이었는데, C/C++언어의 물결은 펄(Perl)등의 스크립트 언어에게 밀려나는 모습도 보았다. 
 
지난 10년 동안은 자바, 비주얼 베이직/ASP, 그리고 그냥 광고에 가까웠던 다중언어 지원을 보여줬던 닷넷 등으로 비교적 안정적인 시장이 유지되어 왔다. 오래된 자바가 시장을 지배하면서, 다른 JVM 언어들은 비즈니스 소프트웨어 작성에 그다지 쓰이지 않았고, 닷넷 소프트웨어는 C# 언어로 작성되었다.
 
하지만 시대가 바뀌었고, 프로그래밍 언어 시장은 더욱 다변화되었다. 자바는 2001년과 같은 지배적인 위치를 보여주지 못하고 계속 사용자가 줄어들고 있다. 루비는 장기적으로 C#를 따라잡을 것으로 예측되고 있다. 반면 클로저, 스칼라(Scala) 등등의 다른 프로그래밍 언어는 컴퓨터를 좀 안다는 사람들 사이에서 많이 회자되고 있는데, 아직까지 시장에 대한 영향력도 미비하고, 실제 프로젝트에 사용되는 일도 최근에야 일어나고 있는 수준이다.
 
최근 필자는 개빈 킹과 찰스 너터에게 프로그래밍 언어 시장이 앞으로 더 분열될 것인가에 대해 질문했다. 너터는 “나는 그것이 분열이라고 생각하지 않는다. 더 다양해진다고 봐야 한다”고 답했다.
 
킹도 여기에 동의했는데, “어떤 의미에서 분열인가? 사람들은 컴퓨터 역사의 시작에서부터 꾸준히 새로운 프로그래밍 언어들을 시험해 왔다. 우리가 이야기하는 이런 대부분의 ‘새로운’ 언어들은 실상 몇년씩 된 것들이다”라고 강조했다.
 
그 둘 어느 누구도 현재 상태에서 앞으로 몇 가지 프로그래밍 언어로 합쳐질 것이라고 보지 않았다. 대신, 이 다양성을 프로그램 언어들이 서로 혁신을 공유할 수 있는 훌륭한 토양이 될 것으로 보고 있었다.
 
킹에 의하면, “수많은 이종 교배가 이루어지고 있고, 프로그램 언어 분야에서도 좋은 아이디어라고 판명된 부분들이 빠르게(혹은 느리게) 다른 언어들에게 채택되어 가면서, 일종의 수렴 현상들을 관찰할 수 있다”고 평가했다. 너터는 “다양한 JVM 언어들간의 훨씬 폭넓은 협동을 보게 될 날이 점점 빠르게 가까워지고 있다”고 덧붙였다. 이에 발맞춰 너터는 다른 개발자들과 함께 JVM 언어 그룹에 참여하고 있다.
 
이런 언어의 춘추전국시대를 과장되게 볼 위험성도 있다. 이 “새로운” 언어들에 대해 수많은 이야기들이 있었지만, 그들의 전반적인 시장 점유율이 계속 증가함에도 루비를 제외하고는 모두 1% 미만에 그치고 있는 것이 현실이기 때문이다.
 
한가지 프로그래밍 언어가 다른 모두를 지배하는 일을 상상하기 어렵다. 너터와 킹이 옳다면, 자바의 대체 언어는 없을 것이다. 그 대신, 샘 루비가 조롱했듯, 우리는 “한 가지 프로그램을 작성하는데 일곱 가지 프로그램 언어들”을 사용하게 될 것이고, 아마도 플랫폼은 웹 클라우드 하나로 모아질 것이다.  editor@itworld.co.kr


X