comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Question on bounded / unbounded strings
Date: Wed, 28 Sep 2016 16:09:37 -0500
Date: 2016-09-28T16:09:37-05:00	[thread overview]
Message-ID: <nshbhr$5m0$1@franka.jacob-sparre.dk> (raw)
In-Reply-To: e60176b6-4c61-474a-a191-b31821816004@googlegroups.com

"John Smith" <yoursurrogategod@gmail.com> wrote in message 
news:e60176b6-4c61-474a-a191-b31821816004@googlegroups.com...
On Saturday, September 24, 2016 at 3:52:54 AM UTC-4, Dmitry A. Kazakov 
wrote:
...
> However, if I ever need string functionality that I'm used to in Python or 
> C++,

Ada doesn't have it (sadly).

I used to tell people to use Unbounded_Strings, but that was before I tried 
to build an application that way. (I discussed that further in a different 
message in this thread). You have to revert to String in many places (which 
is aggrevating [Ada 2005 did eliminate a couple of them, but it doesn't help 
much], one has to look up the names of the operations beyond the most basic, 
and if you are sensible use-adverse person (:-)), the names you have to use 
are nasty (Ada.Strings.Unbounded.To_Unbounded_String ("Foo") -- gack!!!)

To get that Python functionality in Ada, you have to be willing to stand on 
your head, and once you are willing to do that, you might as well use String 
for most everything other than storage of variable-lengthed strings. (And 
it's not that hard to do the latter for String as well, but that gets into 
manual storage management that everyone gets wrong.) All of the operations 
of Unbounded_String are also available in Ada.Strings.Fixed (unless, of 
course, they're builtin operations like indexing and slicing), so there's no 
need to reinvent most of those wheels.

                                           Randy.




Unbounded strings are the only reasonable solution.  Yes, I can work have 
fixed size strings do the same, but then I will have to craft needlessly 
complex logic to accomplish the same thing.  If someone else (or me) needs 
to spend more time than is necessary in order to understand what I'm doing 
in my source, then it is an indication -- usually -- that either my design 
or implementation is flawed (and as we know, perception is reality, 
especially to humans.) 



  parent reply	other threads:[~2016-09-28 21:09 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-13  8:46 Question on bounded / unbounded strings Arie van Wingerden
2016-09-13  9:04 ` Dmitry A. Kazakov
2016-09-22  2:10   ` John Smith
2016-09-22  7:24     ` Dmitry A. Kazakov
2016-09-22  9:01       ` J-P. Rosen
2016-09-22  9:53         ` Dmitry A. Kazakov
2016-09-22 10:58           ` G.B.
2016-09-22 12:05             ` Dmitry A. Kazakov
2016-09-22 14:14               ` G.B.
2016-09-22 17:18                 ` Dmitry A. Kazakov
2016-09-22 11:08           ` J-P. Rosen
2016-09-22 12:05             ` Dmitry A. Kazakov
2016-09-22 13:18           ` Maciej Sobczak
2016-09-22 13:52             ` Dmitry A. Kazakov
2016-09-22 14:51               ` Maciej Sobczak
2016-09-22 17:13                 ` Dmitry A. Kazakov
2016-09-23  5:50                   ` Maciej Sobczak
2016-09-23  6:36                     ` Simon Wright
2016-09-23  7:48                       ` Dmitry A. Kazakov
2016-09-28 20:55                     ` Randy Brukardt
2016-09-23 23:58       ` John Smith
2016-09-24  7:52         ` Dmitry A. Kazakov
2016-09-24 16:25           ` John Smith
2016-09-24 17:44             ` Dmitry A. Kazakov
2016-09-24 18:33               ` John Smith
2016-09-24 18:37               ` John Smith
2016-09-24 18:59               ` John Smith
2016-09-25  8:50                 ` Dmitry A. Kazakov
2016-09-25 23:35                   ` brbarkstrom
2016-09-26  7:28                     ` Dmitry A. Kazakov
2016-09-26 12:39                       ` brbarkstrom
2016-09-28 21:09             ` Randy Brukardt [this message]
2016-09-30  7:59               ` Björn Lundin
2016-09-13  9:35 ` gautier_niouzes
2016-09-13 10:41 ` Alejandro R. Mosteo
2016-09-13 17:41 ` Jeffrey R. Carter
2016-09-13 17:59 ` Björn Lundin
2016-09-14 11:23 ` Arie van Wingerden
2016-09-14 12:26   ` Arie van Wingerden
2016-09-14 12:28   ` Arie van Wingerden
2016-09-14 12:57 ` Arie van Wingerden
2016-09-14 19:39   ` Jeffrey R. Carter
2016-09-17 16:35     ` Arie van Wingerden
2016-09-16 14:43 ` Olivier Henley
2016-09-17 16:35   ` Arie van Wingerden
replies disabled

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