My Julia Introduction

This documentation is meant for Julia beginner like my students.

What is Julia?

What: Julia is a relatively new computing language (2012), that is highly readable and efficient. It is meant to be multipurpose. Its foundations rely on all good ideas from previous language to make one "super" software. I like this short blog post from Julia creators from 2012. It explains in what context and with what ambitions, Julia was launched.

Installation

The easiest way to install and maintain up-to-date Julia is probably to use the Juliaup framework.

It uses one line on a terminal for Linux/Max, and it is available directly from the "Windows Store" with one click on Windows. It installs Julia and set the PATH variable. Updates to new Julia version is then simply done with

juliaup update

Tutorial and introductory material (non testé)

Why is Julia so great?

Here I compile some cool/fancy link/post/presentation showcasting Julia. If you want more in depth discussion about Julia and collaborative scientific computing go to this section.

Ici je compile quelques liens/messages/présentation mettant en avant le language Julia.

There are many things that can may be more or less important depending on the personal experience of each one. So for a general audience I tend to show things like:
- achievable performance, of course
- syntax
- package management (installatin, update etc, is done within Julia and it just works)
- Usage: REPL and its features (Pkg and Shell integration), and notebooks (Jupyter and Pluto)
- Plotting etc within the same environment
- domain-specific ecosystem: differential equations, non-linear programming, SciML
- simplicity of creating, distributing and registering packages
- integration with documentation (help entries and Documenter.jl)

Each of these things may be available in other languages, but I don’t see any other combining all these features so well.

Then you can go for more language-specific features (multiple dispatch, composability, etc) but IMHO this is harder to understand from a utilitarian viewpoint from start.

I can add to this list benchmarking, which is super easy to do in Julia + there is one package that does it all. From my experience it is quite a pain in Python and R + there seem to be multiple options.