Julia Logo from Wikipedia

Julia and The Reincarnation of Lisp

Background

  • Common Lisp
  • Scheme
  • OCaml
  • Haskell
  • Ruby
  • ATS
  • At least 20 others I forgot.

I could never use them professionally on a large scale. Just some toy programs here and there and sometimes bit bigger, like those of Practical Common Lisp, The Gigamonkeys Book. I loved Common Lisp but could never use it in the software industry.

Experience and Desire

First steps with Julia for numerical computing by Bogumił Kamiński
First steps with Julia for numerical computing by Bogumił Kamiński
First steps with Julia for numerical computing by Bogumił Kamiński

Working with so many languages taught me two things:

Tech+Features of a language (usual stuff) and mental model behind the language (not so usual stuff). A Programming Language is a lot about its design and whys.

I was looking for a language with speed of C, with a Free Software license (this is what we used to call them before term Open-Source was coined) and where I could have dynamic typing too. I love read–eval–print loop of Lisp a.k.a REPL. REPL is one of the most amazing experiences of programming (and yes, it was invented in Lisp). The other is Emacs, which I will write about someday. I wanted a language where I could use my mind to solve a problem instead of memory problems and Segfaults. A language that is far simpler than C++ (by all means, C++ is a great language, if I have to create an OS, I would use it. Still, it is a very complex language to work in). Then I came to realize, I was not the only one thinking along those lines. Few Lispers were thinking the same. Then I read Why of 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.

(Did we mention it should be as fast as C?)

I felt like it was written for me. Out of all those experiences and experiments over half a decade, I can tell you, Julia is a great language to write programs in, for at least for five years of your life. I am sure, any person who likes to improve his skills, looking for better ideas, better design in software, will love Julia. I am typing this from my home computer running Arch Linux with LXQt. It is amazing to chat on Julia IRC gitter at 10:15 PM.

The Strength of Community

Conclusion

Industrial Software Developer turned Data Scientist. From C to Python. Linkedin: https://www.linkedin.com/in/arnuld-on-data/