Skip to content

Commit 1db32d0

Browse files
committed
Update FAQ.
1 parent b6ffb9d commit 1db32d0

1 file changed

Lines changed: 16 additions & 9 deletions

File tree

README.rst

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -212,18 +212,19 @@ FAQ
212212
Why not Smiley?
213213
---------------
214214

215-
There's some obvious overlap with `smiley <https://pypi.python.org/pypi/smiley>`_ but there are huge differences to how things
216-
work and from my perspective are problematic in Smiley:
215+
There's some obvious overlap with `smiley <https://pypi.python.org/pypi/smiley>`_ but there are few fundamental differences:
217216

218-
* Complexity. Smiley is over-engineered:
217+
* Complexity. Smiley is simply over-engineered:
219218

220219
* It's uses IPC and a SQL database.
221-
* It has a webserver.
220+
* It has a webserver. Lots of dependencies.
222221
* It uses threads. Side-effects and subtle bugs are introduced in your code.
223222
* It records everything. Tries to dump any variable. Often fails and stops working.
224223

225224
Why do you need all that just to debug some stuff in a terminal? Simply put, it's a nice idea but the design choices work
226-
against you when you're already neck-deep into debugging your own code.
225+
against you when you're already neck-deep into debugging your own code. In my experience Smiley has been very buggy and
226+
unreliable. Your mileage might way of course.
227+
227228
* Tracing long running code. This will make Smiley record lots of data, making it unusable.
228229

229230
Now because Smiley records everything, you'd think it's better suited for short programs. But alas, if your program runs
@@ -234,10 +235,19 @@ work and from my perspective are problematic in Smiley:
234235
be acceptable.
235236
* Use-cases. It seems to me Smiley's purpose is not really debugging code, but more of a "non interactive monitoring" tool.
236237

238+
In contrast, Hunter is very simple:
239+
240+
* Few dependencies.
241+
* Low overhead (tracing/filtering code has an optional Cython extension).
242+
* No storage. This simplifies lots of things.
243+
244+
The only cost is that you might need to run the code multiple times to get the filtering/actions right. This means Hunter is
245+
not really suited for "post-mortem" debugging. If you can't reproduce the problem anymore then Hunter won't be of much help.
246+
237247
Why (not) coverage?
238248
-------------------
239249

240-
For purposes off debugging `coverage <https://pypi.python.org/pypi/coverage>`_ is a great tool but only as far as "debugging
250+
For purposes of debugging `coverage <https://pypi.python.org/pypi/coverage>`_ is a great tool but only as far as "debugging
241251
by looking at what code is (not) run". Checking branch coverage is good but it will only get you as far.
242252

243253
From the other perspective, you'd be wondering if you could use Hunter to measure coverage-like things. You could do it but
@@ -247,6 +257,3 @@ recording.
247257

248258
In other words, filtering events is the main selling point of Hunter - it's fast (cython implementation) and the query API is
249259
flexible enough.
250-
251-
252-

0 commit comments

Comments
 (0)