View on GitHub

Julia, the good, the bad, and the ugly

Get to know the Julia programming language to see whether it is for you.

The Julia programming language has gained quite some popularity over the last couple of years. What are its strong points, its weak points? Is it an elegant language to work with? Should you learn it, use it?

This training tries to give you some insights into the language and how it compares to other similar programming languagues such as MATLAB and Python so that you can answer these questions for yourself.

Learning outcomes

When you complete this training you will

Schedule

Total duration: 4 hours.

Subject Duration
introduction and motivation 5 min.
expressions 15 min.
functions and methods 30 min.
control flow 20 min.
coffee break 10 min.
data types 60 min.
coffee break 10 min.
I/O 10 min.
code organization 15 min.
Julia ecosystem 30 min.
wrap up 10 min.

Training materials

Slides are available in the GitHub repository, as well as example code.

Target audience

This training is for you if you want to learn some Julia to see whether it would work for you.

Prerequisites

You will need experience programming in some programming language such as Python, MATLAB, R or C/C++/Fortran. This is not a training that teaches you how to program.

If you plan to do Julia programming in a Linux or HPC environment you should be familiar with these as well.

More concretely, participants should already be comfortable with the following:

You do not need prior experience with Julia itself, multiple dispatch, Julia’s type system, modules, packages, macros, or parallel programming in Julia. Those are part of the training itself.

Quick self-assessment

If you can do most of the tasks below in some programming language, you are likely ready for this training.

If several of these items still feel difficult, the training will probably move too fast. In that case, it is better to first take a short introductory programming course.

Software and access requirements

To follow hands-on, you need a computer with Julia installed. Some examples use Jupyter notebooks through IJulia, so a working Jupyter environment is useful as well.

The repository contains a Julia Project.toml and Manifest.toml for the Julia package environment, and an environment.yml file for creating the Python/Jupyter environment used for notebooks.

For examples that compare Julia with compiled languages or visualize generated data, you may also need the standard development tools available in your Linux or HPC environment.

See the repository’s SETUP.md file for installation and verification commands.

Level

Trainer(s)