One of my clients is writing software in Julia so I’m picking up the language. I looked at Julia briefly when it first came out but haven’t used it for work. My memory of the language was that it was almost a dialect of Python. Now that I’m looking at it a little closer, I can see more differences, though the most basic language syntax is more like Python than any other language I’m familiar with.
Here are a few scattered notes on Julia, especially on how it differs from Python.
- Array indices in Julia start from 1, like Fortran and R, and unlike any recent language that I know of.
- Like Python and many other scripting languages, Julia uses
#
for one-line comments. It also adds#=
and=#
for multi-line comments, like/*
and*/
in C. - By convention, names of functions that modify their first argument end in
!
. This is not enforced. - Blocks are indented as in Python, but there is no colon at the end of the first line, and there must be an
end
statement to close the block. - Julia uses
elseif
as in Perl, notelif
as in Python [1]. - Julia uses square brackets to declare a dictionary. Keys and values are separated with
=>
, as in Perl, rather than with colons, as in Python. - Julia, like Python 3, returns 2.5 when given
5/2
. Julia has a//
division operator, but it returns a rational number rather than an integer. - The number 3 + 4i would be written
3 + 4im
in Julia and3 + 4j
in Python. - Strings are contained in double quotes and characters in single quotes, as in C. Python does not distinguish between characters and strings, and uses single and double quotes interchangeably.
- Julia uses
function
to define a function, similar to JavaScript and R, where Python usesdef
. - You can access the last element of an array with
end
, not with -1 as in Perl and Python.
* * *
[1] Actually, Perl uses elsif
, as pointed out in the comments below. I can’t remember when to use else if
, elseif
, elsif
, and elif
.