4 ms·
I'm a massive Julia fanboy, but I would not extend Python with Julia if I could choose not to. Julia has a _massive_ runtime with a hello-world script consuming
by jakobnissen 6y ago
I'm a massive Julia fanboy, but I would not extend Python with Julia if I could choose not to. Julia has a _massive_ runtime with a hello-world script consuming 150 MB of RAM, not to mention the dreaded startup-time.
It's better and easier to use Julia as your main top-level "glue" language and call Python/Rust/C from Julia. Julia is in many ways a better glue language than Python - better multithreading, easier calling into C/Rust, etc. Then, over time, to the extent it is practical, you can replace foreign code with Julia code - because Julia is fast enough that it actually makes sense to do so.
If you already have a large Python code base and can't switch the top-level language to Julia, I would just not use Julia for that project.
- galangalalgol 6y agoYou seem to understand Julia well. Is there a reason there is no nexus plugin or way to mirror the julia repo for dev networks that dont have unrestricted access to the internet, or are even airgapped. I see multiple people asking this online, so it is a common enough problem, but it seems like people are saying the Julia approach makes it hard to support.
- jakobnissen 6y agoI'm sorry, I have no idea, but I'm sure someone else has insight. Why would you want to mirror the Julia repo instead of just downloading already-compiled binaries? Do you want to maintain your own fork with your own set of patches?
- galangalalgol 6y agoFiguring the whole dependency tree without the package manager would be difficult and the build file sometimes has other side effects besides building for many packages. And downloading the binaries rather than letting the source go through nexus would be sidestepping most of the network security (and maybe legal) reasons people use nexus.
- ZeroCool2u 6y agoFrankly, Julia is a young language, so these things have yet to materialize. Also, for those that really do want it, the Julia package mirror is one of the few products that the company behind Julia sells as part of JuliaHub. It is inconvenient though that it doesn't fit in with the rest of the languages in Nexus.
- galangalalgol 6y agoIsn't julia hub still remote? You can't install it on an airgap or behindnyour firewall on your own equipment can you?
- ZeroCool2u 6y agoI'm not sure honestly. We didn't end up buying it, because so few people use Julia in our org. Too much legacy matlab code and the professors in academia have yet to switch over.
- squarefocus 6y agoIt is possible to write a script that mirrors the registry, packages, and artifacts and set up a dev image that respects it. The script basically just needs to use Pkg and Base. However, artifacts end up taking too much space and then you have to decide how to host only a subset of package versions intelligently and propagate that change through at least the registry and artifact mirrors. I went far down this path before infosec agreed to give github / highly respected cdn access.
- O_H_E 6y ago> _massive_ runtime ... 150MB of RAM, not to mention the dreaded startup-time. I understand how can this be inconvenient for me and you while scripting. But this is absolutely no problem for julia's currently main target market who runs multi-GB simulations. Also it is not like they will be spawning a julia instance in a hot loop (THAT would be horrible). You write some julia code, and import it using smth like pyjulia at the beginning of the file.
- deleted 6y ago[deleted]