comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Practicalities of Ada for app development
Date: Thu, 21 Jun 2012 12:14:45 -0500
Date: 2012-06-21T12:14:45-05:00	[thread overview]
Message-ID: <jrvkq7$qc8$1@munin.nbi.dk> (raw)
In-Reply-To: jqur16$teu$1@adenine.netfront.net

"Jeffrey Carter" <spam.jrcarter.not@spam.not.acm.org> wrote in message 
news:jqur16$teu$1@adenine.netfront.net...
> On 06/08/2012 05:40 PM, Adam Beneschan wrote:
>> On Friday, June 8, 2012 2:35:55 PM UTC-7, Jeffrey Carter wrote:
>>
>>> One nice thing about Ada is not needing to use a debugger.
>>
>> I don't get this comment.  Ada is a lot nicer than some languages at
>> preventing you from making certain kinds of mistakes, but no language is 
>> able
>> to prevent logic errors and certain dumb typos.  And if you make this 
>> kind of
>> error and the program doesn't work, just the fact of its being written in 
>> Ada
>> doesn't help you much.  There may less need for a debugger because Ada 
>> will
>> prevent certain types of errors and things like constraint checks will 
>> catch
>> some others that would cause havoc in C.  But it can't catch everything, 
>> and
>> even if it does find an index that's out of range it won't tell you why 
>> the
>> index was out of range.  I mean, Ada is a much better language than 
>> certain
>> others for writing correct code, but this seems like a gross 
>> overstatement.
>
> I haven't used a debugger for a long time. Usually Ada gives an idea of 
> the kind of error and its location, and I can easily figure out what the 
> problem is. In the rare case that that isn't true, it's quicker to stick 
> in a few Put_Lines than to learn to use the debugger again. This is a 
> self-reinforcing situation, of course.

I tend to be with Jeff on this one. I sometimes use a debugger to figure out 
low-level problems in generated code (that is, to find compiler bugs), but 
that's pretty much it. (And I admit that the quality of our debugger has 
suffered because I don't use it enough to want to spend the time to improve 
it.)

Almost all of my programs include a built-in logging/tracing facility that 
can be controlled interactively (even for batch-oriented tools like our 
compiler), and combined with Ada's checks, that's enough 95% of the time. 
Virtually all of the rest of the time, it's easier to add some new tracing 
to the facility than to figure out how to compile a version of the program 
with debugging information on, get it linked properly, and then remember the 
quirks of the debugger.

Part of the problem is that there are a lot of problems for which a debugger 
will not help. For instance, when tracking down problems in Claw, we had to 
use an off-line logging facility, because adding anything to the program 
window changes the stream of messages, and thus tends to obscure the problem 
that we were trying to locate and fix.

I'm sure the situation is not the same for everyone, but I'm surprised that 
you (Adam) can get much use out of a debugger, since compilers and their 
tools is definitely one case where a debugger is pretty much worthless (the 
only exception being the rare code generation bug).

                                                 Randy.





  reply	other threads:[~2012-06-21 17:14 UTC|newest]

Thread overview: 112+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-08 20:48 Practicalities of Ada for app development wrp
2012-06-08 21:35 ` Jeffrey Carter
2012-06-09  0:40   ` Adam Beneschan
2012-06-09  6:38     ` Jeffrey Carter
2012-06-21 17:14       ` Randy Brukardt [this message]
2012-06-21 18:16         ` Adam Beneschan
2012-06-21 19:18           ` J-P. Rosen
2012-06-21 20:30             ` Adam Beneschan
2012-06-21 21:09               ` Randy Brukardt
2012-06-22  4:59                 ` Simon Wright
2012-06-22  5:32                   ` Tero Koskinen
2012-06-22 19:51                     ` Randy Brukardt
2012-06-21 21:15               ` J-P. Rosen
2012-06-22 10:43               ` Tero Koskinen
2012-06-21 21:00           ` Randy Brukardt
2012-06-21 21:18             ` J-P. Rosen
2012-06-22 19:55               ` Randy Brukardt
2012-06-23  6:43                 ` J-P. Rosen
2012-06-09  4:30   ` BrianG
2012-06-09  7:11   ` Georg Bauhaus
2012-06-13 10:20   ` quiet_lad
2012-06-09  6:55 ` gautier_niouzes
2012-06-09  7:04 ` Georg Bauhaus
2012-06-09  9:25 ` Nomen Nescio
2012-06-09  9:36   ` Dmitry A. Kazakov
2012-06-10  3:46     ` Yannick Duchêne (Hibou57)
2012-06-12 20:10     ` i3text
2012-06-13  7:55       ` Dmitry A. Kazakov
2012-06-21 17:21         ` Randy Brukardt
2012-06-13 10:28     ` quiet_lad
2012-06-13 13:07       ` Dmitry A. Kazakov
2012-06-09 16:09   ` tmoran
2012-06-13 10:29     ` quiet_lad
2012-06-09 23:18   ` darkestkhan
2012-06-10  3:56     ` Yannick Duchêne (Hibou57)
2012-06-10 14:04     ` Dmitry A. Kazakov
2012-06-10 16:51       ` Yannick Duchêne (Hibou57)
2012-06-10 17:00         ` Dmitry A. Kazakov
2012-06-10 17:18           ` Yannick Duchêne (Hibou57)
2012-06-10 19:33             ` Dmitry A. Kazakov
2012-06-10 21:36               ` Nomen Nescio
2012-06-11  8:22                 ` Dmitry A. Kazakov
2012-06-11 14:27                   ` Georg Bauhaus
2012-06-11 14:43                     ` Dmitry A. Kazakov
2012-06-11 16:19                       ` Jacob Sparre Andersen
2012-06-11 18:38                         ` Dmitry A. Kazakov
2012-06-11 17:14                       ` Georg Bauhaus
2012-06-11 18:38                         ` Dmitry A. Kazakov
2012-06-11 20:50                           ` Georg Bauhaus
2012-06-11 21:43                             ` Yannick Duchêne (Hibou57)
2012-06-12  7:55                             ` Dmitry A. Kazakov
2012-06-12  9:48                               ` Georg Bauhaus
2012-06-12 11:44                                 ` Dmitry A. Kazakov
2012-06-12 12:17                                   ` Georg Bauhaus
2012-06-12 12:18                                     ` Dmitry A. Kazakov
2012-06-11 18:29                 ` Adam Beneschan
2012-06-11 19:16                   ` Jeffrey Carter
2012-06-11 21:47                   ` Yannick Duchêne (Hibou57)
2012-06-21 17:39                     ` Randy Brukardt
2012-06-21 17:34                   ` Randy Brukardt
2012-06-10 18:15       ` darkestkhan
2012-06-10 19:25         ` Dmitry A. Kazakov
2012-06-11  6:34         ` Jacob Sparre Andersen
2012-06-21 17:41         ` Randy Brukardt
2012-06-10 15:49   ` Shark8
2012-06-10 17:04     ` Yannick Duchêne (Hibou57)
2012-06-10 19:47       ` Dmitry A. Kazakov
2012-06-11  0:37         ` Nasser M. Abbasi
2012-06-11  8:37           ` Dmitry A. Kazakov
2012-06-12  6:24             ` Yannick Duchêne (Hibou57)
2012-06-12  7:59               ` Dmitry A. Kazakov
2012-06-13 10:35         ` quiet_lad
2012-06-13 13:09           ` Dmitry A. Kazakov
2012-06-14  3:21             ` quiet_lad
2012-06-14  7:58               ` Dmitry A. Kazakov
2012-06-14  8:39                 ` Yannick Duchêne (Hibou57)
2012-06-14  9:26                   ` Dmitry A. Kazakov
2012-06-21 17:51                   ` Randy Brukardt
2012-06-11  0:00     ` Nasser M. Abbasi
2012-06-11  3:23       ` Jeffrey Carter
2012-06-11 21:10         ` Nomen Nescio
2012-06-11 21:55           ` Adam Beneschan
2012-06-12  8:07             ` Nomen Nescio
2012-06-12 15:28               ` Fritz Wuehler
2012-06-12 21:34                 ` Nomen Nescio
2012-06-14 11:12                   ` Nomen Nescio
2012-06-21 18:01                   ` Randy Brukardt
2012-06-12 21:12             ` Nomen Nescio
2012-06-13  0:04               ` Adam Beneschan
2012-06-13  3:04                 ` Shark8
2012-06-13  8:21                   ` Dmitry A. Kazakov
2012-06-13 18:21                     ` Shark8
2012-06-13 19:11                       ` Dmitry A. Kazakov
2012-06-13 22:01                         ` Yannick Duchêne (Hibou57)
2012-06-14  8:02                           ` Dmitry A. Kazakov
2012-06-14  9:10                             ` Yannick Duchêne (Hibou57)
2012-06-14  9:33                               ` Dmitry A. Kazakov
2012-06-21 18:10                                 ` Randy Brukardt
2012-06-13  8:35                 ` Yannick Duchêne (Hibou57)
2012-06-13  8:37                 ` Georg Bauhaus
2012-06-13 10:14                   ` Georg Bauhaus
2012-06-11 22:49           ` Jeffrey Carter
2012-06-13 10:31     ` quiet_lad
2012-06-13 12:57       ` Maciej Sobczak
2012-06-14  4:18         ` quiet_lad
2012-06-14  7:35           ` Ludovic Brenta
2012-06-14 10:02             ` Georg Bauhaus
2012-06-12 19:17 ` i3text
2012-06-12 19:52 ` Vadim Godunko
2012-06-27 18:39 ` Eryndlia Mavourneen
2012-06-27 18:46 ` Eryndlia Mavourneen
2012-06-28 13:23   ` Simon Wright
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox