This chapter covers
- What type of problems does Julia solve.
- The limits of statically typed languages.
- Why the world needs a fast dynamically typed language.
- How Julia increases programmer productivity.
You can choose from hundreds of programming languages, many of them far better known than Julia. So why pick Julia? The short answer is that Julia has broad applications, many capabilities, and is easy to learn and use. It’s excellent for data science, complex linear algebra, data mining, and machine learning, but you can use it for so much more.
Julia is a general-purpose, multi-platform programming language that is:
- Suited for numerical analysis and computational science
- Dynamically typed
- High performance and Just-in-Time compiled (JIT)
- Has automatic memory management (garbage collection)
- Composable
Okay, that’s a lot, and some of these things sound like contradictions. So how can Julia be a general-purpose language and also tailored towards numerical programming? It’s general-purpose because, like Python, Julia can be used for almost anything. It’s numerical because, like Matlab, Julia is well suited for numerical programming. But it isn’t limited to numerical programming; it’s good for other uses.
By composable, we mean that Julia makes it easy to express many object-oriented and functional programming patterns facilitating code reuse.