github.com/JuliaOptics/About
github.com/JuliaOptics/About
For reference, we (metalenz.com) have a large Julia codebase centered around optical design, simulation, and analysis. The motivation for that is more along the lines of composability and clarity of abstractions (aided by multiple-dispatch). We can differentiate through our physical optics solver code (forward or reverse) for optimization/ML, plug in our designs across a hierarchy of different E&M solvers, run on GPU, and write very efficient code when our profiling identifies a bottleneck. If we just had to perform one thing (physical optics simulations), then our investment wouldn't be as justified.
But only if it is well documented. And that is really the problem with Julia. Besides some video tutorials, which I don't find helpful, you only have the manual which is not that good.
I said this before here but if you look at Rust which has unique characteristics like the borrow checker and is often described as having a steep learning curve: I was never overwhelmed by it or even felt it was difficult because there is much high-quality material to help you: The amazing book, rust by example and a lot of great third party resources like cheats.rs or the "rust in simple language".
The other day I was trying to look for julia books. Most of them were outdated and people advised against buying them (or the publisher pulled them already).
Things are definitely stabilizing a bit post-1.0, but it's still a young language, so it'll take a while for documentation to fully catch up; in the meanwhile, the best option in my experience has been to lurk the various chat forums (slack/zulip/etc. [5]) and pick up best-practices from the folks on the cutting edge by osmosis.
[1] https://www.youtube.com/watch?v=kc9HwsxE1OY
[2] https://www.johnmyleswhite.com/notebook/2013/12/06/writing-t...
[3] https://docs.julialang.org/en/v1.5/manual/performance-tips/#...
[4] https://github.com/brenhinkeller/JuliaAdviceForMatlabProgram...
Hell, even C has decent man pages for the standard library.
Although in Julia's defense (or is it?), they've changed the language a lot over the versions from 0.4 to 1.5, so maybe it's hard to keep docs up to date.
We're currently working on wrappers doing that