Preaching Julia to biologists

All right, I removed all the interpreted references and used the word “dynamic” where needed. I also added a README file with instructions. Hopefully this will prove useful to anyone else needing to present in front of a non-CS audience. Thanks again for all the help!

Link to the repository with all the files (you really need just the one): https://github.com/yakir12/whyjulia
Link to the (hosted) talk: reveal-md

@yakir12 Thanks so much for this presentation. I shamelessly copied and modified it for a workshop I’m giving this week in front of a group of physicists (mostly PhD level). I’ll add references to you and all the other people whos content I basically stole at a later point (sorry!).

I added a couple of slides where I, for example, show that >50% auf numpy is in C and ~70% of Julia is written in Julia. Thought you might wanna take a look.

https://github.com/crstnbr/julia-workshop/blob/master/0%20Intro%20and%20prerequisites/intro-presentation/

2 Likes

Interesting, I would have expected this to be higher. Are standard libraries (Statistics, LinearAlgebra etc.) that were factored out for 0.7/1.0 included? This would imo make for a more fair comparison with Numpy, R etc.

It’s based on the julia github repository. So stdlibs are included.

1 Like

Super cool! Looks really good! Be advised that I recently removed all the interpreted mentions and replaced them with “dynamic”.

I was looking for something like that, I think that’s a great addition! It would however be awesome to have a more fair comparison (in regards to what’s included). Once I realized I couldn’t get a good grasp on what’s been compared I abandoned that slide. But maybe someone here can get the stats right? Something like a % language per language for its core and the whole universe… This is probably really hard to get right.

Agreed. However, in my particular case I’m just trying to make the point that julia is largely written in julia. No one in my audience really cares about the precise numbers.

1 Like

I would like to do a similar presentation for PhD students in economics. Is there some similar presentation already available? :slight_smile: Any help would be really appreciated!

Everything you need is here!

Thanks, I’ll fork it and adjust it to the economic audience a little bit more. I’ll post the link when it is done :grin:

1 Like

Looks good. One thing, on slide 5, you say “CCall.jl”, and I know what you mean (googled just in case and found no package). Possibly you want to say something like ccall keyword to call C (and other languages, like Fortran and Rust), plus these packages for more:

Then you list:

It seems like it’s not updated, only to 0.6.

Looks good!

I did a similar talk in my department. Luckily the group self-selected based on the topic so I ended up with all the modellers turning up, so I could talk about how the language worked a little more and maintain interest.

When you can compare julia to C++ and Fortran as well as to R is when Julia starts to look as amazing as it is. But for scripting statistical analysis to standard biologists it’s still a hard sell. But they may not be so important in language adoption, it’s the top 10% of users who set the pace for everyone else.

I honestly didn’t convince anyone immediately, but there is definitely more talk going around and its more of a known quantity. It’s demonstration of the applications that will win in the end

2 Likes

Thanks a lot! Updated. As to the Mathematica, I’ll just keep it for flare… I have no ambitions of keeping this updated according to the version status of all these packages.

BTW, you didn’t mean for a list of packages to appear after the:

cause there’s nothing there. Just checking I didn’t miss anything.

I agree. For my specific case it was more like, “what is this Julia you can’t shut up about?!” so I gave them a presentation. It went ok, but most of the people were not the ones to adopt a new language (or program much in any language). Except one. He kept on saying “Wah…” and loved it. So worth it :slight_smile:

3 Likes

That sounds like any class I’ve taught, as long as there’s one person who shows interest, the time spent preparing feels worthy. I didn’t convince anyone in my old job to move from SAS to R, I’m not expecting to move anyone to use Julia in my new job, because we barely do any analysis. But I still talk about it anytime I have the chance.

2 Likes

I meant for this text to go on your slide, and then your list of packages [implied in my post, could have been more clear, I see you mentioned ccall later.]

MATLAB.jl , RCall.jl , PyCall.jl , JavaCall.jl , Mathematica.jl , and ccall keyword to call C (and other languages, like Fortran and Rust)

There’s no need to add C++ to that list, for your audience I guess (but I feel it’s important for programmers to know of the possibility, and that it’s at least as easy as from Python), and I didn’t want to complicate my proposed text, saying there being no strict need for fcall keyword (what I expected and with such however having been discussed, is there lots of Fortran code being reused directly? Possibly more indirecty, i.e. through a C interface?), nor a potential “c++call” keyword; or by listing the packages to support C++ (I know at least two packages, that you may want to list, either or both…), that as with all other languages use ccall indirectly. The text is ok, as C++ falls under other languages, with the possibility to use ccall for it only and doing your own name mangling…

Nitpick: About “all functionalities”, you can call all these languages (and other way around for e.g. Python and R with packages that support), but I guess you can’t e.g. sub-class Java classes. So, unlike for Python, you can only call libraries, but not reuse frameworks, e.g. [Java] GUI frameworks, but you can reuse Python GUI packages [(really indirectly e.g. Qt, and maybe even directly if you can subclass C++ classes). Frameworks use the “the Hollywood principle”: “don’t call us, we’ll call you”, so they have to call your code, I think usually implemented that way by sub-classing; e.g. a Python class (I read PyCall.jl supports that, and thus I assume should work also for e.g. Django web framework, has anyone done such?). Modulo bugs, I understand all Python functionality should work, and if I recall you can also sub-class C++ (with one of, not the other package?), but I’m not sure all functionality of C++ is supported, so that’s an argument then against adding it to the list?

I also add this point to my presentation.

Great discussion, many things to use for my presentation. Thanks to everyone :slight_smile:.