Julia 1.7 has been released

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. julia

    The Julia Programming Language

    Mutation is tricky, because basically the only way to do it sanely is to copy all data into the residual, but since most arrays aren't actually mutated, that's extremely wasteful. I've been hoping to address this by changing mutability in the language more generally (e.g. https://github.com/JuliaLang/julia/pull/42465) to make immutable arrays the default at which point there wouldn't be a penalty anymore. I've had request to do the mutable copying optionally, but it's a bit tricky, because it needs rule system integration and the rule system currently doesn't reason about mutation.

    As for exceptions and recursion, shouldn't be a problem, just needs to be implemented.

  2. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  3. Diffractor.jl

    Next-generation AD

  4. Infiltrator.jl

    No-overhead breakpoints in Julia

    Yes, it uses Debugger.jl, which relies on JuliaInterpreter.jl under the hood, so while you can tell the debugger to compile functions in certain modules, it will mostly interpret your code.

    You might be interested in https://github.com/JuliaDebug/Infiltrator.jl, which uses an approach more similar to what you describe.

  5. JuliaInterpreter.jl

    Interpreter for Julia code

    I would not go as far as calling it very naive, there has certainly been some work put into optimizing performance within the current design.

    There are probably some gains to be had by using a different storage format for the IR though as proposed in [1], but it is difficult to say how much of a difference that will make in practice.

    [1] https://github.com/JuliaDebug/JuliaInterpreter.jl/pull/309

  6. mujoco

    Multi-Joint dynamics with Contact. A general purpose physics simulator.

    I think I have a good news for you. Deep mind acquired and open sourced the project a few months ago.

    https://github.com/deepmind/mujoco

  7. oxide-enzyme

    Discontinued Enzyme integration into Rust. Experimental, do not use.

  8. SciMLBenchmarks.jl

    Scientific machine learning (SciML) benchmarks, AI for science, and (differential) equation solvers. Covers Julia, Python (PyTorch, Jax), MATLAB, R

  9. ModelingToolkit.jl

    An acausal modeling framework for automatically parallelized scientific machine learning (SciML) in Julia. A computer algebra system for integrated symbolics for physics-informed machine learning and automated transformations of differential equations

  10. DifferentialEquations.jl

    Multi-language suite for high-performance solvers of differential equations and scientific machine learning (SciML) components. Ordinary differential equations (ODEs), stochastic differential equations (SDEs), delay differential equations (DDEs), differential-algebraic equations (DAEs), and more in Julia.

    Let's even put raw numbers to it. DifferentialEquations.jl usage has seen compile times drop from 22 seconds to 3 seconds over the last few months.

    https://github.com/SciML/DifferentialEquations.jl/issues/786

  11. FrechetDiff.jl

    FrechetDiff is an experimental Julia package for automatic differentiation (AD).

  12. DiffEqOperators.jl

    Discontinued Linear operators for discretizations of differential equations and scientific machine learning (SciML)

    >I hope those benchmarks are coming in hot

    M1 is extremely good for PDEs because of its large cache lines.

    https://github.com/SciML/DiffEqOperators.jl/issues/407#issue...

    The JuliaSIMD tools which are internally used for BLAS instead of OpenBLAS and MKL (because they tend to outperform standard BLAS's for the operations we use https://github.com/YingboMa/RecursiveFactorization.jl/pull/2...) also generate good code for M1, so that was giving us some powerful use cases right off the bat even before the heroics allowed C/Fortran compilers to fully work on M1.

  13. RecursiveFactorization.jl

    >I hope those benchmarks are coming in hot

    M1 is extremely good for PDEs because of its large cache lines.

    https://github.com/SciML/DiffEqOperators.jl/issues/407#issue...

    The JuliaSIMD tools which are internally used for BLAS instead of OpenBLAS and MKL (because they tend to outperform standard BLAS's for the operations we use https://github.com/YingboMa/RecursiveFactorization.jl/pull/2...) also generate good code for M1, so that was giving us some powerful use cases right off the bat even before the heroics allowed C/Fortran compilers to fully work on M1.

  14. black

    The uncompromising Python code formatter

    I don't understand how it's ever an actual problem and not just people being lazy / literally just starting out learning the language. Every Python-capable editor / IDE is capable of, and immediately will, notify you of any formatting issues of the sort. Python also has great, trivial to use autoformatters like black[1] that essentially all production code should use.

    What realistic scenario is there where it actually makes sense deviating from the standard the language is trying to enforce?

    [1] https://github.com/psf/black

  15. OMEinsum.jl

    One More Einsum for Julia! With runtime order-specification and high-level adjoints for AD

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Building a compile-time SIMD optimized smoothing filter

    4 projects | news.ycombinator.com | 28 Sep 2024
  • Good linear algebra libraries

    1 project | /r/Julia | 19 May 2023
  • Julia 1.9: A New Era of Performance and Flexibility

    3 projects | /r/Julia | 14 May 2023
  • How much useful are Runge-Kutta methods of order 9 and higher within double-precision arithmetic/floating point accuracy?

    2 projects | /r/Julia | 2 Sep 2022
  • Interpolant Coefficients for the BS5 Runge-Kutta method

    1 project | /r/Julia | 11 Aug 2022

Did you know that Julia is
the 47th most popular programming language
based on number of references?