# Introducing Julia to experienced developers

**URL:** <https://discourse.julialang.org/t/introducing-julia-to-experienced-developers/86240>\
**Category:** Community\
**Created:** [August 24, 2022, 7:42am UTC](https://discourse.julialang.org/t/introducing-julia-to-experienced-developers/86240 "2022-08-24T07:42:52Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Fabien\_T](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fabien_t/32/39053_2.png) [@Fabien\_T](https://discourse.julialang.org/u/Fabien_T)\
**Post date:** [August 24, 2022, 7:42am UTC](https://discourse.julialang.org/t/introducing-julia-to-experienced-developers/86240/1 "2022-08-24T07:42:52Z")

</div>

I will present Julia to a small audience of experienced developers. I already know some of the things I want to talk about (workflows, things that I like about Julia). I also want to hear what others have to say on the subject. What do you, an experienced developer, find especially nice about Julia?

---

<div class="post-metadata">

**Author:** ![ffevotte](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ffevotte/32/6587_2.png) [@ffevotte](https://discourse.julialang.org/u/ffevotte)\
**Post date:** [August 24, 2022, 8:14am UTC](https://discourse.julialang.org/t/introducing-julia-to-experienced-developers/86240/2 "2022-08-24T08:14:47Z")

</div>

Bonjour et bienvenue !

I have to say that experienced developers have a very wide spectrum of expectations. Having been in your place a few times, my experience is that:

- people spending 95% of their time coding in Python/R/Matlab are often attracted by a promise of performance. But they tend to dislike the Julia workflow (at least at first) and they often rely on tons of 3rd-party package that may or may not be present in the ecosystem.

- on the other hand, people spending 95% of their time coding in C/C++/Fortran tend to very much like the very fact that there is a package ecosystem at all.

- only developers who have experienced first hand the 2-language problem tend to really understand what Julia has to offer here.

> [@Fabien\_T](#):
>
> What do you, an experienced developer, find especially nice about Julia?

Now to my answer to your specific question, what I personally like about Julia is:

- that it offers a wide palette of features that make it useful at all stages of a project: fast prototyping at the beginning, optimization of performance bottlenecks (and only those; no need to translate 100% of your code to C++ in order for the 5% which matter to be fast)

- that it makes it possible for packages to interact and cooperate in totally new ways : there is in my experience far less “glue code” (if any) needed to make 2 packages work together in Julia than in Python for example.

- that it allows writing very concise and readable code; I find it takes less stack space in my brain to keep track of my code, which frees up some stack to actually think about the problems I want to solve. Incidentally, this also makes it easier to get inspiration from what other experienced developers write (try to read a C++ STL implementation vs the Julia Base library), and easier to contribute to Open Source projects.

---

<div class="post-metadata">

**Author:** ![j-fu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/j-fu/32/11373_2.png) [@j-fu](https://discourse.julialang.org/u/j-fu)\
**Post date:** [August 24, 2022, 8:50am UTC](https://discourse.julialang.org/t/introducing-julia-to-experienced-developers/86240/3 "2022-08-24T08:50:53Z")

</div>

- Being much more concise than C++ while not sacrifying performance
- (for my particular field of work) Leveraging automatic differentiation via multiple dispatch
- The package ecosystem supporting reusability and easy deployment to less experienced users

May be you can steal some ideas from a talk I gave in a similar setting: [TIB AV-Portal](https://av.tib.eu/media/57515)

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [August 24, 2022, 9:52am UTC](https://discourse.julialang.org/t/introducing-julia-to-experienced-developers/86240/4 "2022-08-24T09:52:49Z")

</div>

Check my blog post: [Why am I using Julia? | Julia programming notes](https://ufechner7.github.io/2022/08/13/why-julia.html)

---

<div class="post-metadata">

**Author:** ![SteffenPL](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/steffenpl/32/206270_2.png) [@SteffenPL](https://discourse.julialang.org/u/SteffenPL)\
**Post date:** [August 24, 2022, 11:25am UTC](https://discourse.julialang.org/t/introducing-julia-to-experienced-developers/86240/5 "2022-08-24T11:25:21Z")

</div>

In my experience a key challenge is to communicate effectively how multiple dispatch gives real benefits. I liked this talk which makes references to other languages as well: [JuliaCon 2019 | The Unreasonable Effectiveness of Multiple Dispatch | Stefan Karpinski - YouTube](https://www.youtube.com/watch?v=kc9HwsxE1OY)

---

<div class="post-metadata">

**Author:** ![lmiq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lmiq/32/18314_2.png) [@lmiq](https://discourse.julialang.org/u/lmiq)\
**Post date:** [August 24, 2022, 11:41am UTC](https://discourse.julialang.org/t/introducing-julia-to-experienced-developers/86240/6 "2022-08-24T11:41:19Z")

</div>

There are some more pedestrian reasons that can be important:

- The package manager.
- The integration with the documentation (both doc strings/REPL and Documenter)
- The workflow with Revise (except that cases where it fails, it is _the best_ development workflow IMO)
- Benchmarking small functions quickly and effectively with BenchmarkTools and the REPL.
