포트란(Fortran)은 지난 1954년 고안되어 널리 사용되는 세계 첫 고수준 언어다. 고도로 다양한 프로그래밍 언어가 있음에도 불구하고 고안 이후 70년 이상 지난 포트란이 여전히 프로그래머에게 애용되는 이유는 뭘까.
포트란은 오래된 프로그래밍 언어지만 고급 계산을 전문으로 하며 물리학과 슈퍼컴퓨터 연구 기관, 정부 기관 등에서 2022년 시점에도 이용되고 있다. 몇 가지 포인트를 살펴보면 먼저 성능 중시 문화 속에서 구축됐기 때문이다. 포트란에선 최적화가 중시되고 있었기 때문에 컴파일러로 코드를 최적화할 수 있게 되어 있었지만 제한이 많이 존재했다. 이 제한으로 인해 포트란에선 C언어와 같은 다른 프로그래밍 언어에서 가능한 느린 코드를 자유롭게 쓰는 게 어렵다. 고성능이지만 융통성 없는 포트란과 자유도가 높은 C언어라는 도식이 오랫동안 이뤄져 있었기 때문에 용도에 따라 포트란은 오랫동안 요구되어 왔다는 것. 하지만 이론과 실천에 의해 컴파일러가 개선되어 왔기 때문에 최근에는 포트란 외에 언어에서도 코드 최적화 등 생산성을 향상시키는 기능이 구현되고 있다.
다음은 과학적인 정보 처리에선 C언어나 C++보다 사용하기 쉽기 때문이다. 포트란과 경쟁한 빠른 언어는 거의 C언어나 C++이었다. C나 C++은 범용적인 프로그래밍을 할 때에는 편리하다고 여겨지는 한편 다차원 배열이나 복소수를 취급하는 과학적 계산을 하는데 적합하지 않을 수 있다. 하지만 포트란은 거의 초기부터 이런 계산과 몇 가지 특수 함수를 지원했다. 이후 C언어나 C++도 복소수에 표준 대응하거나 C++ 23에선 다차원 배열이 일부 표준 대응하는 등 개발이 진행되고 있지만 포트란을 아직까지 따라잡지 않은 것으로 인한 현상이라고 할 수 있다.
다음은 코드 장수명화와 후방 호환성이다. 과학 기술 계산에 있어 수명이 길고 수십 년간 변하지 않고 동작 확인이 가능한 코드는 상당히 바람직하다. 포트란은 역호환성을 엄격하게 해 장기적인 코드 수명을 보증하고 있기 때문에 많은 프로그래머에게 사랑받고 있다.
다음은 공배열에 의한 분산 메모리 병렬 처리다. 포트란 2008에선 분산 메모리 시스템상 병렬 처리를 언어 일부로 추가하는 공배열이라고 불리는 기능이 도입됐다. 최신 버전 포트란에선 기존 단일 스레드 또는 다중 스레드 코드를 분산 메모리 병렬 코드로 쉽게 변환할 수 있어 포트란의 강점 가운데 하나가 됐다.
마지막은 포트란은 지금도 진화하고 있다는 것이다. 포트란은 고안 이후 70년이 지났음에도 지금도 활발하게 개발되고 있다. 또 포트란 표준 위원회는 정기적으로 언어를 개정한다. 하지만 포트란은 구축 시스템과 최신 도구, 활발한 오픈소스 커뮤니티, 표준 라이브러리가 부족하다고 여겨지고 있으며 포트란을 인터넷 시대에 적응시키려면 충분한 수의 포트란 개발자가 오픈소스 문화를 채택해야 한다고 말한다. 관련 내용은 이곳에서 확인할 수 있다.