News for hackers. Stuff that matters.
Re:Julia 1.0 by StefanKarpinski on Thursday August 09, 2018 @11:52AM (#17725253)
> Like, if you do type the arguments of a function, the optimising compiler will have less work to do.

Giving types for function arguments doesn't actually have any effect on performance: the compiler specializes on concrete runtime argument types anyway, so completely untyped code is just as fast as fully type annotated code—since the types are known when the code is compiled. On the other hand, giving type information is essential for performance involving memory locations, i.e. field types and the element types of collections.

Re:Julia 1.0 by AriaMinaei on Thursday August 09, 2018 @11:59AM (#17725322)
Thanks for the correction!
Re:Julia 1.0 by ScottPJones on Friday August 10, 2018 @08:07PM (#17737555)
I've actually seen many cases where overuse of concrete types (on function parameters) in Julia can lead to poor performance. For example, if functions are written declaring an argument as `Vector{Int64}`, and then people using the function end up calling `collect` (and causing a lot of memory allocations), when they had a value that was an iterator and were forced to convert it into a vector just to call the function. Simply leaving off the `::Vector{Int64}` and getting rid of the `collect` on the caller speeds things up nicely.