# 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:** 20\
**Page:** 3

<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:** [September 26, 2018, 7:58pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/41 "2018-09-26T19:58:25Z")

</div>

Go ahead! I’d add the github integration as one of the “favourite things”, meant to add that…

---

<div class="post-metadata">

**Author:** ![djsegal](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/djsegal/32/13752_2.png) [@djsegal](https://discourse.julialang.org/u/djsegal)\
**Post date:** [September 26, 2018, 9:46pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/42 "2018-09-26T21:46:17Z")

</div>

Lol, I may be someone who abuses this, but the Julia community is much more open to answering whatever question you have.

Wether you’re working on plots, root solving, or anything tangentially related to computation, someone will usually step in and give you an answer. (and they’re usually good ones)

None of this: duplicated question, not my problem, or have you tried jquery nonsense you run into with other programming language communities.

Maybe this will change as Julia explodes, but I think it’s helped me get things done that I would have never thought possible in Python, Ruby, or Fortran

---

<div class="post-metadata">

**Author:** ![kevbonham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kevbonham/32/216165_2.png) [@kevbonham](https://discourse.julialang.org/u/kevbonham)\
**Post date:** [September 27, 2018, 12:20am UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/43 "2018-09-27T00:20:45Z")

</div>

> [@djsegal](#):
>
> None of this: duplicated question, not my problem, or have you tried jquery nonsense you run into with other programming language communities.

Sometimes there’s “duplicate question,” the key difference I think it’s that people will usually link to the other question and not be sent out of shape about it. Speaking for myself, I usually link to other responses because they’re better than what I would come up with 🙂

---

<div class="post-metadata">

**Author:** ![kevbonham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kevbonham/32/216165_2.png) [@kevbonham](https://discourse.julialang.org/u/kevbonham)\
**Post date:** [September 27, 2018, 7:45pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/44 "2018-09-27T19:45:04Z")

</div>

Did you post a link to the markdown?

---

<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:** [September 27, 2018, 7:46pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/45 "2018-09-27T19:46:54Z")

</div>

Sorry, that link I referred to wasn’t very helpful (but similar), here:  
[https://github.com/yakir12/whyjulia](https://github.com/yakir12/whyjulia)

---

<div class="post-metadata">

**Author:** ![Datseris](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/datseris/32/13406_2.png) [@Datseris](https://discourse.julialang.org/u/Datseris)\
**Post date:** [September 27, 2018, 7:47pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/46 "2018-09-27T19:47:31Z")

</div>

Is it correct to say that Julia is “interpreted”, which is the opening slide of your talk?

I thought it is compiled?..

---

<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:** [September 27, 2018, 7:49pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/47 "2018-09-27T19:49:16Z")

</div>

Pfff, I’m not the one to ask, but I thought it was dynamic+interpreted…?

---

<div class="post-metadata">

**Author:** ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)\
**Post date:** [September 27, 2018, 8:00pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/48 "2018-09-27T20:00:56Z")

</div>

> [@yakir12](#):
>
> Pfff, I’m not the one to ask, but I thought it was dynamic+interpreted…?

That’s actually a bit of a howler 😀 From the [introduction](https://docs.julialang.org/en/v1/#man-introduction-1) to the manual:

> Julia features optional typing, multiple dispatch, and good performance, achieved using type inference and [just-in-time (JIT) compilation](https://en.wikipedia.org/wiki/Just-in-time_compilation), implemented using [LLVM](https://en.wikipedia.org/wiki/Low_Level_Virtual_Machine).

But it’s also somewhat understandable, given how you interact with the REPL. Matlab, too, has a JIT for at least parts of the code, and Numba (Python) also JITs to LLVM. There is at least a bit of a blurry grey area between interpreted and compiled languages these days, but Julia, at least, isn’t interpreted, no. I think the main discussion is whether it is correct to say that it is JIT compiled or AOT ((just) Ahead Of Time) compiled.

---

<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:** [September 27, 2018, 8:03pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/49 "2018-09-27T20:03:26Z")

</div>

Lord. Complicated much. Hmm, please feel free (anyone) to change and add and edit that presentation. I might use it again, and if not me, someone else.

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [September 27, 2018, 8:41pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/50 "2018-09-27T20:41:09Z")

</div>

> **[Interpreter (computing)](https://en.wikipedia.org/wiki/Interpreted_language)**
>
> In computer science, an interpreter is a computer program that directly executes instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program. An interpreter generally uses one of the following strategies for program execution:
> Early versions of Lisp programming language and minicomputer and microcomputer BASIC dialects would be examples of the first type. Perl, Raku, Python, MATLAB, and Ruby are examples of ...

Julia has an interpreter but it is not often used. I would not call Julia an interpreted language.

---

<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 1, 2018, 2:56pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/51 "2018-10-01T14:56:48Z")

</div>

I want to revisit this talk’s content and at least correct everything that is wrong. So my whole shpeel about interpreted versus compiled languages was wrong (in the context of Julia). I could just remove that section of the talk, clean off any references to “interpreted” and it would still be fine, right?

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [October 1, 2018, 3:40pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/52 "2018-10-01T15:40:48Z")

</div>

[Jeff Bezanson - Why is Julia fast? - YouTube](https://www.youtube.com/watch?v=cjzcYM9YhwA) is probably good to watch.

---

<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 2, 2018, 12:44pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/53 "2018-10-02T12:44:37Z")

</div>

So is it “wrong” to say that Julia is dynamic? I just want to refer to the property that allows coding in Julia to be so dynamic, as opposed to how stiff and static everything is in say C/++. So while most of the speed in R/MATLAB/Python comes from executables programmed in C, Julia is in Julia.

---

<div class="post-metadata">

**Author:** ![mkborregaard](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkborregaard/32/556_2.png) [@mkborregaard](https://discourse.julialang.org/u/mkborregaard)\
**Post date:** [October 2, 2018, 1:20pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/54 "2018-10-02T13:20:21Z")

</div>

No, Julia is dynamic in the sense that it is dynamically typed, as opposed to statically typed.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [October 2, 2018, 8:02pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/55 "2018-10-02T20:02:12Z")

</div>

> [@yakir12](#):
>
> So is it “wrong” to say that Julia is dynamic?

Also note that for an audience not familiar with CS terminology, “dynamic” usually means “interactive”, ie that you can type stuff into a REPL (eg R, Matlab, Python, Julia), as opposed to “compiled”, where you can’t (C/C++/Fortran/…). This does not necessarily map to other terminology (type system, compilation/execution model), but is a very important distinction nevertheless.

---

<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 2, 2018, 8:11pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/56 "2018-10-02T20:11:20Z")

</div>

My take home message from this is that it’s ok to refer to Julia as dynamic. I need something to hold on to…

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [October 2, 2018, 8:13pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/57 "2018-10-02T20:13:26Z")

</div>

Julia is definitely a dynamic language.

---

<div class="post-metadata">

**Author:** ![tobias.knopp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tobias.knopp/32/7551_2.png) [@tobias.knopp](https://discourse.julialang.org/u/tobias.knopp)\
**Post date:** [October 2, 2018, 8:19pm UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/58 "2018-10-02T20:19:49Z")

</div>

I would not use the term `dynamic language` since it is pretty unclear what that actually means. Julia is `dynamically typed`.

---

<div class="post-metadata">

**Author:** ![mkborregaard](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkborregaard/32/556_2.png) [@mkborregaard](https://discourse.julialang.org/u/mkborregaard)\
**Post date:** [October 3, 2018, 4:29am UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/59 "2018-10-03T04:29:21Z")

</div>

> [@Tamas\_Papp](#):
>
> you can type stuff into a REPL (eg R, Matlab, Python, Julia), as opposed to “compiled”, where you can’t (C/C++/Fortran/…

Well, with C++.jl, theres a C++ REPL in Julia…

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [October 3, 2018, 6:09am UTC](https://discourse.julialang.org/t/preaching-julia-to-biologists/15058/60 "2018-10-03T06:09:57Z")

</div>

> [@mkborregaard](#):
>
> No, Julia is dynamic in the sense that it is dynamically typed, as opposed to statically typed.

You are right, but given the context (introducing Julia to scientists with no formal CS education) I would stay away from the whole type system typology discussion. There is no doubt it _is_ important, but it just wastes 10+ minutes on a detail that is pretty irrelevant in the first pass.

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

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