최근 마이크로소프트(MS)가 타입스크립트(TypeScript) 툴체인을 고(Go) 언어로 다시 작성하겠다고 발표하면서 업계에 파장이 일었다. 사람들은 왜 MS가 자사 언어인 C#이나 타입스크립트 대신 고를 선택했는지 의문을 품었다. 개인적으로도 흥미로운 선택이라고 느꼈다. 이 발표를 계기로 ‘내 언어가 더 낫다’는 논쟁이 다시금 수면 위로 떠올랐다.
필자는 1970년대에 베이직(BASIC)으로 프로그래밍을 배우기 시작했다. 그 시절 베이직은 줄 번호(line number)를 사용하는 언어였다. 그런데 파스칼(Pascal)이라는 줄 번호가 없는 신기한 언어가 등장했단 소식을 들었고, ‘줄 번호 없이 어떻게 GOTO를 쓸 수 있지?’라며 의문을 품었던 기억이 난다. 아이러니하게도, 필자의 소프트웨어 개발 경력을 열어준 것은 바로 파스칼이었다.
당시 유행하던 터보 파스칼(Turbo Pascal)과 이어진 델파이(Delphi)와의 만남은 필자의 취미였던 프로그래밍을 결국 업으로 만들었다. 원래는 해군 장교로 일했지만, 개발이 너무 좋아 안정적인 해군 연금을 포기하고 전문 개발자의 길을 선택했다. 나름 성공적인 선택이었다. 책과 블로그를 쓰며 경력을 쌓아갔고, 결국 델파이 제품 매니저 자리까지 오르게 됐다.
델파이와 VB의 전쟁
델파이가 출시되기 전, 공식 명칭 외에 붙었던 별명 중 하나는 ‘VBK’였다. ‘비주얼 베이식 킬러(Visual Basic Killer)’라는 뜻이었다. 당시 소프트웨어 개발의 대부분은 윈도우 환경에서 이루어졌고, 비주얼 베이식(VB)은 시각적인 개발 방식과 C++이 아니라는 점 때문에 윈도우 개발자 사이에서 인기가 높았다.
자연스럽게도 ‘VB 킬러’라는 이름은 VB를 사용하고 좋아하던 개발자들의 반발을 샀다. 우리는 델파이를 응원하는 신참 개발자들이었고, VB 사용자 포럼에 들어가 “델파이가 VB를 어떻게 무너뜨릴지”를 자랑스럽게 떠들곤 했다. 당연하게도 VB 팬들은 그런 주장에 불쾌함을 드러냈고, 그렇게 언어 전쟁이 시작됐다.
상황은 꽤 격해졌다. 우리는 서로에게 인신공격을 퍼붓고, 자신이 선택한 언어가 더 낫다는 이유로 끝도 없이 논쟁을 벌였다. 필자 역시 감정이 크게 격해졌던 기억이 난다. 그 싸움은 이상하게도 개인적인 문제처럼 느껴졌고, 그 일이 매우 중요한 것처럼 생각됐다. 지금은 더 성숙하고 현명해진 것일까? 돌이켜보면 그때의 모습이 참 어리석게 느껴진다.
재미있는 점은, 논쟁의 중심에 있던 도구들이 당시에는 모두 유료였다는 사실이다. 요즘은 대부분의 프로그래밍 언어와 개발 도구가 무료지만, 1990년대에는 툴을 직접 구매해야 했다. 어쩌면 그 점이 언어 선택에 대한 방어적인 태도를 더 강하게 만들었을지도 모른다. 어떤 언어를 선택하느냐가 그토록 중요했던 시절이었다.
오늘날에도 비슷한 논쟁은 계속된다. 자바스크립트 개발자와 타입스크립트 개발자, 러스트 지지자와 C++ 지지자 사이에 비슷한 갈등이 반복되고 있는 것이다. 필자는 결국 이 논쟁에 끝이 없다는 사실을 깨달았다. 시스템, 언어, 프레임워크는 점점 더 복잡해지고 있고, 각자의 주장도 다양하다 보니 단 하나의 ‘정답’을 내리기란 불가능하다.
그저 자신에게 잘 맞고, 원하는 결과를 낼 수 있으며, 사용하기 편한 언어를 선택하면 된다. 자바, C#, 자바스크립트, 타입스크립트, 파스칼, C++, 러스트, 파이썬 등 다양한 언어로 성공하는 팀은 여전히 존재한다.
나쁜 언어라는 것은 사실상 없다고 본다. 물론 GW-베이직으로 웹 애플리케이션을 만들려고 한다면 어려움이 따르겠지만, 지금은 웹 애플리케이션을 만드는 방법도 무수히 많다. 각각의 방법이 장점과 한계를 지니고 있으며, 때론 개발자를 미치게 만들지만, 때론 아름답게 느껴지는 순간도 선사한다.
정답은 여럿일 수 있다
결론적으로, 틀린 선택은 거의 없고, 옳은 선택은 여러 개 존재한다. 어떤 언어가 더 낫냐를 두고 싸우는 일은 어리석다. 자신에게 맞는 언어를 선택하자. 굳이 다른 언어 진영의 커뮤니티에 가서 싸움을 걸지 말자.
물론 분명히 피해야 할 선택도 있다. 예컨대 지금 GW-BASIC으로 개발할 수 있는 건 거의 없다. 대기업이 펄(Perl)을 사용하는 신생 프레임워크에 회사의 운명을 걸지는 않을 것이다. 하지만 반대로, 오랜 역사와 방대한 생태계를 갖춘 언어들처럼 명백한 ‘옳은 선택’도 많다. 그런 언어 중 하나를 고른다면 실패할 일은 거의 없다.
언어 전쟁은 결국 “작업에 맞는 적절한 도구를 선택하라”는 말로 귀결된다. 다만, 모든 상황에서 자기 도구가 최고라고 믿는 사람에게 이 말은 별 의미가 없다. 게다가 ‘작업에 맞는 도구’라는 표현은 진부하게 들릴 수도 있다. 누가 일부러 틀린 도구를 선택하겠는가? 그럼에도 불구하고, 이는 꽤 현실적인 조언이다.
MS가 타입스크립트 툴체인을 고로 다시 작성하기로 한 이유는 정확히 알 수 없다. 하지만 MS가 그렇게 판단했다면, 그것이 그들에게는 가장 좋은 선택이었을 것이다. 필자는 그 결정에 대해 누구와도 굳이 논쟁할 생각이 없다.
[email protected]
Read More from This Article: 칼럼 | ‘내 언어만 최고’라는 끝없는 프로그래밍 언어 전쟁
Source: News