I am a student enrolled in a master’s degree in analysis, modelling and simulations. I have already followed a couple of introduction courses on these subjects, and completed a degree in pure mathematics and computer science. I have a long summer coming up, and, having used and fallen in love with the Julia language, I would like to give back in whatever way I can (other than, of course, spreading the word, which I am already doing tirelessly!). I am free to invest quite a lot of time and energy into this, too.
I have gone through the pages addressing contributions in the Julia website, but I feel like it doesn’t quite align with what I would be most helpful with, as it mostly mentions image processing and machine learning, whereas I would like to get more into the scientific computing / numerical analysis side of things.
I have heard people say that the Julia ecosystem for these domains is still not as developed as other languages’. What does that mean more precisely, and how can I help out? Are there any specific libraries that need help which someone with my background could contribute to? Would it instead be easier and more useful for me to create my own library? If yes, are there currently any relatively low-hanging fruits that could improve the ecosystem?
Anything related, in one way or another, to PDEs would be ideal, and insofar as more scientific applications go, I enjoy astrophysics, but honestly, I just want to do whatever would be most helpful. I keep the question somewhat vague, in case anyone else finds any answers helpful at some point.
Thanks a lot. I’m looking forward to joining you soon!
Do you have a favourite topic within scientific computing or numerical analysis? Then look into open issues within packages in that area
For myself, I did only start with Julia as a PostDoc, but had a topic I was – and still am – passionate about. Back then that did not yet exist, so I slowly started my own package.
But before you directly dive into “What do I have to do to get an own package started” … it is probably really best you take your favourite topic you are interested in, look for package you find interesting and look
at their open issues – maybe especially the “good first issue” tagged ones and take a look whether you can fix them
take a look at the documentation, if you see outdated parts or typos – fix them!
maybe start with some first few own numerical experiments using these packages you like, maybe you stumble upon a paper or a small algorithm or function you can contribute back.
Welcome, and thanks for asking where you can contribute to the Julia ecosystem! Since you mentioned solving PDEs and astrophysics, I assume you have some experience with finite volume and/or discontinuous Galerkin methods. In this case, you could consider contributing to Trixi.jl, a Julia package focusing on modern adaptive numerical methods for conservation laws (like the compressible Euler and Navier-Stokes euqations, with spin-off packages focusing on shallow-water and atmospheric flows). Please let me know if you would like to know more about this topic.
I am not sure where you heard that Julia is behind in the scientific computing domain, as I would say it’s the one field where Julia is probably state of the art or close to it!
I think that a lot of the ecosystem can feel a bit raw and not as polished as others though. And for that there are always things to do. Be it documentation work, API polishing, non essential “good to have” features, you name it.
Creating your own package is always a great learning experience on how the whole registry, maintaining, publishing mechanism works and might also give you a hand in understanding existing projects.
You could also take a look at the GSoC program from the SCIML ecosystem. I also believe there is a bounty program (can’t seem to find the link at the moment, but others might chime in)
Otherwise as others have mentioned you could take a look at the various packages issues. I believe most have a “good first issue” tag. One that comes to mind is Meshes.jl which might interest you.
Once thing to note tough, open source in all its beauty is a pretty rough space. Expect to have to figure a lot of things on your own. Most maintainers don’t have the time to handhold the process so if you feel like your contributions are being ignored, don’t take it personally and take it upon yourself to try and bring it home.
If there’s an invaluable lesson open source taught me is taking the initiative.