1 Why Julia?


This chapter covers

  • The type of problems Julia solves
  • The benefits of a fast, dynamically typed language
  • How Julia increases programmer productivity

You can choose from hundreds of programming languages—many of them much more popular than Julia. So why pick Julia?

How would you like to write code faster than you have done before? How about building systems with a fraction of the number of lines of code you normally require? Surely, such productivity will come at the cost of deplorable performance and high memory consumption. Nope. In fact, Julia is the language of choice for next-generation climate models, which have extreme performance and memory requirements.

I know such accolades may come across like a bad sales pitch from a used car salesman, but there is no denying that Julia, in many ways, is a revolutionary programming language. You may ask, “If Julia is so great, then why isn’t everybody using it? Why are so many people still using the C programming language?” Familiarity, packages, libraries, and community matter. Mission-critical software built up in large organizations isn’t just transitioned away from on a whim.

Many of you reading this book may not care about having the more efficient and productive programming language. Instead, what you care about is what you can build with it. The simple answer is: anything. Julia is a general-purpose programming language.

1.1 What is Julia?

1.1.1 Pros and cons of statically and dynamically typed languages

1.2 Julia combines elegance, productivity, and performance

1.3 Why Julia was created

1.3.1 Scientists need the interactive programming that dynamically typed languages offer

1.3.2 Developers in other fields also need the interactivity a dynamically typed language offers

1.4 Julia’s higher performance solves the two-language problem

1.5 Julia is for everyone

1.6 What can I build with Julia?

1.6.1 Julia in the sciences

1.6.2 Nonscience uses of Julia

1.7 Where Julia is less ideal

1.8 What you will learn in this book