# This month in Julia world - 2024-04

**URL:** <https://discourse.julialang.org/t/this-month-in-julia-world-2024-04/113638>\
**Category:** Newsletter\
**Created:** [April 30, 2024, 3:42am UTC](https://discourse.julialang.org/t/this-month-in-julia-world-2024-04/113638 "2024-04-30T03:42:12Z")\
**Posts on this page:** 1\
**Showing post:** 8

<div class="post-metadata">

**Author:** ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)\
**Post date:** [May 1, 2024, 1:50pm UTC](https://discourse.julialang.org/t/this-month-in-julia-world-2024-04/113638/8 "2024-05-01T13:50:25Z")

</div>

> [@jlapeyre](#):
>
> Not that the actual package isn’t good.

The really interesting part is the stuff we can do with ADTypes.jl + DifferentiationInterface.jl

> [@\[ANN\] DifferentiationInterface - gradients for everyone](https://discourse.julialang.org/t/ann-differentiationinterface-gradients-for-everyone/113644):
>
> Julia’s composability has rather interesting consequences for its [automatic differentiation ecosystem](https://juliadiff.org). Whereas Python programmers first choose a backend (like PyTorch or JAX) and then write code that is specifically tailored to it, Julians first write their code and then make it differentiable for one or more of the many available backends (like ForwardDiff.jl or Zygote.jl). Forward and reverse mode, numeric and symbolic, Julia has it all. But it’s not always obvious which option is best suited …

---

_[View the full topic](https://discourse.julialang.org/t/this-month-in-julia-world-2024-04/113638)._
