Debugger

From APIDesign

(Difference between revisions)
Jump to: navigation, search
(Building Modular Systems)
Line 1: Line 1:
[[wikipedia:Debugger|Debugger]] is a program that helps to find out what other programs are doing. Often people use debugger to understand why their own code does not do, what they would like it to do. However debugger is incredibly useful for other purposes as well. Here the story.
[[wikipedia:Debugger|Debugger]] is a program that helps to find out what other programs are doing. Often people use debugger to understand why their own code does not do, what they would like it to do. However debugger is incredibly useful for other purposes as well. Here the story.
-
== Building [[Modular Systems]] ==
+
== Building [[Modular system]]s ==
 +
 
 +
[[Chapter 1]] of [[TheAPIBook]] discusses the art of building modern software systems and concludes that these days we are building systems that we don't understand. As an example it mentions that in order to write a web page one needs to understand [[HTML]] and possibly a [[wikipedia:Java_Servlet|Servlet API]], but you don't need to have knowledge of anything that lays below: [[Glassfish]] server, [[Java]] [[VM]], [[Unix]] libraries, [[Linux]] kernel, the [[VirtualBox]] nor even the hardware. At the end you can deploy a massive solution and in fact understand roughly one percent of it!
 +
 
 +
Some people may find it freightening that we use systems without real understanding, but [[The Art of Building Modern Software]] chapter concludes that such level of [[cluelessness]] is OK and in fact completely necessary. Brain has limited capacity, and the learning time is finite as well. As such we just can't understand everything. It is enough to know just the surface:
 +
* the [[wikipedia:Java_Servlet|Servlet API]] - but not its actual implementation in the [[Glassfish]] server
 +
* the user or command line interface of [[VirtualBox]] - to install [[Linux]] into it and to launch it
 +
* the [[wikipedia:Advanced_Packaging_Tool|apt]] [[CLI]] - to install [[Java]] and [[Glassfish]]
 +
Knowing these '''interfaces''' is enough. The details behind them are unimportant (if things go well).
 +
 
 +
Btw. this is also the reason why [[API]] design is important. Well designed application programming interfaces encourage [[cluelessness]. The less knowledge people need to use a technology, the [[Good technology|better]] the technology is. That is why read [[TheAPIBook]] and learn how to do it! But let's now get back to topic of [[debugger|debugging]].
== [[Cluelessness]] of an API User ==
== [[Cluelessness]] of an API User ==

Revision as of 12:37, 10 July 2013

Debugger is a program that helps to find out what other programs are doing. Often people use debugger to understand why their own code does not do, what they would like it to do. However debugger is incredibly useful for other purposes as well. Here the story.

Contents

Building Modular systems

Chapter 1 of TheAPIBook discusses the art of building modern software systems and concludes that these days we are building systems that we don't understand. As an example it mentions that in order to write a web page one needs to understand HTML and possibly a Servlet API, but you don't need to have knowledge of anything that lays below: Glassfish server, Java VM, Unix libraries, Linux kernel, the VirtualBox nor even the hardware. At the end you can deploy a massive solution and in fact understand roughly one percent of it!

Some people may find it freightening that we use systems without real understanding, but The Art of Building Modern Software chapter concludes that such level of cluelessness is OK and in fact completely necessary. Brain has limited capacity, and the learning time is finite as well. As such we just can't understand everything. It is enough to know just the surface:

Knowing these interfaces is enough. The details behind them are unimportant (if things go well).

Btw. this is also the reason why API design is important. Well designed application programming interfaces encourage [[cluelessness]. The less knowledge people need to use a technology, the better the technology is. That is why read TheAPIBook and learn how to do it! But let's now get back to topic of debugging.

Cluelessness of an API User

blackbox. google things out.

Knowing Every Detail

maven, NetBeans Platform (customer) and iOS, open source

When Things Don't Happen

originally for things went wrong, now often for things that don't happen.

Use the Debugger. Stupid!

TBD

Personal tools
buy