Python for project planning tool

Tim Peters tim_one at email.msn.com
Wed May 31 00:47:49 EDT 2000


[Jeroen Lamain]
> We are trying to develop a project managment tool like MS Project 98.
>
> Previously we were developing using c++ and gtk. Yesterday I
> tried Python and the GNOME binding. I was very impressed by
> the ease of development. (this was my first experience with Python)
>
> Is python ok for developing such a tool ? I mean... is it usable
> for a such a kind of project. Will I have enough performance
> when writing everything in Python (UI, task scheduler) ?

Depends on how crappy your algorithms are <wink>.  Seriously, unless you've
written complete project management systems before, and are expert in
scheduling algorithms, you're going to make a lot of changes in internal
data structures and algorithms before this is over.  Even if Python were
1000x slower than C++ (it isn't), and you have to throw all your Python code
away in the end and reimplement in C++, your development time will *still*
be slashed by developing in Python first:  rapid and/or massive rewrites
generally go much quicker in Python.  You've already got a taste for why
that might be true, so follow that hunch without thinking about it too much
<wink>.

I *expect* you'll find Python fast enough for this project.  Simple
critical-path scheduling is linear-time in the sum of the number of
activities and sequencing constraints, and is more involved with chasing
data structures than with flat-out computation.  The first half of that
("linear time") means it's not all that demanding a task, and the second
half means C++'s relative speed advantage is likely not crushing.  If you
move on to fancier scheduling gimmicks (like load balancing, resource
leveling, and/or auto-split of long tasks), clever algorithms are crucial
regardless of language (e.g., a quadratic-time algorithm will kill the
usefulness of your tool for very large projects even if you code it in
hand-optimized assembler).

by-the-time-you-finish-this-machines-will-be-twice-as-fast-anyway-ly
    y'rs  - tim






More information about the Python-list mailing list