다트(Dart), 고(Go), 핵(Hack), 스위프트(Swift).


IT 거인들이라 불리는 구글, 애플, 페이스북이 최근 잇달아 내놓은 프로그래밍 언어들이다. 새로운 언어를 접한 개발자들은 무거운 숙제더미를 받은 양 혼란스럽다. 한쪽에서는 ‘또 배워야 하나’라며 어두운 표정을 짓기도 하지만, 다른 한쪽에서는 ‘드디어 나왔구나’라며 찬사를 보내기도 한다. 프로그래밍 언어가 지닌 양면성을 보여주고 있다고 해도 과언이 아니다.


현재까지 소개된 프로그래밍 언어는 그 역사를 쉽게 정리할 수 없을 정도로 다양하고 깊다. 수십, 수백개의 언어가 출현했고, 일부는 사멸했고, 일부는 수십년이 지나도록 건재하다. 언어들마다 등장한 사연이 존재하고 사멸한 이유도 제각각이다.


특히 이들 언어가 나타난 배경과 개발자의 의도와 맥락을 들여다보면 왜 새로운 언어가 태어날 수밖에 없는지 일정 부분 추정해볼 수 있다. 이를 통해 최근 IT 거인들이 내놓은 프로그래밍 언어들이 어떤 전략과 의미를 지니고 있는지 확인해보자.


1231420258
▲ 1231420258


▲프로그래밍 언어의 변천사 (출처 : 알렌 터커의 '프로그래밍 언어')

프로그래밍 언어의 속성


요즘처럼 여러 종류의 프로그래밍 언어가 속속 등장하는 배경을 이해하기 위해서는 그것의 몇 가지 속성을 먼저 살펴봐야 한다.


그 첫 번째가 스위칭 코스트, 즉 전환 비용이다. 프로그래밍 언어는 학습하기가 쉽지 않은데다 일정 수준의 프로그래밍 역량을 갖추기까지 많은 시간이 소요된다. 입문할 때 배웠던 언어를 포기하고 다른 언어를 배우려면 여러 측면에서 새롭게 시작해야 하는 부담이 뒤따른다. 그만큼 전환 비용이 높은 축에 속한다. 예를 들어 자바 언어로 웹서비스를 개발해왔던 엔지니어가 PHP로 웹서비스를 제작하기 위해서는 적잖은 전환 비용이 뒤따른다. 언어의 흐름을 새로 익혀야 하고 여러 함수값도 다시 학습해야 한다. 그런만큼 한번 배운 언어를 다른 언어로 갈아타기란 결코 쉬운 작업이 아니다.


프로그래밍 언어는 또한 네트워크 효과가 존재한다. 더 많은 개발자가 참여할수록 개발 환경뿐 아니라 언어의 가치도 높아진다. 개발자 네트워크 밀도가 높아지면서 다양한 안내서가 출판되고, 라이브러리나 지원 그룹도 다양해진다. 버그를 수정하기 위한 노하우가 네트워크의 밀도에 비례해 쌓이게 되면서 해당 프로그래밍 언어의 위력이 배가되는 구조다.


상품이라는 측면도 간과해서는 안 된다. 언어나 컴파일러가 상용 제품으로 판매됨으로써 기업 수익의 직접적 자양분이 되기도 한다. IBM이 개발한 최초의 고급 프로그래밍 언어 '포트란'이 대표적인 사례다. 1950년대 말 포트란이 IBM에 알토란 같은 수익을 안겨주자 너도나도 고급 언어 컴파일러 개발에 뛰어든 사례를 이를 방증해준다.(출처 : 과학동아 '프로그래밍 언어의 행진')

왜 IT 거인들이 '언어'를 주도하는가


google-microsoft-apple-facebook
▲ google-microsoft-apple-facebook


프로그래밍 언어의 출현 배경은 개발 주체(개인, 기업, 국가)에 따라 상이하다.  각각의 주체에 따라 성장 경로나 개발 의도가 차이를 보인다.


루비나 PHP와 같은 프로그래밍 언어는 순수한 개인의 호기심, 즉 해커문화의 산물이라 할 수 있다. PHP를 개발했던 그린란드 출신 개발자 라스무스 러도프는 “내 웹사이트를 만들기 위한 간단한 도구들의 묶음이었다”고 밝힌 바 있다. 사적인 필요와 호기심이 맞물리면서 탄생한 언어였던 것이다. 루비를 개발했던 마쯔모토 유키히로도 발단은 비슷했다.

“나는 객체지향 스크립트 언어의 가능성에 대해 여러 동료들과 얘기를 나눴다. 나는 펄을 알고 있었다. 하지만 정말 좋아하지 않았다. 장난감 언어의 향기가 났기 때문이다. 파이썬도 알고 있었다. 하지만 좋아하지 않았다. 파이썬은 진정한 객체지향 언어가 아니기 때문이다. 난 명석한 객체지향, 사용하기 쉬운 스크립팅 언어를 원했다. 찾아봤지만 발견할 수 없었다. 루비를 만들기로 결정한 이유다.“(출처 : 루비 문서 FAQ)

하지만 최근 들어서는 개인이나 연구자들에 의해 탄생하는 언어는 그리 도드라지지 않는다. '다트', '고', '핵', '스위프트'처럼 IT 거인들이 새로운 언어를 개발하고 소개하며 보급하는 흐름이 뚜렷하다. 이러한 변화는 언어의 보편성을 획득하기 위한 효율적 수단이 기업으로 집중되고 있다는 것을 의미한다.


창병모 숙명여대 교수(IT 학부)는 “학계나 개인들도 새로운 언어를 실험적으로 만들고 있는데 널리 보급되기가 어렵다”면서 “언어가 좋다고, 기능이 좋다고 해서 보급되고 되는 것은 아니고 어떤 플랫폼 위에서 쓰이느냐와 관련이 깊다”고 설명했다. 잘 만든 언어라도 특정 플랫폼과 결합되지 않으면 쓸 개발자를 만나지 못하는 게 개발자 생태계의 특징이다.


애플용 애플리케이션을 개발하려면 '오브젝티브C'나 스위프트, 윈도우폰 앱을 위해선 'C#'을, 안드로이드 앱 개발을 위해선 '자바'를 배워야 하는 것처럼, 특정 플랫폼을 장악한 IT 대기업들이 신규 언어 보급에 이점이 클 수밖에 없다. IT 거인들이 언어 개발을 주도할 수밖에 없는 중요한 배경 중 하나라고 할 수 있다.


















































































개발자 개발연도 소속 기타
파이썬 Guido van Rossum 1989년 CWI(네덜란드)
자바 James Gosling 1990년 Sun Microsystems 오픈소스
C++ Bjarne Strousup 1983년 AT&T Bell Labs
루비 Yukihiro Matsumoto 1995년 오픈소스
자바스크립트 Brendan Eich 1995년 Netscape Communications Corporation.
C# Anders Hejlsberg 2000년 마이크로소프트
PHP Rasmus Lerdorf 1996년 오픈소스
Larry Wall 1987년 UNISYS
스칼라 Martin Odersky 2003년 EPFL(스위스) ERC 지원금
오브젝티브 C Tom Love, Brad Cox 1983년 Stepstone(이후 애플)

▲ 가장 많이 쓰이는 프로그래밍 언어의 등장 시기와 개발자 소속(위키피디아 참조)


프로그래밍 언어로 진짜 노리는 것들은


programming-languages


특정 기업이 주도하는 프로그래밍 언어 개발은 일반 개발자나 학자와 달리 개발자 생태계 장악이 첫 번째 목적이다. 하지만 개발자 생태계는 자연스럽게 특정 소프트웨어나 하드웨어로의 선호로 이어지고, 이는 다시 해당 기업의 수익을 높이는 데 기여하게 된다. 프로그래밍 언어의 네트워크 외부성과 비즈니스 모델이 만나는 지점이기도 하다.


마이크로소프트는 이같은 수익 구조를 가장 잘 이해하고 있는 대표적인 소프트웨어 기업이다. 프로그램 언어의 주도권을 잡아 그 언어와 궁합이 맞는 소프트웨어와 하드웨어 판매로 연결시키고 있다. 마이크로소프트는 자신이 직접 개발하지 않았던 C++ 커뮤니티를 지원하는 목적도 개발도구인 비주얼 스튜디오 판매를 염두에 둔 행보라고 설명했다. 비주얼 스튜디오는 얼티메이트 가격이 수백만원대에 이르는 값비싼 개발도구다.


창병모 교수는 “컴퓨팅 환경이 바뀌면 자연스럽게 프로그래밍 언어도 바뀌어왔다”라며 “언어 전쟁은 새로 등장하는 모바일 환경을 장악하기 위한 주도권 싸움으로 이해할 수 있다”고 분석했다. 언어를 장악하게 되면 전체 개발 생태계를 주도할 수 있는 인프라가 마련된다는 의미다.


언어 그 자체가 상품이 되는 경우도 여전히 존재한다. PHP처럼 프로그래밍 언어가 오픈소스화되는 경향이 짙어지고 컴파일러를 판매하는 비즈니스도 줄어드는 경향이지만, 상품으로서 가치에 집착하는 사례가 완전히 사라진 것은 아니다.


자바를 둘러싼 오라클과 구글의 소송전은 이러한 측면을 잘 일깨워준다. 자바를 썬마이크로시스템즈로부터 넘겨받은 오라클은 2010년 8월 구글에 자바 특허 침해 소송을 제기했다. 당시 오라클은 구글의 안드로이드가 자바를 특허를 침해했다며 10억달러를 내놓으라고 주장했다. 둘의 소송은 지루하게 이어졌고, 결국 구글은 패소했다. 이 과정에서 자바의 아버지인 제임스 고슬링은 오라클을 떠나 구글로 향하게 된다.


IT 거인들이 출시한 프로그래밍 언어도 이러한 여러 의도에서 완전히 자유롭다고 말하기 어렵다. 특히 오픈소스 커뮤니티를 지원하는 이면을 들여다보는 작업은 매우 중요하다.

헤게모니 장악 vs 패러다임 변화


프로그래밍 언어 전쟁에 대한 개발자들의 시각은 조금씩 엇갈린다. 개발자 특유의 해커문화에서 비롯됐다는 데 대해선 이견이 없지만, 그 뒤에 숨겨진 전략에 대해선 서로 다른 의견을 내놓았다.


'생활코딩'이라는 프로그래밍 교육 프로그램을 운영하는 개발자 이고잉은 IT 거인들이 새로운 언어를 발표하는 배경에는 내부의 해커문화와 기술적 헤게모니 장악이라는 두 가지 측면이 공존하고 있다고 분석했다. 그는 “구글이든 애플이든 페이스북이든 해커들이 모인 집단”이라며 “하나의 해커문화로서 재미와 새로움, 혁신을 찾으려는 흐름이 결과로 나타난 것”이라고 말했다. 다만 오라클이 썬 마이크로시스템스를 인수한 배경에는 자바라는 프로그래밍 언어가 있었다는 점에 주목하면서 “기술적 헤게모니를 확보하기 위한 경쟁의 결과”라고 덧붙였다.


골빈해커라는 필명으로 유명한 김진중 호텔파인더 CTO는 개발자를 묶어두려는 록인 전략이나 헤게모니 경쟁과는 관련이 없다는 해석을 내놓았다. 그는 “현재 개발자들이 사용하고 있는 언어들은 이미 20년 이상 된 오래된 언어들”이라며 “언어의 패러다임이 바뀌고 있고 개발자들의 수도 늘어난 만큼 이를 지원해주기 위한 의도로 개발한 것으로 보인다”고 했다.


김진중 CTO는 현재는 프로그래밍 언어 자체보다는 프레임워크의 중요성이 더 커진 환경이라고 지적했다. 새로운 프레임워크 위에서 개발자들이 보다 편안하게 개발할 수 있는 환경을 제공하기 위해 새로운 언어를 내놓게 된다는 주장이다. 애플의 경우 LLVM, 코코아 프레임워크에서 보다 편리하게 개발 환경을 제공하기 위해 스위프트라는 언어를 출시했다고 보고 있다.

언어의 역사엔 의도가 숨어 있다


프로그래밍 언어 내엔 개발한 주체의 철학이 담겨 있고 의도가 숨어 있기 마련이다. 그 주체가 개인이냐 기업이냐, 국가냐에 따라 철학도 의도도 달라진다. 사적인 호기심과 해커정신으로 개발된 언어가 기업의 손으로 넘어가게 되면 어떤 모습으로 변모하게 되는지 이미 여러 사례를 통해 경험한 바 있다.


하나의 프로그래밍 언어의 성장사에는 복합적인 정치적, 경제적 이해관계가 얽혀 있다. 루비처럼 기존 언어가 만족스럽지 않다는 결핍으로부터 개발된 언어도 있지만, 코볼처럼 미국 국방부의 의도를 충족시키기 위해 개발된 언어도 존재한다. 자바스크립트를 견제하기 위해 마이크로소프트의 'J스크립트'가 나타났고, 신대륙의 포트란에 대항하기 위해 '알골 60'이라는 새로운 언어가 만들어지기도 했다. 스위피트, 고, 핵의 탄생을 늘 순수한 시선으로만 바라볼 수 없는 이유가 여기에 있다.

저작권자 © 블로터 무단전재 및 재배포 금지