In terms of optimization, I think "Julia-style psuedocode" is a good way to 
start, keeping in mind the performance tips 
<http://julia.readthedocs.org/en/latest/manual/performance-tips/>. I reread 
that every once in a while, finding I've forgotten some useful info. Don't 
bother trying to make everything as fast as possible in the first pass. 
Once you have a correct version,  profiling 
<http://julia.readthedocs.org/en/latest/stdlib/profile/> is the way to go.  
Tim Holy's ProfileView <https://github.com/timholy/ProfileView.jl> and 
IProfile <https://github.com/timholy/IProfile.jl> packages are extremely 
helpful.

If you're doing numerical work, it's useful to read Fast Numeric 
Computation in Julia <http://julialang.org/blog/2013/09/fast-numeric/>, 
which point to the NumericExtensions 
<https://github.com/lindahua/NumericExtensions.jl> and Devectorize 
<https://github.com/lindahua/Devectorize.jl> packages.

For package development...well I'm not really an expert on that, but I'm 
sure others will have more input. But it's good to think early about how 
users will use your package and how it integrates with Base or other 
packages. For example if you are implementing some machine learning 
algorithm, do you want it to just operate on Arrays, or do you want to 
provide an interface that uses formulas and DataFrames? 

Sam

On Thursday, July 10, 2014 3:55:20 PM UTC-7, Ted Fujimoto wrote:
>
> Hi all,
>
> Can anyone recommend any references on how to create a Julia package like 
> a seasoned Julia developer? Based on my conversations with some of the 
> Julia experts, the process seems a bit more involved than just writing out 
> Julia-style pseudocode. Are there general rules of thumb on how to optimize 
> Julia code?
>
> Thanks,
> Ted
>

Reply via email to