The Cape Town SPIN will be holding a meeting, tonight from 6:15pm to 8:15pm at the Bandwidth Barn. The topics under discussion are Static vs. Dynamically typed languages, and waterfall vs. agile development practices.
According to the agenda:
1. Dynamic languages such as Python and Ruby are getting a lot of mind-share these days, some touting such benefits as developer productivity, ease of use and learning, introspection, increased expressiveness etc. The real advantages and implicit costs in production environments are rarely discussed, however. We want to take this opportunity to air some of the points of view and share practical experiences with both.
2. Agile methods vs Waterfall software development methodologies. Agile methods such as SCRUM and variations on Extreme Programming are gaining in popularity. Many local groups have used such approaches with varying degrees of success. Equally many remain skeptical, believing it would never work in their domain. We'd like to hear both sides of the story in this discussion.
Not sure if I'm going to make it, but it could be quite entertaining and enlightening. Or it could be very sad, with the static people saying "I really like that it's static!" and the dynamic people saying "I really like that it's dynamic!" all night.
To insure it doesn't devolve into what you describe, the group should align itself, seating wise along a spectrograph (see bottom of the page below):
http://pycamp.python.org/Texas/Discussion
and then employ a moderator who asks each side difficult questions, as to how they would handle certain developmental or business cases. And then afterward, the audience votes with a show of hands as to who proved their point.
Hey Jeff, that's a great idea. I've been involved in a few spectrographs before, and they've been really enjoyable. I'll suggest it to the organisers.
(Did you get introduced to Spectrographs via Aspiration Tech by any chance?)
Sorry if I ramble, feel free to delete the comment if it's just waffle.
Can there really be a winner in either of these questions?
I rather think it's a matter of preference, for me I reckon dynamic tends to produce less code and seems simpler. Having used Python for so long, I'd actually find delving back into the land of the static and having to explicitly make functions polymorphic a tad uncomfortable & archaic.
Waterfall vs. Agile too, is a horses for courses thing. To have things set in stone before development is a very useful thing when you need to manage the client. Business analysts especially love it, because it means change requests usually == extra money. I've gotten used to it, although have never quite fallen in love with the idea of only giving what's asked for and not a byte more, even if you know what's wanted is totally cack and will be changed in a month's time.
Agile is great if you're developing your own project/product & need things to go quickly and to minimise needless paperwork, but it's just not feasible in some environments.