3 ms·
Interesting! This really speaks to me. In my opinion your language can have the most foreign concepts or unusual ways how you should optimize code. But only if
by ruph123 6y ago
Interesting! This really speaks to me. In my opinion your language can have the most foreign concepts or unusual ways how you should optimize code.
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).
- queuebert 6y agoAs an avid Rust and Julia user, I often use Rust even when it's harder because I know I'll never get stuck. And when it finally compiles I'll be rewarded by ludicrous speed. 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.
- adgjlsfhk1 6y agoThe language has been pretty stable (no breaking changes) since 1.0. The bigger issue is that unlike many of the other newer programming languages (Go, Rust, Swift etc) Julia doesn't have a fortune 500 company sponsoring it, so there aren't any people who's job is documentation. It's all open-source. Hopefully this is fixable through Google Summer of Docs and/or the community sponsoring people to work on this.
- cbkeller 6y agoI think people often underestimate (or just plain don't know about) the degree to which a multiple-dispatch-based programming language like Julia effectively implies its whole own dispatch-oriented programming paradigm, with both some amazing advantages (composability [1], and an IMO excellent balance of speed and interactivity when combined with JAOT compilation), but also some entirely new pitfalls to watch out for (particularly, type-instability [2,3]). Meanwhile, some habits and code patterns that may be seen as "best practices" in Python, Matlab can be detrimental and lead to excess allocations in Julia [4], so it may almost be easier to switch to Julia (and get good performance from day 1) if you are coming from a language like C where you are used to thinking about allocations, in-place methods, and loops being fast. 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 https://www.youtube.com/watch?v=kc9HwsxE1OY [2] https://www.johnmyleswhite.com/notebook/2013/12/06/writing-type-stable-code-in-julia/ https://www.johnmyleswhite.com/notebook/2013/12/06/writing-t... [3] https://docs.julialang.org/en/v1.5/manual/performance-tips/#man-code-warntype https://docs.julialang.org/en/v1.5/manual/performance-tips/#... [4] https://github.com/brenhinkeller/JuliaAdviceForMatlabProgrammers https://github.com/brenhinkeller/JuliaAdviceForMatlabProgram... [5] https://julialang.org/community/#official_channels https://julialang.org/community/#official_channels