프로그래밍과 소프트웨어 개발 및 엔지니어링, 그리고 그 모든 폐쇄된 영역과 관련해서 이야기하자면, 그중에서 현실의 일상적인 업무에서 사용되는 언어는 극히 일부에 불과하며, 그런 언어들이 그런 견고한 진입장벽을 뚫고 진입한다는 것은 극도로 어렵다는 것을 알 수 있습니다.
프로그래밍 언어의 인기 추세가 좀처럼 변하지 않는 데는 몇 가지 이유가 있지만, 제가 보기에 가장 큰 이유는 기존 코드베이스와의 하위호환성(backwards compatibility) 때문입니다. 새로운 언어를 소프트웨어 생태계 안으로 도입할 때 발생할 수 있는 가장 커다란 문제점은, 개발자들이 기존에 가진 언어를 함께 사용할 수 있는 방법을 찾거나, 새로운 언어로 다시 시작해야 한다는 것인데, 이건 그다지 즐거운 선택은 아닙니다.
이 글에서는 저의 의견이 이처럼 곳곳에서 나타납니다. 뭔가 관련된 일화나 개인적인 의견을 모두 빼고 이런 글을 쓴다는 건 좀처럼 재미가 없기 때문입니다. 이런 사실을 염두에 두고, 절대로, 결코, 절대로 사라지지 않을 다섯 가지 프로그래밍 언어에 대해서 살펴보도록 하겠습니다.
C / C++
솔직히 저는 이 두 언어를 좋아합니다. 오래되긴 했지만, 여전히 여러 가지 방법으로 사용될 수 있습니다. C++은 국제표준화기구(ISO)의 전담위원회에서 지속적으로 업데이트합니다. 그리고 상당히 현대적으로 보일 수도 있지만, 오래된 코드베이스를 보거나 새로운 표준을 사용하지 않은 경우를 발견하게 되면 그런 생각은 금세 바뀔 수도 있습니다.
이들은 논쟁의 여지가 없는 세계의 제왕입니다. 앞서 말한 하위호환성이 필요한 이유도, 프로그래밍 언어의 세계라는 매우 가파른 피라미드의 정점에 앉아 있는 이들 거물 언어 때문입니다. C와 C++은 거의 40년 동안 존재해 왔는데(C의 경우는 50년), 아직도 그 기세가 수그러들 기미가 좀처럼 보이지 않습니다.
이들이 이렇게 인기가 있는 이유는, 위에서도 말했다시피, 예전의 코드베이스에 대한 하위호환성 때문입니다. 그리고 이 두 가지를 함께 묶어 놓은 이유는, 두 언어가 서로 상호운용성(interoperability)이 있기 때문입니다. 그리고 C++은 원래부터 그러한 점을 염두에 두고 만들어졌습니다. 하위호환성이 왕입니다.
파이썬(PYTHON)
저는 이 언어를 정말 싫어합니다. 그 이유는 대부분 아주 난잡하고, 솔직히 지저분한 문법 때문입니다. 그래도 여기에서 언급하는 이유는 그럴 만한 가치가 있기 때문입니다. 왜냐하면 파이썬은 지난 30년 동안 그야말로 어마어마한 괴물이 되었기 때문인데, 적어도 제 생각에서는 그 세력이 엄청나게 커졌습니다.
그리고 C나 C++과 마찬가지로, 파이썬이 여전히 그 인기를 지키는 이유도 하위호환성의 필요성 때문이기는 하지만, 파이썬은 그런 점 외에도 사용하기 단순하고 편리하기 때문이기도 합니다. 그리고 이런 점은 앞의 두 언어는 가지지 못한 특성입니다.
파이썬은 진입장벽이 낮아서 초보자들도 얼마든지 배워서 재미있게 사용할 수 있습니다. 제 생각에 아마도 바로 이 점이 파이썬이 가진 생명력의 핵심인 것 같습니다. 사용하기 편하다는 점 말입니다.
자바(JAVA)
저는 이 언어를 싫어하지는 않지만, 그렇다고 좋아하는 것도 아닙니다. 자바의 코드를 읽어야 할 때면 저는 엄두가 나지 않는 경우가 많은데, 그 코드를 자세히 설명하는 문서가 없다면 정말로 귀찮은 작업이기 때문입니다. 게다가 그런 문서가 있는 경우는 솔직히 말해서 거의 없습니다.
하지만 이런 의구심에도 자바는 TIOBE 지수에서 언제나 5위 내의 상위권을 유지합니다. 즉 수많은 사람이 이런저런 이유로 이 언어를 좋아한다는 것입니다. 그런데 사실 자바가 지향하는 목표를 훨씬 더 멋진 방식으로 달성할 수 있는 더욱 새로운 대안이 있는데도 이러한 언어를 좋아하는 사람이 있다는 것이 쉽게 이해가 되지는 않습니다.
개인적으로는 위에서도 말했다시피, 자바는 코드가 부풀려져 있는 경우가 많고 읽는 것도 귀찮습니다. 자바로 된 코드를 읽거나 작성하는 것도 저에게는 전부 쉽지 않은 일입니다.
스위프트(SWIFT)
여기에서 이 이름을 정말 언급하고 싶지는 않았습니다. 그런데 여러분 중에서는 제가 왜 그랬는지 알고 싶은 분들이 있을 것 같아서, 설명을 하겠습니다.
스위프트는 주식회사 애플이 오브젝티브 C(Objective-C)를 대체하겠다는 목표만으로 도입한 언어입니다. 그리고 오브젝티브 C는 이번 글에서 소개하려고 고려했던 언어이며, 그러지 못해서 결국 아래의 “명예 언어” 목록에 이름을 올려 두었습니다. 애플이 만들고 지원하는 스위프트는 절대로 (아니면 적어도 당분간은) 사라지지 않을 것입니다. 다름 아닌 애플의 일원이라는 이유 때문입니다.
그리고 스위프트는 C, C++, 오브젝티브 C가 장악했던 공간을 차지하기 위해 싸우는 주요한 경쟁자 중 하나입니다. 참고로 어떤 사람들은 이러한 경쟁자들의 하나로 러스트(Rust)를 넣기도 합니다. (편파적이었다면 죄송합니다.) 스위프트가 이렇게 경쟁에 참여할 수 있는 이유는, 앞에서 언급했던 언어들처럼 자바나 C#보다 더 낮은 계층에서 작동하도록 만들어졌기 때문입니다. 즉, 스위프트는 단순히 프론트엔드 애플리케이션을 개발하는 것 이상으로 유용하기 때문에 나름의 추종자들이 있는 것입니다.
명예 언어
여기에서는 어느 정도의 잠재력이 있다고 생각하지만, “불멸”까지는 아닌 언어들을 소개하고자 합니다.
러스트(RUST)
언급해야만 했습니다. 정말입니다. 러스트의 이름이 없는 것이 과연 프로그래밍 언어의 목록이라고 할 수 있을까요? 절대 그렇지 않습니다! 저는 러스트의 팬이고, 제 생이 다하는 날까지 충성을 맹세할 것입니다.
러스트가 이 목록에 오르지 못한 유일한 이유는 비교적 젊은 언어이며, 애플 같은 후원자가 없다는 사실 때문이었습니다. 물론 마이크로소프트가 최근에 윈도 런타임(WinRT) 언어 프로젝션(language projection)의 형태로 명백한 지지를 표현하기는 했습니다. 뭐, 그런 게 있습니다.
C#
저는 이 언어를 좀 더 높이 올려놓을 수도 있었고, 솔직히 지금도 여전히 그런 마음이 있습니다. 하지만 저는 C#이 자바만큼 아주 많은 관심을 받는다고 생각하지는 않습니다. 적어도 제가 아는 영역에서는 그렇습니다.
오브젝티브 C (OBJECTIVE-C)
스위프트의 전신입니다. 이 언어는 C와 C++을 다루었던 단락에서 언급했던 것과 마찬가지로, 하위호환성에 대한 요구가 있기 때문에 아마도 당분간은 사라지지는 않을 것입니다. 하지만 애플이 현대화 노력의 일환으로 이 언어의 사용을 막는다는 점을 고려한다면, 그 수명이 영원하지는 않을 것 같습니다.
PHP
PHP 하이퍼텍스트 프로세서는 지난 20년 동안 TIOBE 지수에서 언제나 상위 10위 안에 들었습니다. 웹 개발에서 지속적으로 사용되어 왔기 때문에, 업계에서는 타이탄(Titan) 같은 존재가 되었습니다.
마치며
물론 제가 모든 것을 다 아는 것도 아니고, 어떤 언어가 진정으로 불멸의 존재인지를 정확히 예측할 수도 없습니다. 그래도 독자들이 즐겁게 읽을 수 있도록 애를 쓰면서, 나름대로 최선을 다해서 추정한 것임을 말씀드립니다.
이 글을 소개한 위시켓은 2019년 시밀러웹 방문자 수 기준 국내 1위 IT 아웃소싱 플랫폼입니다. 현재 8만 이상의 개발업체, 개발 프리랜서가 활동하며, 무료로 프로젝트 등록이 가능합니다. 프로젝트 등록 한 번으로 여러 개발업체의 견적, 포트폴리오, 예상 기간을 한 번에 비교해보세요!
원문: 위시켓
함께 보면 좋은 글