It’s just data

Fail fast

Dare Obasanjo: Checked vs. Unchecked Exceptions Again.  I agree partially with both positions, but I don't believe that they go far enough.  If you believe in design by contract, then pick a language like Eiffel in which you can declare all of your pre and post conditions. 

On the other hand, the logic that a system should not fail at compile time but should only fail when presented with unexpected conditions at runtime can also be applied to strong typing.  Languages like SmallTalk support this latter paradigm.

While by training, I am in the former camp, I'm increasingly finding myself resonating with the arguments made by latter camp.  What makes this work is a switch from "it compiles, check it in" to "it passes all tests, check it in".  All too often, I see people making exceptions to this "just this one time", and my experience has been that it rarely works out.  JUnit, NUnit, and PyUnit are your friends.

While Java and C# battle over who is the rightful successor to C++, it is quite possible that a language like Python (or, dare I say it, Ruby) will ultimately be the one that wins out.


A better link for Smalltalk information is:

http://www.whysmalltalk.com

It provides information and links to the various implementations


Posted by James Robertson

at

I'd settle for 'compiles -> check it in' at least that way the nightly built doesn't break..

Posted by kasia at

Kasia - I hear you. ;-)

One might say that nightly builds are somewhat an obsession of mine. Many of the builds I watch have tests included. Most have nagging e-mails sent to the associated mailing list on failure.

Posted by Sam Ruby at

IMO, <b>Python<b> is optimal in many-many cases.

Posted by yaru at

Add your comment