줄리아 프로그래밍 언어

줄리아 프로그래밍 언어

what is julia language

개요

Julia_prog_language

줄리아는 MIT에서 개발되어 2012년 공개된 프로그래밍 언어로써, 생산성이 높으면서도 속도가 높은 언어를 지향한다. C나 포트란에 준하는 속도를 내면서도 파이썬이나 R처럼 고수준의 문법을 갖추었으며, 그 외에도 여러 언어들의 장점을 취하고 있다. 2019년 11월 현재는 GPU가 급속도로 발전하면서 딥러닝이 유행을 선도하고 있어 조금 뒤쳐지는 것이 사실이나, 학계에서 줄리아를 압도할만큼 편하고 빠른 언어는 없다.

줄리아에 대해 궁금한 게 있거나 코멘트가 있다면 생새우초밥집 커뮤니티 💬에 글을 올려보자.

특징

줄리아의 특징들을 살펴보자:

  1. 빠르다. 다른 말이 필요 없다. 벤치마크 를 보면 C포트란과 어깨를 나란히 함을 알 수 있다. 20191008\_122905.png
  2. 쉽다. 최적화까지 신경쓰지 않아도 된다면 줄리아 프로그래밍은 매트랩, R, 파이썬과 비슷비슷하다. 단지 이 언어들로 어떤 프로그램을 구현한 후, 최적화를 위해서 C로 같은 코드를 새로 쓰는 삽질이 필요 없다. 다만 줄리아에 걸맞는 코딩 기법을 통해 개선시킬 뿐이다. 마찬가지의 이유로 자연계열의 사용자가 매트랩, R, 파이썬을 알고 있다면 줄리아도 금방 익힐 수 있다. 아니, 사실 이들 언어의 생산성은 무척 높은 편이기 때문에 어떤 프로그래밍 언어가 베이스든 줄리아는 쉽게 느껴질 수밖에 없다.
  3. 무료다. 매트랩은 강력한 선형대수를 지원하나 일단 비싸고, 사실 최적화를 하기에 따라 줄리아가 매트랩보다 10~1,000배 빠르다고 한다. 심지어 MATLAB.jl 패키지를 사용하면 매트랩과 같은 스타일로 코드를 작성할 수 있어 매트랩에 숙련된 사용자가 넘어오기도 편하다.
  4. 벡터화된 코드를 짤 필요가 없다. 쉽게 말해 for문으로 코드를 짜도 빠르다는 것이다. (사실, 오히려 반복문이 권장된다.) 벡터화된 코드는 머리를 쓰기에 따라 충분히 빠를 수 있고 가독성도 높아지지만, 복잡한 시뮬레이션을 구현하기 위해서는 제한되는 경우가 무척 많다. 통계분석에 특화된 R과 같은 언어는 벡터화된 코드가 강제되지만, 그러한 최적화를 거쳐도 아직 느리다. 줄리아는 이 성능을 비약적으로 향상시킬 수 있다고 한다. 심지어 Rif.jl 패키지를 사용하면 R과 같은 스타일로 코드를 작성할 수 있어 R에 숙련된 사용자가 넘어오기도 편하다.
  5. 다른 언어의 패키지를 쉽게 끌어올 수 있다. 사실 신생언어의 가장 큰 약점이자, 포트란이나 파이썬과 같은 언어가 쓰이는 가장 큰 이유 중 하나가 바로 패키지다. 파이썬의 경우엔 PyCall.jl 패키지를 사용함으로써 파이썬의 함수를 바로 호출할 수 있다. 물론 줄리아는 이미 충분히 높은 성능을 갖추고 있지만, ccall() 함수로 C 나 포트란 함수를 호출할 수 있다. C++ 역시 Cpp.jl 패키지에서 지원한다.
  6. 병렬 처리에 특화되어 있다. 병렬 처리의 중요성이 대두되면서 관련 패키지가 개발된 다른 언어와 달리 줄리아는 처음부터 병렬 처리를 염두에 두고 개발되었다. 사실 프로그램에 따라서는 편하다 정도가 아니라 아예 최적화의 핵심일 수 있다.
댓글