# Preaching Julia to biologists

**URL:** <https://discourse.julialang.org/t/preaching-julia-to-biologists/15058>\
**Category:** Teaching & Outreach\
**Created:** [September 17, 2018, 10:49am UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058 "2018-09-17T10:49:52Z")\
**Posts on this page:** 17\
**Page:** 4

<div class="post-metadata">

**Author:** ![yakir12](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yakir12/32/297_2.png) [@yakir12](https://discourse.julialang.org/u/yakir12)\
**Post date:** [October 3, 2018, 8:36am UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/61 "2018-10-03T08:36:50Z")

</div>

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/blob/master/presentation.md)): [https://github.com/yakir12/whyjulia](https://github.com/yakir12/whyjulia)  
Link to the (hosted) talk: [reveal-md](https://yakir12.github.io/whyjulia)

---

<div class="post-metadata">

**Author:** ![carstenbauer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/carstenbauer/32/4981_2.png) [@carstenbauer](https://discourse.julialang.org/u/carstenbauer)\
**Post date:** [October 3, 2018, 10:31am UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/62 "2018-10-03T10:31:19Z")

</div>

@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/](https://github.com/crstnbr/julia-workshop/blob/master/0%20Intro%20and%20prerequisites/intro-presentation/)

---

<div class="post-metadata">

**Author:** ![jtackm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jtackm/32/4784_2.png) [@jtackm](https://discourse.julialang.org/u/jtackm)\
**Post date:** [October 3, 2018, 10:34am UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/63 "2018-10-03T10:34:40Z")

</div>

> [@carstenbauer](#):
>
> ~70% of Julia is written in Julia.

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.

---

<div class="post-metadata">

**Author:** ![carstenbauer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/carstenbauer/32/4981_2.png) [@carstenbauer](https://discourse.julialang.org/u/carstenbauer)\
**Post date:** [October 3, 2018, 10:37am UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/64 "2018-10-03T10:37:40Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![yakir12](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yakir12/32/297_2.png) [@yakir12](https://discourse.julialang.org/u/yakir12)\
**Post date:** [October 3, 2018, 10:50am UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/65 "2018-10-03T10:50:02Z")

</div>

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

> [@carstenbauer](#):
>
> show that \>50% auf numpy is in C and ~70% of Julia is written in Julia

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.

---

<div class="post-metadata">

**Author:** ![carstenbauer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/carstenbauer/32/4981_2.png) [@carstenbauer](https://discourse.julialang.org/u/carstenbauer)\
**Post date:** [October 3, 2018, 11:21am UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/66 "2018-10-03T11:21:15Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![IljaK91](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/iljak91/32/44301_2.png) [@IljaK91](https://discourse.julialang.org/u/IljaK91)\
**Post date:** [October 4, 2018, 4:55pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/67 "2018-10-04T16:55:27Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![yakir12](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yakir12/32/297_2.png) [@yakir12](https://discourse.julialang.org/u/yakir12)\
**Post date:** [October 4, 2018, 5:00pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/68 "2018-10-04T17:00:29Z")

</div>

Everything you need is [here](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/61)!

---

<div class="post-metadata">

**Author:** ![IljaK91](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/iljak91/32/44301_2.png) [@IljaK91](https://discourse.julialang.org/u/IljaK91)\
**Post date:** [October 4, 2018, 5:48pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/69 "2018-10-04T17:48:55Z")

</div>

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 😁

---

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [October 7, 2018, 9:19pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/70 "2018-10-07T21:19:55Z")

</div>

> [@yakir12](#):
>
> In case anyone’s watching, [here](https://yakir12.github.io/whyjulia)’s my presentation as it stands now.

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:

> **[GitHub - JuliaInterop/Mathematica.jl: Call Mathematica from Julia](https://github.com/JuliaInterop/Mathematica.jl)**
>
> Call Mathematica from Julia. Contribute to JuliaInterop/Mathematica.jl development by creating an account on GitHub.

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

---

<div class="post-metadata">

**Author:** ![Raf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raf/32/3383_2.png) [@Raf](https://discourse.julialang.org/u/Raf)\
**Post date:** [October 8, 2018, 4:23am UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/71 "2018-10-08T04:23:59Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![yakir12](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yakir12/32/297_2.png) [@yakir12](https://discourse.julialang.org/u/yakir12)\
**Post date:** [October 8, 2018, 7:23am UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/72 "2018-10-08T07:23:35Z")

</div>

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:

> [@Palli](#):
>
> plus these packages for more:

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

---

<div class="post-metadata">

**Author:** ![yakir12](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yakir12/32/297_2.png) [@yakir12](https://discourse.julialang.org/u/yakir12)\
**Post date:** [October 8, 2018, 7:26am UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/73 "2018-10-08T07:26:11Z")

</div>

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 🙂

---

<div class="post-metadata">

**Author:** ![alejandromerchan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/alejandromerchan/32/10500_2.png) [@alejandromerchan](https://discourse.julialang.org/u/alejandromerchan)\
**Post date:** [October 8, 2018, 5:02pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/74 "2018-10-08T17:02:48Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [October 10, 2018, 1:10pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/75 "2018-10-10T13:10:26Z")

</div>

> [@yakir12](#):
>
> Updated. […]
> 
> BTW, you didn’t mean for a list of packages to appear after the:
> 
> > plus these packages for more:
> 
> cause there’s nothing there. Just checking I didn’t miss anything.

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?

---

<div class="post-metadata">

**Author:** ![KZiemian](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kziemian/32/9020_2.png) [@KZiemian](https://discourse.julialang.org/u/KZiemian)\
**Post date:** [November 10, 2018, 2:03pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/76 "2018-11-10T14:03:07Z")

</div>

I also add this point to my presentation.

---

<div class="post-metadata">

**Author:** ![KZiemian](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kziemian/32/9020_2.png) [@KZiemian](https://discourse.julialang.org/u/KZiemian)\
**Post date:** [November 10, 2018, 7:01pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/77 "2018-11-10T19:01:01Z")

</div>

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

[Previous page](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058.md?page=3)
