Debuggers are useful They make you run an application and inspect variables while you a running the real thing They make you debug code and quickly find bugs You set a breakpoint somewhere, you run your application, it stops where you want and let you inspect variables and more. Debuggers are bad They make you debug code instead of writing unit tests They make you debug code instead of writing proper log statements Conclusion: Debuggers are good when you search for bugs and not as a development practice Log statements are there forever and let you for instance trace code in a production environment where a debugger is usually not available. Unit tests are there forever and let you run the same tests that you run in your debugger on and on. Again: Debuggers are useful but don't abuse them.