Julia Programming Language
Overview
Julia has been developed at MIT and publicly released in 2012, aiming for a language that is both highly productive and fast. It achieves speeds comparable to C or Fortran while also providing a high-level syntax similar to Python or R, among absorbing benefits from various other languages. As of November 2019, it’s true that Julia is somewhat lagging due to the rapid advancement of GPUs and the prevalence of deep learning, but there is still no language that surpasses Julia in terms of convenience and speed in the academic field.
If you have any questions or comments about Julia, post them on the Freshrimp Sushi Community 💬.
Key Features
Let’s take a look at Julia’s features:
- It’s fast. No other words are needed. The benchmarks show that it is on par with C and Fortran.
- It’s simple. If optimization isn’t a concern, programming in Julia is quite similar to Matlab, R, or Python. The unnecessary hassle of rewriting the same code in C for optimization after implementing a program in these languages does not exist. Instead, it only requires improving through coding techniques appropriate for Julia. Similarly, if the user is familiar with Matlab, R, or Python, picking up Julia can be quick. In reality, due to the high productivity of these languages, Julia feels easy regardless of the base programming language.
- It’s free. MATLAB supports powerful linear algebra but is expensive, and Julia can be 10 to 1,000 times faster depending on the optimization. Additionally, using the MATLAB.jl package allows for writing code in a similar style to MATLAB, making it convenient for users skilled in MATLAB to transition.
- Packages from other languages can be easily imported. The biggest weakness of a new language, and one of the main reasons languages like Fortran or Python are used, is the package ecosystem. For Python, the package PyCall.jl enables direct calling of Python functions. Although Julia is sufficiently high-performing on its own, it allows calling C or Fortran functions through the ccall() function. C++ is also supported through the Cpp.jl package.
- Specialized for parallel processing. Unlike other languages that have developed related packages after the fact, Julia was developed from the ground up with parallel processing in mind. Indeed, depending on the program, it could be not just convenient but central to optimization.