더북(TheBook)

과학 및 공학에서의 언어

"모든 종류의 수치 소프트웨어가 효율성을 잃지 않으면서 C++로 작성될 수 있다면 좋겠지만

C++ 타입 시스템을 손상하지 않으면서 달성할 방법이 발견되지 않는다면

포트란, 어셈블러 또는 아키텍처 특정 확장에 의존하는 방법이 더 바람직할 수 있다."

- 비야네 스트롭스트룹(Bjarne Stroustrup)

과학 및 공학 소프트웨어는 서로 다른 언어로 작성되었다. 언제 어디서나 ‘어느 언어로 작성하는 게 가장 적합한가’는 목표와 사용 가능한 자원에 따라 다르다.

MATLAB, Mathematica, R과 같은 수학 도구는 기존 알고리즘을 사용할 수 있을 때 탁월하다. 미세한(예: 스칼라) 연산을 사용해 자체 알고리즘을 구현하면 성능이 크게 저하된다. 물론 문제가 작거나 사용자의 참을성이 무한하다면 문제가 되지 않을 수도 있다. 하지만 그렇지 않다면 대체 언어를 고려해야 한다.

파이썬은 소프트웨어를 빠르게 개발해야 할 때 뛰어나며, 이미 "scipy"와 "numpy" 같은 과학 라이브러리를 포함하고 있고 이러한 라이브러리를 기반으로 하는 애플리케이션(C와 C++로 구현되는 경우가 많음)은 상당히 효율적이다. 다시 말해, 작업을 세분화한 사용자 정의 알고리즘은 성능 저하를 초래한다. 파이썬은 중소규모 작업을 효율적으로 구현할 수 있는 훌륭한 방법이다. 프로젝트가 충분히 커지면 컴파일러가 더욱 엄격해야 한다는 중요성(예: 인수가 일치하지 않으면 할당을 거부한다)이 점점 더 커진다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.