[erlang-questions] Trace-Driven Development

Michael Truog mjtruog@REDACTED
Wed Jun 6 04:47:26 CEST 2012

On 06/05/2012 05:40 PM, Henning Diedrich wrote:
> One Open Source loving word regarding the 'hell' quote:
>> I'm hardly the only one who should be embarrassed:
>> "Erlang tracing is a seething pile of pain that involves reasonably
>> complex knowledge of clever ports, tracing return formats, and
>> specialized tracing MatchSpecs (which are really their own special
>> kind of hell). The tracing mechanism is very powerful indeed, but it
>> can be hard to grasp."
>> Obviously, that kind of statement has no place in the official
>> documentation of a professional product.  
> Honest statements like the one you are citing may be the actual luxury and strong value of Open Source efforts, which are not directly a commercial product. Possible only because they /are/ not a product. For one user, fresh air like this only creates trust and allows to (even very precisely) set expectations and alertness to shortfalls in both documentation and package.
> That is not to paint the situation rosy, it would be lovely if it was better. But I appreciate the honesty, very much.

I agree that honesty in the documentation is much more beneficial, due to it being Open Source, rather than the duplicity that might otherwise be present in corporate documentation ("Politics-Oriented Software Development": Documentation, http://www.kuro5hin.org/story/2005/1/28/32622/4244).

The issues mentioned previously in the email thread seem to indicate that Trace-Driven Development would require more documentation and details, especially documentation that is immediately relevant to the beginner.  Putting redbug into OTP seems like it would help reduce the learning curve, just since it is the popular approach to Erlang tracing and has existed for some time.  The goal with such changes would be to make tracing simpler in a way that discourages the natural programmer reaction to information discovery during interactive debugging (of systems that are not yet live), which is inserting print/logging statements.  The tendency to use print statements is a habit from other languages and is often the common denominator when debugging, so making tracing as simple as a print statement (documentation-wise and usability-wise) seems like a sensible goal.

- Michael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20120605/59a6e5de/attachment.htm>

More information about the erlang-questions mailing list