@world-peace, I can no longer quote your post, but to answer you, there’s e.g. this use case:
To a Python developer, SciML is SciPy, but with the high-performance GPU, capabilities of PyTorch, and neural network capabilities, all baked right in. With SciML, there is no “separate world” of machine learning sublanguages: there is just one cohesive package ecosystem.
Why SciML? High-Level Workflow Reasons
- Performance - The key reason people are moving from SciPy to Julia’s SciML in droves is performance. Even simple ODE solvers are much faster!, demonstrating orders of magnitude performance improvements […]
- Package Management and Versioning - Julia’s package manager takes care of dependency management, testing, and continuous delivery in order to make the installation and maintenance process smoother. For package users, this means it’s easier to get packages with complex functionality in your hands.
- Composable Library Components - In Python environments, every package feels like a silo. Functions made for one file exchange library cannot easily compose with another. SciML’s generic coding with JIT compilation these connections create new optimized code on the fly and allow for a more expansive feature set than can ever be documented. […]
- Easier High-Performance and Parallel Computing - With Julia’s ecosystem, CUDA will automatically install of the required binaries and […] Basically, libraries give you a lot of parallelism for free, and doing the rest is a piece of cake.
- Mix Scientific Computing with Machine Learning - Want to automate the discovery of missing physical laws using neural networks embedded in differentiable simulations? Julia’s SciML is the ecosystem with the tooling to integrate machine learning into the traditional high-performance scientific computing domains, from multiphysics simulations to partial differential equations.
[…]- Use PyCall.jl to more incrementally move code to Julia.
It seems the docs are a bit outdated, I would not recommend PythonCall.jl rather than PyCall.jl (though both work even together is you’re careful).
You can use SciML alone from Julia (e.g. abandon Python), or you can clal it from Python (or R) with:
That package used to be implemented differently until I suggest julicall/PythonCall.jl. A lot of stuff online is outdated that way (not rather mentioning it):
In the space of symbolic regression, Julia has a clear advantage in terms of support. The most widely adopted library for symbolic regression is SymbolicRegressions.jl [17]. The Python alternative PySR is simply a wrapper for this library, which is in turn a dependency for PyTorch [62].