I don't think Julia's error message situation is particularly worse than C (where memory access bugs trigger crashes randomly) or Mathematica (where many bugs end in infinite loops of symbolic computations that eat up all available memory). I also think teaching in Python would be harder, since it requires OOP concepts. Matlab teaches too many bad programming habits, hides what's going on from the students, and is not a particularly employable skill (as we've been told by prospective employers).
So while Julia has its quirks, I don't see another language that is clearly better. On Saturday, April 16, 2016 at 12:01:05 PM UTC+10, Peter Kovesi wrote: > > > Sheehan, That's a very nice looking course but I think you are very brave > to use Julia at this stage. > I love the language but (at this stage of the language's development) the > error reporting is highly problematic. For example this morning I made a > classic mistake > > function foo(a::real) # Should have been: function foo(a::Real) > ... > end > > The function was defined at line 998, the error was reported at line 433, > 565 lines away! The message was > "ERROR: LoadError: TypeError: Tuple: in parameter, expected Type{T}, got > Function" > > Good luck to your students! > > Working in Julia requires a practice of defensive incremental coding in > the extreme. Every few lines of code that are added need to be tested > before carrying on. That way you know that any errors are in the few lines > of code that were just added and not at whatever spurious location was > being suggested. > > Let me say again I love the language. However the error reporting is a > source of extreme frustration to me. > > A key pathway to getting Julia more widely adopted would be for it to be > used for teaching purposes. However, at the moment I fear that any attempt > to do so would surely end in tears. > > Peter Kovesi > > > On Friday, April 15, 2016 at 10:17:40 AM UTC+8, Sheehan Olver wrote: >> >> >> >> I'm currently lecturing the course MATH3076/3976 Mathematical Computing >> at U. Sydney in Julia, and thought that others may be interested in the >> resources I've provided: >> >> http://www.maths.usyd.edu.au/u/olver/teaching/MATH3976/ >> >> The lecture notes and labs are all Jupyter notebooks. I've also included >> a "cheat sheet" of Julia commands used in the course >> >> >> http://nbviewer.jupyter.org/url/www.maths.usyd.edu.au/u/olver/teaching/MATH3976/cheatsheet.ipynb >> >> The course is ongoing (it's about half through) and will continue to take >> shape, but any feedback is of course welcome! >> >> >> Sheehan Olver >> >