Erik Engheim
4 min readApr 9, 2021

--

Interesting. In most of my C++ career I actually never wrote throw. We simply banned it in our project. Seemed sensible to me. So I don't actually have much experience with how it is to deal with throw heavy C++ code.

Totally with you that it is not worth investing in learning a new language if you are not going to see a need for it. I make that kind of choice myself.

But let me try a little sales pitch for Julia anyway 😜

I've spent time with Haskell, Rust and many other languages. I dropped them. Why? Simply takes too long time to learn and I don't know if I will ever use them.

But some languages I bother to learn. I learned Go and Julia. Why? Both was quick to learn and I could do something useful almost immediately. Most notable, I could do something for small programs.

I often write small helper programs. Since they are only for my help, it doesn't matter what the language is or whether that is what my employer pays me to develop in. These are just tools for my main development.

Go worked really nice for making small Unix tools. And looking at this years later, my nose for this was right on as you see lots of little Unix tools today written in Go. It is small effort with relatively quick reward.

How about Julia? On ocassion I would do these little code challenges such as Project Euler or Rosalind. A hacking evening at work. Neither C++, Objective-C or Go which I used regularly worked well for this.

Everybody needs some language to quickly write small algorithms. Maybe massage some numbers. Plot something. Maybe a quick string manipulation.

Julia actually works great as that kind of language. You can easily write things like DSLs in Julia. Doesn't matter what the rest of the world does. It is only for your private usage. I used Julia to create DSLs to genereate boilerplate C++ code that I had to do at work.

Here is an example of a Julia DSL I wrote for editing Qt GUI files. Also an area where I think you would striggle with finding a nicer language than Julia: https://www.youtube.com/watch?v=YOd4JIhAulU

Will Julia evaporate soon? I highly doubt it. I don't have a crystal ball, and you don't have to take my word for it but I have been right about most of my language predictions for the last +20 years. I remember when Perl was big. I told all the Perl fans that it would decline and Python would take over. Turns out I was right on that.

I saw Ruby had great potential when I first used it and some years later we saw Ruby on Rails explode. I have tried lots of language over the last 30 years or so. And every language I have spent significant time with and had faith in has become big later.

Of course this is just one mans opinion. But I have a really good feeling about Julia. I have never felt some positive about a language in 30 years. Python had ease of use which I liked but not performance.

LISP/Scheme had meta programming and easy to learn but impractical to use with the odd syntax.

Julia hits all the sweet spots: It has easy of use, performance, familiarty, quick to learn and meta programming. I cannot remember any other language that check all those boxes. That kind of language does not come around often.

People see this. That is why large next generation projects such as macro economics simulators, large trading systems, the next climate models etc all get built in Julia. Nobody would sink millions into building systems likt that which is meant to last for decades, if they thought Julia would soon evaporate.

If something is to replace Julia in the future, it will have to be significantly better than Julia. I don't see how that is possible. You cannot be significantly faster than Julia because it is already close to what is theoretically possible.

If you it is going to be significantly easier to use than Julia, then it will also be significantly easier than all other language currently around. In many ways if something comes around that will beat Julia, it will also soundly beat everything else we got now.

And who believes that? How often does a new language come around that soundly beats every other language in almost every metric? That is exceedingly rare.

Multiple-dispatch pionered by Julia is such an important paradigm that it will likely only become more important elsewhere. Even if Julia gets displaced, it is a good chance it will be displaced by something looking a lot like Julia, and hence you have not lost anything by learning it.

Yeah.... hope I didn't sound too much like a religious fantatic there. But I seriously have strong belief in this language. It likely will not get bit next year, but I would not be surprised if we saw similar trajectory of adoption as Go.

Machine learning and data science will only get more important in the future, and even Peter Norvig admits Julia is the best language for ML.

--

--

Erik Engheim
Erik Engheim

Written by Erik Engheim

Geek dad, living in Oslo, Norway with passion for UX, Julia programming, science, teaching, reading and writing.

No responses yet