Scientific computing has traditionally required the highest performance, yet domain experts have largely moved to slower dynamic languages for daily work. We believe there are many good reasons to prefer dynamic languages for these applications, and we do not expect their use to diminish. Fortunately, modern language design and compiler techniques make it possible to mostly eliminate the performance trade-off and provide a single environment productive enough for prototyping and efficient enough for deploying performance-intensive applications. The Julia programming language fills this role: it is a flexible dynamic language, appropriate for scientific and numerical computing, with performance comparable to traditional statically-typed languages.
고성능 컴퓨팅 환경을 제공하기 위해 개발된 현대적인 프로그래밍 언어
오픈 소스이며, 특히 과학 컴퓨팅 커뮤니티에서 최근 몇 년 동안 상당한 인기를 얻음
Julia는 2012년에 처음 소개되었으며 복잡한 수치 계산을 빠르고 효율적으로 수행하는 능력으로 명성을 얻게됨
과학적 컴퓨팅에 중점을 두고 설계되었지만, 범용 프로그래밍 작업에도 적합
줄리아는 파이썬, MATLAB, R 등 기존 과학 컴퓨팅 언어의 한계를 극복하기 위해 만들어짐
기존에는 성능과 생산성 간 trade-off가 있었다면 julia는 둘 다 해결하기 위해 만든 언어로 보임
줄리아 코드는 런타임에 JIT(Just-in-Time) 컴파일러를 사용 수 있어 C와 포트란의 속도에 근접할 수 있음
Python과 Julia 모두 인터프리터 언어
Python에서 코드는 바이트 코드로 컴파일되며 런타임의 파이썬 가상 머신에 의해 해석됨
이는 빠른 개발 주기(생산성)를 허용하나 실행 속도가 느리다는 단점이 있음
반면 Julia는 JIT 컴파일러와 type inference를 결합하여 프로세서에 의해 직접 실행되는 고도로 최적화된 기계 코드를 생성
많은 수치 계산을 수반하는 scientific computing 애플리케이션은 상당한 성능 향상을 가져올 수 있음
Julia 코드는 읽고 쓰기 쉽도록 설계됨
파이썬과 유사한 구문을 가지고 있어 이미 파이썬에 익숙한 프로그래머들이 쉽게 배울 수 있음
분산 컴퓨팅에 대한 기본 지원을 제공하므로 병렬 및 분산 컴퓨팅 작업에 이상적
Julia는 또한 기계 학습, 데이터 과학 및 시각화를 포함한 다양한 작업을 위한 패키지를 포함하는 광범위한 패키지 에코시스템을 보유
Julia의 패키지 관리자를 사용하여 패키지를 신속하게 설치하고 관리할 수 있음
Julia는 REPL(Read-Eval-Print-Loop)이라는 대화형 환경을 제공하여 사용자가 빠르고 쉽게 코드를 작성하고 테스트할 수 있음
REPL은 또한 데이터를 대화식으로 탐색하고 조작하기 위한 인터페이스를 제공
줄리아는 또한 사용자들이 광범위한 기호와 문자를 사용하여 코드를 작성할 수 있도록 하는 유니코드에 대한 훌륭한 지원
이를 통해 수학 및 과학 방정식을 줄리아 코드로 직접 작성 가능
결론적으로 Julia는 고성능, 유연성 및 대화형 프로그래밍 언어로 과학 컴퓨팅 및 범용 프로그래밍 작업에 적합
속도, 유연성, 광범위한 패키지 생태계는 현대적이고 강력한 언어를 찾는 프로그래머들에게 매력적인 선택
과학적인 컴퓨팅에 관심이 있거나 강력한 범용 프로그래밍 언어를 찾고 있다면, 줄리아는 분명히 탐험할 가치가 있음