I use Eclipse and rarely use the debugger. 

When I use the debugger it's mainly in some interop situations where I need
to look at both sides of the fence, Java and Clojure at the same time. Most of 
the
time it's a misuse of the API that triggers exceptions.

These first four strategies are both covering 98% of the needs and reflect sane
priorities.

Reading the code offline and hammock time is of the utmost importance.
If you get stuck in a dead end with some obscure bug, it's a sign that you need 
this
time to reassess your understanding and design of your code.

Think about others trying to understand your code if you cannot keep your own 
code
under control...

It may well be a sign that it needs some improvements to make it more resilient 
and 
cleaner.

I frequently used a debugger in the past when integrating component written in 
different
languages because most of the time it's the only easy way to bridge the gap 
between 
them  (different call conventions, runtimes, call side effects, ...).

There are lot less side effects in Clojure, it makes the added value of a 
debugger
limited in a Clojure centric app. 

The importance of having a debugger is highly exaggerated in this context.

A debugger as good as it is cannot replace the 4 first strategies.

Luc P.

> I just watched that video and interpreted it to mean that of the many
> strategies available to understand problematic behavior in a live app:
> 
> * reading the code offline + sufficient hammock time
> * reproducing the problem offline using test cases in an appropriate
> simulation environment
> * appropriate logging and tracing at runtime
> * repl into the live app
> * tool-assisted stepwise execution and runtime examination (debugging)
> 
> He's able to be sufficiently productive using the first 4 strategies and
> doesn't miss the 5th.
> 
> In that video he also clarified that his recent experience in the field
> with clojure has been with datomic, of which he and Rich are probably the
> principal authors, so it's familiar code, with test cases and  the logging
> and tracing he wants. He usually responds very quickly to bug reports on
> the datomic list, often within hours, so in that case it's fair to say that
> he's not being hampered by the absence of a debugger.
> 
> I've found debuggers are most useful in cases where:
> 
> * the code is unfamiliar/source is unavailable
> * there isn't an appropriate staging environment or test harness
> * there aren't good logs
> * there's no repl
> 
> However, in a language like clojure, a live repl can fill the role (and
> then some) of a debugger.
> 
> I personally can't speak to vim integration, don't use it with clojure.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> On Mon, May 27, 2013 at 2:34 PM, Oskar Kvist <oskar.kv...@gmail.com> wrote:
> 
> > Stuart Halloway said in his video Clojure in the Field (
> > http://www.infoq.com/presentations/Clojure-tips) from March 1, 2013 (I
> > think): "I don't feel the absence of a debugger because I've learnt enough
> > that I don't ever need a debugger." I am very intrigued by that statement.
> > What does he (or you, if you are reading, Stuart) mean? For me, debugging
> > is the biggest thing that I don't know how to do well currently in Clojure
> > (I use Vim, and have not programmed in Clojure for a while), so I am really
> > interested in what he meant.
> >
> > And by the way: As I said, I have not been using Clojure for a few months,
> > but: What's the state of the art of debugging for Vim users? I've been
> > meaning to try out vim-fireplace and ritz and see if they work together
> > well, but have not gotten around to it yet. I would very much appreciate a
> > nudge in the right direction.
> >
> > --
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Clojure" group.
> > To post to this group, send email to clojure@googlegroups.com
> > Note that posts from new members are moderated - please be patient with
> > your first post.
> > To unsubscribe from this group, send email to
> > clojure+unsubscr...@googlegroups.com
> > For more options, visit this group at
> > http://groups.google.com/group/clojure?hl=en
> > ---
> > You received this message because you are subscribed to the Google Groups
> > "Clojure" group.
> > To unsubscribe from this group and stop receiving emails from it, send an
> > email to clojure+unsubscr...@googlegroups.com.
> > For more options, visit https://groups.google.com/groups/opt_out.
> >
> >
> >
> 
> -- 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
> 
> 
> 
--
Softaddicts<lprefonta...@softaddicts.ca> sent by ibisMail from my ipad!

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to