28 October 2010

Agreeable Quotes!

Quotes from Nature's

Computational Science ... Error ... why scientific programming does not compute. By Zeeya Merali.

"There are terrifying statistics showing that almost all of what scientists know about coding is self-taught," says Wilson. "They just don't know how bad they are."

"In the long term, though, Barnes says that there needs to be a change in the way that science students are trained."

"Science administrators also need to value programming skills more highly, says David Gavaghan, a computational biologist at the University of Oxford, UK."

"Gavaghan now uses the software industry's 'master–apprentice' approach to train graduate students in his lab."

And this one is really fitting if you work at a national laboratory:

"To all scientists out there, ask yourselves what you would do if, tomorrow, some Republican senator trains the spotlight on you and decides to turn you into a political football. Could your code stand up to attack?"



I couldn't agree with some of these quotes more .... see Where Is Software Development Really Learned?

Nature Article: Publish Your Scientific Code! Really?

Recently, Nick Barnes wrote a one page article in Nature encouraging scientist to publish their code pretty much as-is. He makes many good points especially ... if the results from your code are good enough to publish, then your code should be good enough to publish too.

My main concern is the possible unintended consequences that scientists will think they never need to improve their software developing skills since what they do is "good enough." When in reality, often, their skills are not good enough and that many scientists are publishing results that are not good enough due to the poor software they have developed. We do not want scientists to lose the sense of urgency to do a better job in writing good software that is a real scientific tool and that produces good science. Yes, I could see where once they publish their code and if peer review deems it flawed, or the like, that they might be embarrassed and want to do better.... but highly unlikely. Besides scientific software should be peered reviewed with code reviews and/or pair-programming just like any other type of software before results are published from it or the code is released to begin with.

Again, "Be a better scientific software developer today than yesterday!"

25 July 2010

Every wonder how to get started with TDD?

Recently, Brett Schuchert has started to put together a series of videos called C++ and TDD. Here is the first in the series called C++ and TDD, Getting Started. Follow the other links to see his follow-on videos.

I found these to be pretty much how it feels to do TDD with C++. He uses Eclipse with the CDT plugin for C++ and CppUnit for a unit test framework. The development environment looks very similar to how we do development on the MCATK team.

The only exception is that CppUnit has been integrated into Eclipse so that Eclipse is aware of the CppUnit. Whereas on the MCATK, we use UnitTest++ and Eclipse is unaware of the unit test framework though our build system is aware of it.

These videos are pretty straight forward and the example project he is working on is easy to follow. If you have been curious about TDD and how it is done then have at look at Brett's videos.