Allow reader to set up with the software needed to run Julia and let her run her first Hello World. Packages are introduced as early as this section.
◦ Why Julia
◦ Installing Julia
◦ Running Julia
◦ Main syntax elements
◦ Packages
◦ Help system
Data types (chapter)
Make reader familiar with the Julia concept of types, showing her the different containers that Julia make available for rapid application development.
◦ Scalar types
◦ Strings
▪ Concatenation
◦ Arrays (lists)
▪ Multidimensional and nested arrays
◦ Tuples
◦ NamedTuples
◦ Dictionaries
◦ Sets
◦ Memory and copy issues
◦ Various notes on Data types
▪ Random numbers
▪ Missing, nothing and NaN
Control flow (chapter)
Vectorised or classical loop-based code ? This section explains how to obtain them in Julia
◦ Logical operators
◦ Do blocks
Functions (chapter)
Julia is rich in the way you can handle functions, and this chapter try to present all the related notions to the reader
◦ Arguments
◦ Return value
◦ Multiple-dispatch (aka polymorphism)
◦ Templates (type parametrisation)
◦ Functions as objects
◦ Call by reference / call by value
◦ Anonymous functions
◦ Broadcast
Custom structures (chapter)
If you can from an object-oriented language you would expect this section. We show how you can organise your data in Julia and make it connect in your program.
◦ Defining a structure
◦ Initialising an object and accessing its fields
◦ Implementation of the OO paradigm in Julia
◦ More on types
Input – Output (chapter)
Feed your program with data and retrieve its outputs
◦ File reading/writing
◦ Networking IO
◦ Other IO
Managing run-time errors (exceptions) (chapter)
How to set a plan-B if things go wrong in your code
Interfacing Julia with other languages (chapter)
Do not reinvent the wheel: use what’s already be done, even if developed in other languages
◦ C/C++
◦ Python
◦ R
Metaprogramming (chapter)
Provide a richer API modifying the code before it is executed
One of the main reason why Julia exists is performances. It’s easy to obtain them. We write here how not to make errors that would hit performances.
◦ Type safety
◦ Benchmarking
◦ Code parallelisation
◦ Debugging
◦ Profiling
Developing Julia packages (chapter)
Learn how to organise code that provide similar functionalities in a package, either for yourself or for the general public
Packages ecosystem (book part)
Working with data (chapter)
The rich ecosystem Julia provides for working with data
◦ DataFrames
▪ Install and import the library
▪ Create a df or load data:
▪ Get insights about your data:
▪ Edit data
▪ Edit structure
▪ Manage Missing values
▪ Split-Apply-Combine strategy
▪ Pivot
▪ Export your data
◦ IndexedTables
▪ Create an IndexedTable
▪ Edit values
◦ LAJuliaUtils
Mathematics (chapter)
Not a mathematician? Still don’t skip this chapter, you may discover you can still benefit in your work from mathematic libraries without knowing their theoretical fundations.
◦ JuMP
◦ SymPy
◦ Other Mathematical packages
Utilities (chapter)
From plotting to writing scientific papers with embedded code, a list of packages you will probably want to use
◦ Plotting
◦ Pipe
◦ Weave
Antonello Lobianco, PhD is a research engineer employed by a French grande école (polytechnic university). He works on the biophysical and economic modelling of the forest sector and is responsible for the lab models portfolio. He does programming in C++, Perl, PHP, Visual Basic, Python, and Julia. He teaches environmental and forest economics at undergraduate and graduate levels and modelling at PhD level. For a couple of years, he has followed the development of Julia as it fits his modelling needs. He is the author of a few Julia packages (search sylvaticus on GitHub).
This quick Julia programming language guide is a condensed code and syntax reference to the Julia 1.x programming language, updated with the latest features of the Julia APIs, libraries, and packages. It presents the essential Julia syntax in a well-organized format that can be used as a handy reference.
This book provides an introduction that reveals basic Julia structures and syntax; discusses data types, control flow, functions, input/output, exceptions, metaprogramming, performance, and more. Additionally, you'll learn to interface Julia with other programming languages such as R for statistics or Python. You will learn how to use Julia packages for data analysis, numerical optimization and symbolic computation, and how to disseminate your results in dynamic documents or interactive web pages.
In this book, the focus is on providing important information as quickly as possible. It is packed with useful information and is a must-have for any Julia programmer.
You will:
Set up the software needed to run Julia and your first Hello World example
Work with types and the different containers that Julia makes available for rapid application development
Use vectorized, classical loop-based code such as logical operators and blocks
Explore functions by looking at arguments, return values, polymorphism, parameters, anonymous functions, and broadcasts
Build custom structures in Julia
Interface Julia with other languages such as C/C++, Python, and R
Program a richer API, modifying the code before it is executed using expressions, symbols, macros, quote blocks, and more