DEV Community

Cover image for The Julia Programming Language.
Ifihanagbara Olusheye
Ifihanagbara Olusheye

Posted on • Edited on • Originally published at ifihan.hashnode.dev

The Julia Programming Language.

INTRODUCTION

As tech evolves, things get to be made better, faster, and more simplified. This goes for programming languages too. Languages have been modified to be better and this has led to the development of a number of relatively new programming languages one of which is Julia.

WHAT IS JULIA?

We want a language thatโ€™s open-source, with a liberal license. We want the speed of C with the dynamism of Ruby. We want a language thatโ€™s homoiconic, with true macros like Lisp, but with obvious, familiar mathematical notation like Matlab. We want something as usable for general programming as Python, as easy for statistics as R, as natural for string processing as Perl, as powerful for linear algebra as Matlab, as good at gluing programs together as the shell. Something that is dirt simple to learn yet keeps the most serious hackers happy. We want it interactive and we want it compiled. - Why We Created Julia

Julia is a high-level, dynamic programming language with high performance. It is a general-purpose application used to write any application. It was created by Jeff Bezanson, Alan Edelman, Stefan Karpinski, and Viral B. Shah in MIT, 2009. The first version was released in 2012.

Julia has been downloaded over 25 million times and the Julia community has registered over 5,000 Julia packages. It was influenced by a lot of languages like Python, C, MATLAB, R, Lisp, Perl, Ruby, and Lua. It is also integrated into several Integrated Development Editors (IDEs) and Code editors with the filename extension .jl.

Julia was designed to increase speed in parallel computing, carry out machine learning, scientific computing, data mining, and so on. Using the JIT (Just-in-time) compiler makes the language very fast. Julia is garbage-collected, uses eager evaluation, and provides robust libraries for floating-point estimation, linear algebra, random number generation, and regular expression matching.

It also comes with a full-featured interactive command-line REPL (read-eval-print loop) and has many features that can help you test snippets and debug your code.

julia.png

FEATURES

Some of the features of Julia are:

  • It is Open Source on GitHub.
  • Combination of power, simplicity, and efficiency.
  • Has the speed of C.
  • Looks like Python.
  • Easy for statistics like R.
  • Interoperability: Capability of two different programming languages to natively interact as part of the same system.
  • Dynamic.
  • General optimally typed.
  • Support for Unicode, including but not limited to UTF-8.

The feature I love most is that it looks like Python. Coming from a Python background, it's quite easy to learn and understand the language within a few hours. Below is a countdown function written in Julia and Python.

# julia 
function countdown(n)
    if n โ‰ค 0
        println("Blastoff!!")
    else
        println(n, " ")
        countdown(n - 1)
    end
end
countdown(5)

# python 
def countdown(n):
    if n <= 0:
        print("Blastoff!!")
    else:
        print(n, " ")
        countdown(n - 1)

countdown(5)
Enter fullscreen mode Exit fullscreen mode

USES

Julia is mainly used for Scientific computing. Some non-scientific computing uses are:

  • Backend Development.
  • Visualization.
  • Data Science.
  • Machine Learning.
  • Parallel Computing.

OPPORTUNITIES

There are several opportunities that come with the use of the Julia language. Each opportunity is connected to a use case of the language and some of these include:

  • Machine Learning Engineer.
  • MLOps Engineer.
  • Geospatial developer.
  • Researcher.

CONCLUSION/MY TAKE ON JULIA

The Julia ecosystem has experienced massive growth in recent times as more developers discover about the language and its utility. Getting started with Julia is easy and communities exist ready to offer assistance. Currently, the official communities are on Slack and Discourse.

I've only just begun to scratch the surface of the programming language but with only a little study and research, I've been able to gather knowledge on some excellent Julia features and opinions. It is a modern programming language that prioritizes efficiency and usability.

If you're looking to try out something new, Julia is definitely worth your time.

References:
  1. Julia's official website
  2. Wikipedia

Thank you!

Top comments (10)

Collapse
 
epsi profile image
E.R. Nurwijayadi

Good article. Thank you for posting.

I'm a beginner in Julia. To help more beginner, I have made a working example of concurrency using actor pattern with source code in github.

๐Ÿ•ท epsi.bitbucket.io/lambda/2020/11/1...

First the sender and receiver.

Sender and Receiver

And finally run both using channel.

Channel

I hope this could help other who seeks for other case example.

๐Ÿ™๐Ÿฝ

Thank you for posting with general introduction..

Collapse
 
ifihan profile image
Ifihanagbara Olusheye

Thanks a lot. And thanks for sharing this code.

Collapse
 
deli profile image
Deli

Hey Ifihan,
I want to learn Julia, what is the best source to learn from?

Best regards

Thread Thread
 
ifihan profile image
Ifihanagbara Olusheye

Hello,
You could start with the course fom Julia Academy - juliaacademy.com/
Then also this book - Think Julia by Ben Lauwens, Allen B. Downey

Thread Thread
 
deli profile image
Deli

Thank you so much!

Thread Thread
 
ifihan profile image
Ifihanagbara Olusheye

You're welcome!

Collapse
 
logankilpatrick profile image
Logan Kilpatrick

Great to read this. Would be interesting to see a follow up post on what some of the challenges and successes you have had with #JuliaLang are.

Collapse
 
ifihan profile image
Ifihanagbara Olusheye

Thank you so much! I'd write on that as soon as I explore Julia fully

Collapse
 
ogheneovo12 profile image
ogheneovo12

Nice article, maybe I will try julia one of this days

Collapse
 
ifihan profile image
Ifihanagbara Olusheye

You should!
It's nice