sturlamolden wrote: > Robert Kern wrote: > >> 1. Write grant proposals. >> >> 2. Advise and teach students. > > > Sorry I forgot the part about writing grant applications. As for > teaching students, I have thankfully not been bothered with that too > much. > >> Yes, and this is why you will keep saying, "My simulation is >> running too slowly," and "My simulation is running out of memory." >> All the vectorization you do won't make a quadratic algorithm run >> in O(n log(n)) time. Knowing the right algorithm and the right data >> structures to use will save you programming time and execution >> time. Time is money, remember, and every hour you spend tweaking >> Matlab code to get an extra 5% of speed is just so much grant money >> down the drain. > > > Yes, and that is why I use C (that is ISO C99, not ANSI C98) instead > of Matlab for everything except trivial tasks. The design of Matlab's > language is fundamentally flawed. I once wrote a tutorial on how to > implement things like lists and trees in Matlab (using functional > programming, e.g. using functions to represent list nodes), but it's > just a toy. And as Matlab's run-time does reference counting insted > of proper garbage collection, any datastructure more complex than > arrays are sure to leak memory (I believe Python also suffered from > this as some point). Matlab is not useful for anything except > plotting data quickly. And as for the expensive license, I am not > sure its worth it. I have been considering a move to Scilab for some > time, but it too carries the burden of working with a flawed > language. >
A quick addition to Robert's very reasonable response to you. My point is that to *trust* a simulation *results* (no matter how fast/slow/etc you obtained it) you have to explore and manage the "physics" or "biology" of your code. That's where Python's readability, flexibility, and dynamism (including on-the-fly model building/testing/correction) as well as model introspecting and exploration capabilities are of critical importance and sometimes the indication to a missing link. It does not hurt to remember that the original idea (by S.Ulam) of a computer was the idea of an *experimentation environment* (including sampling). It does not look like the Matlab's strongest point is the feedback-driven experimentation. Or i'm missing smth about ISO C99? Val Bykoski -- http://mail.python.org/mailman/listinfo/python-list