It’s helpful for everyone here to get reminded of a Julia beginner’s perspective, so thanks for writing that up. My comments on two of your points:
- Ease of learning. Python wins, hands down.
I think we need to distinguish between availability of learning materials and ease of learning the language itself. If the former, it’s no contest. If the latter, I think Julia wins hands down. I spent about a month each with Julia and Python about two years ago. Objects vs dispatch was about a wash for me (at that time, now I’m sold on dispatch), but getting the syntax for calculations right with Python was very rough indeed, and I found the end result ugly and hard to read. So I went with Julia and never looked back.
Although I think it’s easier to learn (and work with) the basics in Julia, it may be harder to become really good at Julia. I’m still struggling with designing good types for optimization models (e.g. for passing around many parameters and JuMP variables).
julia> max([1,2,3])
ERROR: MethodError: no method matching max(::Array{Int64,1})
I strongly agree that error messages and the REPL help function need improvement, preferably before all the v1.0 beginners show up. At the very least there should be pointers to related functions in the help. It’s borderline criminal that neither that error message nor the REPL help suggest that you may have meant EDIT. I don’t know how I missed it, it’s only one tiny line of text. I guess it’s a TGIF thing. I still think we need more pointers to related stuff though.maximum()
.