Category Archives: Julia

Julia & JuliaHub: Advancing Innovation and Growth

By: Andrew Claster

Re-posted from: https://info.juliahub.com/blog/julia-juliahub-advancing-innovation-and-growth

Julia and JuliaHub: Advancing Innovation and Growth

JuliaHub and the Julia community have grown at a tremendous pace in recent years, and we want to take this opportunity to celebrate some of these successes.

Julia Growth By the Numbers

Julia use and development continue to grow rapidly. In the past 5 years, the number of Julia Discourse views has grown +494% to more than 136 million, the number of cumulative GitHub stars for Julia and registered Julia packages has grown +412% to more than 511 thousand, the number of published citations of three core Julia papers has grown +391% to more than 8 thousand and the number of registered Julia packages has grown +322% to more than 11 thousand.

Cumulative Jan 1, 2020 Jan 1, 2025 5-Year Increase
Julia Discourse Views 22,920,570 136,228,916 +494%
GitHub Stars – Julia Language + Registered Julia Packages 99,830 511,151 +412%
Published Citations of Julia Papers 1,680 8,252 +391%
Julia Language YouTube Channel Cumulative Minutes Watched 9,661,260 42,724,782 +342%
Number of Registered Julia Packages 2,787 11,766 +322%
Number of News Articles Mentioning Julia or JuliaHub 468 1,470 +214%
Highest TIOBE Ranking Ever Reached 37 20 +17 places

In January 2020, Julia v1.4 was released. Today, the latest release is Julia v1.11, with many new features and capabilities. A summary of the advanced features and capabilities from the last 5 years is available here:

JuliaCon: Since January 2020, there have been 5 JuliaCons, including 3 virtual JuliaCons. The first virtual JuliaCon had nearly 30,000 participants. In-person attendance has more than doubled since the pre-pandemic conferences to over 600 participants last year. The number and quality of presentations has also increased, as has the number of online views. Click here to watch last year’s presentations.

JuliaHub: JuliaHub has grown to more than 100 employees in more than 20 countries on six continents. JuliaHub has conducted and published 85 free Webinars and contributed hundreds of thousands of hours and millions of lines of code to the Julia language and open source Julia packages.

JuliaHub Products: Over the last five years, JuliaHub has created new products that help users get the most out of Julia.

  • JuliaHub: JuliaHub is a platform that empowers scientists, engineers, software developers, and innovators with all the high performance computing power and application development tools they need to realize path breaking ideas at enterprise scale.
  • JuliaSim: JuliaSim is the next-generation cloud-based platform for model-based design. JuliaSim uses modern scientific machine learning (SciML) techniques and equation-based digital twin modeling and simulation to accelerates simulation times, significantly reducing workflow runtime from months to hours. JuliaSim encompasses block diagrams, acausal modeling, state transition diagram and a differentiable programming language all within a single environment.
  • JuliaSim Batteries: JuliaSimBatteries is an advanced lithium-ion battery simulation tool integrating sophisticated electrochemical, thermal, and degradation physics. Utilizing the Doyle Fuller Newman (DFN) model, it can predict a battery’s entire lifetime with fast charging 150,000 times faster than real time. The number of connected batteries is scalable from one cell to packs of thousands using electrochemical models. Scientific Machine Learning (SciML) enables the discovery of hidden governing laws from data, such as degradation and low-temperature behavior.
  • JuliaSim HVAC: JuliaSim HVAC takes a fresh approach to tackle the complexities of HVAC (Heating, Ventilation, and Air Conditioning) system modeling and simulation. It offers a comprehensive suite of tools to model and simulate complex thermofluid systems. The JuliaSim HVAC library of pre-built components and refrigerant models connects to advanced solvers that are customized to system behavior and are composable with the JuliaSim Scientific Machine Learning (SciML) ecosystem.
  • JuliaSim Control: JuliaSim Control is a comprehensive toolkit for the design, simulation, analysis, and optimization of control systems. Built with the Julia programming language and integrated with ModelingToolkit.jl and the JuliaControl ecosystem, it offers a unified platform for the analysis, design and optimization of linear and nonlinear control systems.
  • Pumas: Pumas is a comprehensive platform for pharmaceutical modeling and simulation, providing a single tool for the entire drug development pipeline. It is used for simulation and estimation of quantitative pre-clinical and clinical pharmacological models.

The Best Is Still to Come: JuliaHub and the Julia community are currently working on a number of innovations that will continue to fuel our growth and development for years to come. Stay tuned!

My farewell to <code>@unpack</code>

By: Tamás K. Papp

Re-posted from: https://tamaspapp.eu/pages/blog/2025/farewell-to-unpack/index.html

First, a bit of Julia history. When Parameters.jl introduced the @unpack macro in 2015, it scratched an imporant itch for Julia users at the time, especially those coming from (Common) Lisp who were used to cl:with-slots and similar macros. Given any object with properties, say foo and bar, one could bring them into scope with

@unpack foo, bar = x

instead of a clumsy

foo = x.foo
bar = x.bar

The functionality was so useful that it was later (around 2019) factored out into its own tiny package, UnPack.jl.

Of course the Julia developers recognized how great this feature was, and Julia 1.7 (in 2021) brought us the property destructuring syntax

(; foo, bar) = x

But since 1.7 was not an LTS, many packages did not require that version and kept relying on @unpack. In 2023, SimpleUnPack.jl was written as a drop-in replacement for the most common use case while being easier on the compiler.

Since Julia 1.10 is an LTS, I am gradually removing @unpack from my packages whenever I happen to refactor them. This is, strictly speaking, not necessary (it would just work forever), but I like to simplify code when I happen to refactor it for some other reason. I am taking this opportunity to reflect on how useful it was.

There are quite a few lessons there about software development in general, and specifically for Julia:

  1. Macros are amazingly powerful. No wonder that Lisp users consider them a killer feature, they can extend the language with very useful syntax at essentially zero runtime and negligible compile time cost. It was a great decision for Julia to include them.

  2. The best way to extend a language with new features is to first implement them as a package. This allows experimentation and quick turnaround, leading to a polished end product that the language can include.

  3. Once your Julia code works, it will keep working for a long time, potentially forever in 1.x land. UnPack.jl still has 200 dependents. This allows developers to make upgrades at their own pace, prioritizing more urgent issues.

Bonus feature

This little Emacs snippet does the conversion from @unpack ... to (; ...), also working on multiline code etc, either on standalone files or whole packages opened in dired.

(defun my-julia-remove-unpack ()
  "Go from `@unpack' to `(; ...)` destructuring syntax. Works in dired mode and buffer."
  (interactive)
  (let* ((from (rx "@unpack"
                   (one-or-more space)
                   (or (seq "(" (group-n 1 (one-or-more (not "@"))) ")")
                       (group-n 1 (one-or-more (not (or ?@ ?\n))))
                       )
                   (one-or-more space)
                   "="))
         (to "(; \\1) ="))
    (cond
     ((eq major-mode 'julia-mode) (query-replace-regexp from to))
     ((eq major-mode 'dired-mode) (dired-do-query-replace-regexp from to))
     (t (message "Don't know what to do with mode %s" major-mode)))))

P.S.

(I am reviving my blog after a long break.)

JuliaSim: Building a Product which improves Open Source Sustainability

By: Christopher Rackauckas

Re-posted from: https://www.stochasticlifestyle.com/juliasim-building-a-product-which-improves-open-source-sustainability/

How do you build products that support open source communities? In this non-technical talk with OpenTeams I discuss how the MIT Julia Lab, PumasAI, and JuliaHub have all been essential pillars of the julialang opensource community in its goal to achieve sustainable open science. If you’ve ever been curious about what the difference is between the Julia Lab and JuliaHub is, the evolution of these groups, and what kinds of different contributions they make to the open source community, in this talk I go through as many details as I could!

The post JuliaSim: Building a Product which improves Open Source Sustainability appeared first on Stochastic Lifestyle.