5 ms·
The documentation / project page is very well-done, something unfortunately rare in the Julia ecosystem.
by snicker7 6y ago
The documentation / project page is very well-done, something unfortunately rare in the Julia ecosystem.
- systemvoltage 6y agoTo add to that, even if Julia had excellent documentation literally everywhere and on every library, I wish there were better stack trace and meaningful error messages. Even if Julia performed 10x worse, this overlooked aspect of Julia would make up for it. It is rather unbelievable how much time I need to spend to figure out what's wrong with a particular piece of Julia code. Founders of Julia - please focus on error messages. Some cool things from Rust: https://doc.rust-lang.org/edition-guide/rust-2018/the-compiler/improved-error-messages.html https://doc.rust-lang.org/edition-guide/rust-2018/the-compil...
- pjmlp 6y agoLack of stack straces and poor error messages hasn't hindered the adoption of most compiled languages. Naturally it is something to improve, but I bet that are still bigger fish to fry.
- oivey 6y agoDifferent users have different problems. I’ll take the recent major advances in, say, start up time and multi threading instead of improvements to the error messages.
- sgt101 6y agoThe debugger has helped a lot for me. https://julialang.org/blog/2019/03/debuggers/#debugger_and_rebugger https://julialang.org/blog/2019/03/debuggers/#debugger_and_r...
- improbable22 6y agoI think this is quite a hard problem to solve. A Python wrapper of some some monolithic C library can check & reject any input which doesn't meet the spec, and tell you why. But a Julia library typically wants to be generic, you should (for instance) be able to pass it weird numbers that contain units/error bars/gradient info, that the library designer knew nothing about, and have these propagate through. When this works it's great, but when it fails, the failure point tends to be 10 layers down, in internal workings you've never heard of. That's part of why error messages are inscrutable.
- wallnuss 6y agoIt's being worked on. I am rather excited for the upcoming work that makes the parser replaceable and allows us to actually give good syntax errors! There is some discussion about making error printing more configurable so that one can skip stack-frames that are unlikely to be the cause (albeit that's a double-edged sword).
- ViralBShah 6y agoAs walnuss says below, these things are already being worked on. If you tried Julia a few months or couple of years ago, you'll find that stacktraces have already got quite a lot better. One of the things that the Julia community could greatly benefit from is more compiler contributors. Languages like Rust naturally attract compiler folks, and those like Go have the backing of Google. Julia has more complex compiler due to our dynamic type system, which the users absolutely love. But it also puts a lot of strain on the compiler team, which is quite small. So if any folks with experience in compiler technology on HN are looking for interesting projects to contribute to, please do look into Julia. We've done better over the years increasing our bus number on the compiler codebase overall. More contributions in all areas of the toolchain would be great to have!
- pjmlp 6y agoAs bystander I love the work you guys are doing, in a way it feels like Dylan was reborn and found a place in scientific computing.
- patagurbon 6y agoAs a user of Julia for 2-3 years, is there any guidance for someone looking to help with the compiler?
- thisrod 6y agoI don't think that there's a silver bullet for this. A compiler can only tell you where it caught an error: telling you where the error occurred is equivalent to the hard AI problem. On the other hand, we the users can do a lot to help. After you've worked through those 30 stack frames to find the one that went wrong, you could send a PR to detect that. In many cases, I suspect it would help to just catch the error then re-throw it from the method that went wrong.
- martintrapp 6y agoThank you. In addition to the docs on turning.ml, you can find a few examples for the book “Statistical Rethinking” implemented using Turing in https://github.com/StatisticalRethinkingJulia/TuringModels.jl https://github.com/StatisticalRethinkingJulia/TuringModels.j.... We are currently also looking for students to help us further improve the documentation and tutorials in the course of the Google summer of Docs. Some possible projects are listed here: https://julialang.org/jsoc/gsod/projects/#turing_probabilistic_machine_learning https://julialang.org/jsoc/gsod/projects/#turing_probabilist... Please reach out to us if you are interested.