@@ -212,18 +212,19 @@ FAQ
212212Why 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+
237247Why (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
241251by looking at what code is (not) run". Checking branch coverage is good but it will only get you as far.
242252
243253From 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
248258In other words, filtering events is the main selling point of Hunter - it's fast (cython implementation) and the query API is
249259flexible enough.
250-
251-
252-
0 commit comments