A few days ago, I ran a short "introduction to Julia" talk and tutorial for 
the Institute of Astronomy at the University of Cambridge. The audience 
consisted mostly of other students, with a few post-docs. Astronomers as a 
group use a wide range of programming tools, from Fortran through to 
Python, and for the research I'm doing during my PhD I have found that 
Julia hits the right spot. Many of us also don't really have much formal 
programming training (I certainly never had more than a few classes on 
Matlab and had to find my own way from there) and so anything that lets us 
write fast code with a nice syntax will definitely be appreciated. So the 
talk and tutorial was for me to share my experiences with Julia and sum up 
where I thought it was useful in astronomy and where it wasn't so useful.

Although I don't think I have convinced anyone that Julia is for them (and 
that's fine!), it was nice to hear some feedback. The comments I got were 
along these lines:

* People generally seemed to think that multiple dispatch sounds like a 
train-wreck waiting to happen. I think they are worried about the potential 
for writing conflicting or contradictory definitions with slightly 
different call signatures and having difficulty debugging them. After 
showing a couple of examples, though, I think I gave a better sense of how 
useful it is. I suspect it's especially powerful in astronomy for those who 
deal with data from many different sources, all of which need to be 
processed in ways that are conceptually similar but procedurally different.
* Along those lines, the need for a nice debugger was mentioned. Looking 
forward to seeing how this evolves over time.
* Many positive comments about the ease of using C and Python from within 
Julia. Astronomy has really converged on Python over the past few years, 
which i think is great, so many popular packages are already written there.
* There were concerns from those who work in collaborations where they hope 
to share their work, along the lines of "Sharing Python or C code is easy - 
will it be as easy to share Julia and get people on board with that?" But 
that applies to using any uncommon language, I guess.
* Great reactions to some simple stuff like the Unicode support, the simple 
function syntax, and how similar it was to other languages that people are 
familiar with.
* People loved the IJulia/Jupyter notebook, and I used the slideshow 
feature of nbconvert for the first time to make the talk - it's nice!

In case you were interested, I made notebooks of the talk and tutorial 
available <https://github.com/swt30/ioa-julia-tutorials>. It's not much and 
it's probably a bit scattered because of the target audience and the time 
we had, but it might serve as inspiration for anyone writing a similar 
tutorial. And if you see anything that's obviously misleading and think it 
should be fixed now that I've made this available to a larger audience, 
please let me know.

Cheers,

Scott

Reply via email to