From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id UAA00681; Wed, 7 Nov 2001 20:52:01 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id UAA14937 for ; Wed, 7 Nov 2001 20:52:00 +0100 (MET) Received: from c0mailgw13.prontomail.com ([216.163.180.10]) by concorde.inria.fr (8.11.1/8.10.0) with ESMTP id fA7Jpxf19755 for ; Wed, 7 Nov 2001 20:52:00 +0100 (MET) Received: by c0mailgw13.prontomail.com (NPlex 5.5.029) id 3BDF7DF100144D90 for caml-list@pauillac.inria.fr; Wed, 7 Nov 2001 11:45:09 -0800 Received: from 207.1.194.208 by SmtpServer for ; Wed, 07 Nov 2001 19:45:09 +0000 X-Sender: 29538.starband.net Message-ID: <000401c167c5$9393a6b0$d0c201cf@XENO> Reply-To: "Eric Newhuis" From: "Eric Newhuis" To: "Caml" References: Subject: Re: [Caml-list] Re: Debuggers Date: Wed, 7 Nov 2001 13:51:21 -0600 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk > I think (as confidently as I can without reading the source :) that it > would be relatively straightforward to add that to camldebug. However, > I won't add it mostly because I don't use debuggers when I have an > interactive prompt available (such as the ocaml program provides), > because with a toplevel it's easier to write small functions, test > them right there, and compose them incrementally. Yes! Have others had the same experience as me here? I've found myself becoming more and more intentional in my habits. I don't use debuggers unless there is an emergency. Instead I write unit tests and use assertions to halt the system with useful exception information. And I have found that writing unit tests in functional languages is pleasant whereas in imperative langaues it is a chore. "Traditional" debuggers are just not that useful when one has a good suite of unit tests. I would have had no idea what I just said a few years ago when all I did was code in C++ and single-step through code in the debugger. I've been there. I thought I was code king then. Boy was I stupid! Moreover single-stepping and breakpoints are often times not possible in my environment that consists of many threads and parallel asynchronously communicating tasks. The proof of my ways is in the result: I can develop complete error-free systems much faster than before. Having said all this I still think "traditional" debuggers are absolutely critical for one's success. I use them like parachutes, but never on a daily basis. If you find yourself using a debugger on a daily basis then I urge you to consider the wisdom of your ways. Yes by all means learn how to be effective at it, but once you learn those important skills move on to a more proactive habit. Sincerely, Eric Newhuis ------------------- Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr