London Julia Users Group

Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments, providing a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library.

Julia programs are organized around multiple dispatch, by defining functions and overloading them for different combinations of argument types, which can also be user-defined.

An active Julia community is contributing a number of external packages via Julia's built-in package manager. In addition the collaboration between the Jupyter and Julia developers has provided a powerful browser-based graphical notebook interface to Julia.

About Us

The London Julia Users Group (LJuUG) was formed in December 2013, in order to promote the use of the Julia programming language in the UK. We usually hold four meetings annually and details can be found on our Meetup page.

If you wish to speak at one of our meetups please get in contact via the form provided below. Otherwise just join the group and come along to meet other Julia enthusiasts at our next get-together.

We are grateful to Skills Matter for providing the facilities to hold the group's meetups.

About Julia

Some reasons for taking a look at Julia


Julia was introduced in February 2012 after 2 years work at Massachusetts Institute of Technology.

  • It uses LLVM to generate “genuine” machine code.
  • Originally seen as scientific language, viz. replacement to Matlab.
  • It has true lisp-like macros which makes including boilerplate code a "breeze".
  • Connectivity to shared libraries (‘C’) has zero-overhead.
  • Also it can call Python, R, Java etc.
  • O/S code is on Github (+ Readthedocs).
  • The I/O parallelism is novel and offers distinct advantages over Hadoop, Storm & Spark.


Current State of Play (September 2016)


  • Julia has not yet reached v1.0
  • It is not likely to get there until mid-2017.
  • v0.4.6 is the latest stable version and v0.5 in RC4 and development on v0.6 has begun.
  • There are currently over 1100(+) registered modules.
  • These are grouped in “communities” such as JuliaStats, JuliaOpt, JuliaDB, JuliaWeb ...
  • Wide range of graphics / data visualisation packages are available.
  • Jupyter IDE (IJulia) is familiar to Python developers and others.
  • Juno IDE includes the new "Gallium" debugger plus graphics support.
  • Julia Computing was established in 2016 for Enterprise and consultancy work.


Want to know more, drop us a line using the form below ... Contact Us

Benchmarks

Because Julia creates compiled code, execution times are of the same order of magnitude as that using languages such as C/C++, Fortran and Java. This is not the only, or even the main reason, for using Julia. Because Julia is almost entirely written in Julia it provides the programmer with enormous power in coding in his/her own comfort zone without having to resort to a second compiled language and all that entails (package APIs, vectorisation etc.)

However it may be informative to see what 'fast' really means ...


Julia creates both fast and concise code

Benchmarks are notoriously fickle, here are five (viz. fasta, regex-dna, mandelbrot, binary-trees, n-body) from the Computer Language Benchmarks Game, rewritten in Julia.

As can be seen Julia is similar to the performance of C/C++ and Java while taking considerable less coding. For interpreted languages such as Python and Ruby we are talking of the order of 1 or even 2 orders of magnitudes quicker. Other languages such as R, Matlab and Octave perform similarly or even worse in comparison to Julia.

This makes Julia of special interest in 'loopy' cases requiring long runtimes which are difficult to vectorise and/or no appropriate module or package exists; typically those occuring in stochastic simulations, MCMC problems and machine (deep) learning.