Hacker News new | ask | show | jobs
by ScottPJones 2943 days ago
The creators of Julia have been focusing on technical, numerical, scientific computing first, however, the language was always intended to also be a good general purpose programming language (which it is) [I was lucky enough to attend Jeff Bezanson's Ph.D. thesis defense at M.I.T. 3 years ago - and was able to ask him that question there]. I used to be a full-time C/C++ programmer, focused on performance of large systems, however, since learning Julia I haven't had to go back to writing C or C++ even once in over 3 years, since I can write even the sort of low-level code I typically do in Julia, faster and easier than in other languages, and get the same performance.
1 comments

I'm strongly considering Julia as an alternative for C/C++. A few questions if you don't mind: * How does Julia's GC play into the performance characteristics of these systems? * What tools does Julia offer for fine-grained control of memory? * It appears that Julia uses a rich runtime, do you notice it "weighing down" on performance? * Do you ever feel the need to drop down to C/C++ for hot code paths?
I do have to be aware of the GC, and try to use techniques to avoid lots of allocation. I haven't needed much in the way of fine-grained control of memory, what sorts of things were you looking for? A lot of that "rich runtime" (i.e. including the kitchen sink for linear algebra stuff) has been moved to stdlib, but still packaged with Julia, but even before, it really didn't seem to affect performance except for slowing down the time to build julia (esp. on the Raspberry Pi!). In over 3 years, I've never needed to write anything in C/C++ (except a couple of times I wrote something out in C just to demonstrate the Julia was generating as good or better code (and I mostly write rather low-level stuff). I have it in mind to learn Rust, which I think would be much better than either C or C++ for that sort of stuff (to make a small robust library of functions for some hot code paths), and it integrates well with Julia (using ccall), but the day that Julia's performance hasn't been good enough as not yet come, at least not for me.
Thank you! I was not looking for anything in particular. Julia's design is everything I've been craving from a language; good performance seemed too good to be true. Due to never having worked on large systems, my judgement is of limited use. Your feedback convinced me to take a serious look at Julia. Looking into the discussions regarding Julia's implementation (so cool that they are easily accessible on GitHub/Discourse) convinced me to commit to learning it.

EDIT: grammar