comp.lang.ada
 help / color / mirror / Atom feed
From: "Jeffrey R. Carter" <spam.jrcarter.not@spam.not.acm.org>
Subject: Re: ANN: Introducing AdaBase - Thick database bindings for Ada
Date: Fri, 20 May 2016 18:12:56 -0700
Date: 2016-05-20T18:12:56-07:00	[thread overview]
Message-ID: <nhocg0$h4s$1@dont-email.me> (raw)
In-Reply-To: <f9b0c45c-beeb-4143-8f73-01cbecf836ca@googlegroups.com>

On 05/20/2016 04:44 PM, jrmarino wrote:
>
> Ada_Base would be wrong because it's AdaBase, by definition. It's not two
words. The only difference with "read_uncommitted" is the capitalization. So
basically the assertion here is that if somebody chooses not to capitalize
enumerations, it's not Ada-like? I'll give you Tisokeywords but I had no idea
people were anal about this sort of thing (And I'll point out that I use
underscores overwhelmingly, so a minority of cases where I didn't shouldn't
invalidate the whole thing)

If it's one word, then it should be Adabase. CamelCase is antithetical to some 
basic Ada concepts, case insensitivity being one. Remember that many of us use 
language-sensitive editors that will recapitalize identifiers when we load a 
file. Resulting identifiers like Tisokeywords will be difficult to figure out 
and understand. Enough of them may make it difficult enough to use your library 
that people won't.

I doubt if you can find 2 Ada developers who agree completely on matters of Ada 
formatting, but there is a very broad consensus on something similar to the 
formatting used in the ARM. (Even there you'll find all-lower-case identifiers 
in Interfaces.C.) Differing significantly from it will get you some flak and 
some people who will presume that it indicates that you're not very good at 
using the language.

> But frankly, not using a library because somebody doesn't subscribe to the
same style guide in every aspect is bit over the top, no?

I wouldn't advocate that, though apparently Martin does. While I find some of 
your formatting irritating, I have used libraries with much worse formatting 
(based on looking only at package Adabase). Primarily I was trying to show you 
what Martin had objected to. (But I would, if defining the language, make 
CamelCase an error.)

>> package Martin is
>>     type Field_Size_ID is (One_Byte, Two_Bytes);
>>
>>     type Unsigned_One_Byte  is mod 2 **  8;
>>     type Unsigned_Two_Bytes is mod 2 ** 16;
>> end Martin;
>
> Subjective. I think your suggestions are worse (honestly, not lashing out)
plus they aren't even feasible because there are actually signed versions too
(so ambiguous). Why should the type names have to suffer to avoid a prefix on an
enumeration? But we're talking about opinions here and the subjective criticism
seems to be about my naming choice.

All such matters are subjective. Nbyte1 is a cryptic type name, no matter how 
it's capitalized, but seems to indicate that it's a type occupying 1 byte. One 
has to look at the type definition to see that it's an unsigned integer type. 
Unsigned_One_Byte seems a clearer name for such a thing, especially as it's 
similar to the types named Unsigned_* in Interfaces, which we presume all Ada 
developers are familiar with. Greater clarity and familiarity are good things in 
identifiers. Signed versions would be named Signed_One_Byte, again similar to 
types in Interfaces, so I don't see ambiguity or conflict.

> 2) Suggesting to rename types and enumerations to break all programs
> currently using the library is a much bigger deal and what's the benefit?

I wouldn't suggest that. I would suggest in future using a style closer to the 
community consensus and putting a little more thought into your names to make 
them clearer and the code easier to read. As you have seen, it would lead to 
greater acceptance of your libraries by others.

-- 
Jeff Carter
"Run away! Run away!"
Monty Python and the Holy Grail
58


  reply	other threads:[~2016-05-21  1:12 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-13 20:37 ANN: Introducing AdaBase - Thick database bindings for Ada jrmarino
2016-05-13 21:44 ` Per Sandberg
2016-05-13 23:37   ` Randy Brukardt
2016-05-14  6:59     ` gautier_niouzes
2016-05-16 20:06       ` Randy Brukardt
2016-05-17  7:35         ` gautier_niouzes
2016-05-17  9:38           ` G.B.
2016-05-17 23:29             ` Randy Brukardt
2016-05-29  3:45     ` David Botton
2016-05-14  6:22 ` Dmitry A. Kazakov
2016-05-14 10:41   ` jrmarino
2016-05-14 11:31     ` Björn Lundin
2016-05-14 17:11     ` Jeffrey R. Carter
2016-05-14 12:22 ` AdaMagica
2016-05-14 13:27   ` Georg Bauhaus
2016-05-14 13:50     ` Dmitry A. Kazakov
2016-05-15 13:59     ` Shark8
2016-05-15 17:03       ` Björn Lundin
2016-05-19 15:50         ` Shark8
2016-05-15 14:23     ` AdaMagica
2016-05-15 19:38       ` jrmarino
2016-05-16 19:45 ` Olivier Henley
2016-05-18 17:13 ` Anh Vo
2016-05-19  8:16   ` jrmarino
2016-05-20 15:18 ` Martin
2016-05-20 17:44   ` jrmarino
2016-05-20 20:36     ` Jeffrey R. Carter
2016-05-20 23:44       ` jrmarino
2016-05-21  1:12         ` Jeffrey R. Carter [this message]
2016-05-21  7:01           ` jrmarino
2016-05-21 10:37             ` Georg Bauhaus
2016-05-21 17:49             ` Jeffrey R. Carter
2016-05-21 18:14               ` jrmarino
2016-05-21  5:11         ` J-P. Rosen
2016-05-21  6:43           ` jrmarino
2016-05-21 11:09             ` J-P. Rosen
2016-05-21 16:54 ` jrmarino
2016-05-21 18:20   ` Jeffrey R. Carter
2016-05-21 18:44     ` jrmarino
2016-05-22 21:35       ` Martin
2016-05-23  0:33         ` brbarkstrom
2016-05-23 11:40           ` Martin
2016-05-23 12:46             ` AdaMagica
2016-05-23 22:03               ` Martin
2016-05-24  7:28                 ` jrmarino
2016-05-24  9:09                   ` J-P. Rosen
2016-05-24 15:27                   ` Simon Wright
2016-05-23 20:28             ` Jeffrey R. Carter
2016-05-22 15:06 ` brbarkstrom
2016-05-24 10:16 ` Graham Stark
2016-05-26 22:59 ` jrmarino
2016-05-30  9:19 ` karsar
replies disabled

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