From: kevin.cline@gmail.com (Kevin Cline)
Subject: Re: Ada Popularity: Comparison of Ada/Charles with C++ STL (and Perl)
Date: 28 Sep 2004 20:04:59 -0700
Date: 2004-09-28T20:04:59-07:00 [thread overview]
Message-ID: <e749549b.0409281904.f4c4e6e@posting.google.com> (raw)
In-Reply-To: 1636756.M7hCqjsVMv@linux1.krischik.com
Martin Krischik <krischik@users.sourceforge.net> wrote in message news:<1636756.M7hCqjsVMv@linux1.krischik.com>...
> Kevin Cline wrote:
>
> > Martin Krischik <krischik@users.sourceforge.net> wrote in message
> > news:<1700922.2nPlMsa4Ny@linux1.krischik.com>...
> >> Kevin Cline wrote:
> >>
> >> > Martin Krischik <krischik@users.sourceforge.net> wrote in message
> >> > news:<3673998.bj16mkkOu2@linux1.krischik.com>...
> >> >> Matthew Heaney wrote:
> >> >>
> >> >> > If AI-302 doesn't meet your needs, then you need to let us know.
> >> >> > Please peruse the a-c*.ad[sb] sources at the tigris website.��(Note
> >> >> > that I'm still incorporating changes from the most recent ARG
> >> >> > meeting.)
> >> >>
> >> >> I have got my most important baby (indefinite types). And I don't want
> >> >> to confuse the ARG. I fully agree that we need a container library
> >> >> inside the standart.
> >> >>
> >> >> However it would be sad if Ada.Containers would kill off all other
> >> >> container libraries. Just like the STL did.
> >> >
> >> > I think the STL killed off all the other container libraries because
> >> > the STL container/algorithm separation is an extremely powerful design
> >> > that dominates all older container library designs. Certainly STL
> >> > programming is much cleaner and easeir than programming with the once
> >> > popular RogueWave containers. The STL also has the advantage that it
> >> > is relatively easy to write new containers that will work with the STL
> >> > algorithms, so that even though new containers are written, they all
> >> > look like STL containers.
> >>
> >> No Library is perfect, but the "I which I had" list for the STL is much
> >> larger then for container out of IBM's OCL. The OCL was not designed for
> >> academic correctness bit but for usability.
> >>
> >> >> Im am sill looking at IBM OCL thinking
> >> >> how much more practical it was. std::string might me academicly
> >> >> correct but IString was a lot more usefull in day to day live with all
> >> >> the asInt (), asUnsigned (), asAnythingYouEverNeed() methods.
> >> >
> >> > The problem with that design is that it isn't readily extensible to
> >> > accomodate user-defined types, and it makes generic programming very
> >> > difficult.
> >>
> >> In 99.99% of all cases I don't need strings on user defined types. I need
> >> base_string<char>. I can see that I one day might need
> >> base_string<wchar_t>, but I have not until now. They made all that funky
> >> design which I just never need.
> >
> > That wasn't the sort of extensibility I was thinking of. I was
> > referring to
> > the inextensibility of the series of member functions asInt(),
> > asUnsigned(), etc. Collections of functions with names varying
> > according to the return type inhibit template programming. If you
> > want to be able to conveniently extract values from a string, you can
> > write this template function:
> >
> > template <class T> T parse(std::string s)
>
> thow (something)
>
> > {
> > T result;
> > stringstream strm(s);
> > strm >> result;
> > if (!strm) throw( /* something */ );
> > return result;
> > }
> >
> > and then you can write:
> > std::string s("10");
> > int i = parse<int>(s);
>
> This is indeed cool. And it tells me that my code is missing a throw.
Yes, and if you define a new type, say MyType, then you just have
to implement:
istream& operator>>(istream& i, MyType& mt) { ...; return i; }
and then you can write: MyType mt = parse<MyType>(s);
Since the input and output for all types is handled identically,
generic programming is easy. I once wrote a small set of template
classes to map relational database columns to object fields, like
this:
struct Person
{
SocialSecurityNumber ssn;
Date birthDate;
std::string firstName;
...
}
DatabaseMap<Person> personMap;
personMap
.insert("PERSON", "SSN", &Person::ssn)
.insert("PERSON", "DOB", &Person::dateOfBirth)
.insert("PERSON", "FIRST", &Person::firstName)
...;
personMap.Insert(someone);
databaseCursor = // some query //;
personMap.Read(databaseCursor, someone);
someone.firstName = "Fred";
personMap.Update(someone);
...
This would have been completely unwieldy in Ada for two reasons:
1. There would have been dozens of complex instantiations of insert.
2. AFAIK, Ada does not support pointer-to-record member so it would
have been necessary to somehow wrap each record member with a
function.
next prev parent reply other threads:[~2004-09-29 3:04 UTC|newest]
Thread overview: 229+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-09-22 0:21 Ada Popularity: Comparison of Ada/Charles with C++ STL (and Perl) Kevin Cline
2004-09-22 2:16 ` Pylinius
2004-09-22 8:50 ` Björn Persson
2004-09-22 13:38 ` Benjamin Ketcham
2004-09-22 14:07 ` Hyman Rosen
2004-09-22 15:16 ` Cesar Rabak
2004-09-23 8:22 ` Kevin Cline
2004-09-23 10:52 ` Anders Wirzenius
2004-09-23 10:54 ` stephane richard
2004-09-23 11:17 ` Jean-Pierre Rosen
2004-09-23 11:47 ` Marius Amado Alves
2004-09-23 13:34 ` Anders Wirzenius
2004-09-23 16:53 ` Warren W. Gay VE3WWG
2004-09-23 18:30 ` Kevin Cline
2004-09-23 19:00 ` Marius Amado Alves
2004-09-24 6:04 ` [OT]Screen ergonomics, was " Anders Wirzenius
2004-09-26 7:22 ` Kevin Cline
2004-09-23 17:19 ` Cesar Rabak
2004-09-23 8:51 ` Kevin Cline
2004-09-23 11:01 ` Georg Bauhaus
2004-09-23 15:59 ` Matthew Heaney
2004-09-23 16:38 ` Kevin Cline
2004-09-24 2:47 ` Matthew Heaney
2004-09-24 13:43 ` Hyman Rosen
2004-09-24 17:47 ` Mark Lorenzen
2004-09-24 18:16 ` Matthew Heaney
2004-09-29 19:29 ` Mark Lorenzen
2004-09-29 22:44 ` Matthew Heaney
2004-09-25 14:09 ` Martin Krischik
2004-09-26 7:08 ` Kevin Cline
2004-09-26 15:13 ` Matthew Heaney
2004-09-23 19:10 ` jayessay
2004-09-23 21:13 ` Adam Ruth
2004-09-27 2:12 ` Keith H Duggar
2004-09-27 14:21 ` Adam Ruth
2004-09-27 14:51 ` Chris Humphries
2004-09-27 17:10 ` Adam Ruth
2004-09-27 20:16 ` Keith H Duggar
2004-09-27 21:15 ` Chris Humphries
2004-09-28 4:46 ` Keith H Duggar
2004-09-27 20:34 ` Kevin Cline
2004-09-27 21:15 ` Adam Ruth
2004-09-23 23:05 ` Brian May
2004-09-24 3:06 ` Matthew Heaney
2004-09-24 3:52 ` Randy Brukardt
2004-09-24 5:15 ` Matthew Heaney
2004-09-24 19:12 ` Kevin Cline
2004-09-24 20:54 ` Randy Brukardt
2004-09-24 21:23 ` Matthew Heaney
2004-09-27 13:22 ` Chris Humphries
2004-09-27 13:45 ` Chris Humphries
2004-09-27 21:31 ` Kevin Cline
2004-09-27 23:51 ` Brian May
2004-09-28 12:21 ` Chris Humphries
2004-09-26 17:10 ` jayessay
2004-09-26 20:00 ` Georg Bauhaus
2004-09-27 14:45 ` jayessay
2004-09-24 0:19 ` Stephen Leake
2004-09-24 14:54 ` Cesar Rabak
2004-09-22 15:27 ` James Alan Farrell
2004-09-22 21:24 ` Simon Wright
2004-09-23 0:03 ` Brian May
2004-09-23 9:17 ` Kevin Cline
2004-09-23 0:44 ` Jeffrey Carter
2004-09-23 11:08 ` Georg Bauhaus
2004-09-23 8:15 ` Martin Krischik
2004-09-23 16:20 ` Matthew Heaney
2004-09-23 19:23 ` Simon Wright
2004-09-24 7:19 ` Martin Krischik
2004-09-24 16:31 ` Matthew Heaney
2004-09-24 19:24 ` Kevin Cline
2004-09-25 14:04 ` Martin Krischik
2004-09-26 10:36 ` Robert Kawulak
2004-09-26 15:35 ` Martin Krischik
2004-09-28 17:46 ` Robert Kawulak
2004-09-29 7:49 ` Martin Krischik
2004-09-29 12:01 ` Xenos
2004-09-29 18:16 ` Robert Kawulak
2004-09-30 15:55 ` Martin Krischik
2004-09-27 22:22 ` Kevin Cline
2004-09-28 7:51 ` Martin Krischik
2004-09-29 3:04 ` Kevin Cline [this message]
2004-09-29 6:03 ` Dale Stanbrough
2004-09-29 13:31 ` Georg Bauhaus
2004-09-29 13:46 ` Matthew Heaney
2004-09-30 3:42 ` Kevin Cline
2004-09-30 7:54 ` Dale Stanbrough
2004-09-30 16:50 ` Matthew Heaney
2004-10-01 0:04 ` Kevin Cline
2004-10-01 12:25 ` Georg Bauhaus
2004-10-02 7:35 ` K
2004-10-02 10:00 ` Brian May
2004-10-02 20:39 ` Kevin Cline
2004-10-03 2:17 ` Brian May
2004-10-02 13:40 ` Matthew Heaney
2004-10-02 23:33 ` Randy Brukardt
2004-10-03 12:47 ` Stephen Leake
2004-09-30 19:01 ` Björn Persson
2004-09-30 23:54 ` Kevin Cline
2004-10-01 16:11 ` Björn Persson
2004-10-02 6:48 ` K
2004-10-02 10:41 ` Björn Persson
2004-10-02 13:32 ` Matthew Heaney
2004-10-04 9:02 ` Ole-Hjalmar Kristensen
2004-09-23 9:00 ` Kevin Cline
2004-09-23 11:27 ` Ole-Hjalmar Kristensen
2004-09-23 19:11 ` Kevin Cline
2004-09-23 21:01 ` Alexander E. Kopilovich
2004-09-26 6:53 ` Kevin Cline
2004-09-26 15:29 ` Alexander E. Kopilovich
2004-09-23 21:54 ` Eric Jacoboni
2004-09-24 9:44 ` Ole-Hjalmar Kristensen
2004-09-24 9:50 ` Georg Bauhaus
2004-09-24 13:47 ` Matthew Heaney
2004-09-24 14:14 ` Dmitry A. Kazakov
2004-09-25 14:17 ` Martin Krischik
2004-09-27 8:12 ` Dmitry A. Kazakov
2004-09-27 12:59 ` Georg Bauhaus
2004-09-27 13:53 ` Dmitry A. Kazakov
2004-09-26 7:17 ` Kevin Cline
2004-09-27 8:19 ` Dmitry A. Kazakov
2004-09-27 13:03 ` Georg Bauhaus
2004-09-27 14:00 ` Dmitry A. Kazakov
2004-09-24 16:28 ` Kevin Cline
2004-09-24 17:45 ` Georg Bauhaus
2004-09-24 20:14 ` Matthew Heaney
2004-09-24 20:10 ` Frank J. Lhota
2004-09-27 8:29 ` Dmitry A. Kazakov
2004-09-26 7:13 ` Kevin Cline
2004-09-26 15:15 ` Matthew Heaney
2004-09-27 14:31 ` Kevin Cline
2004-09-27 15:05 ` Dmitry A. Kazakov
2004-09-28 4:22 ` Kevin Cline
2004-09-28 8:20 ` Dmitry A. Kazakov
2004-09-28 23:26 ` Robert Kawulak
2004-09-29 12:19 ` Dmitry A. Kazakov
2004-09-30 18:52 ` Robert Kawulak
2004-10-01 7:55 ` Dmitry A. Kazakov
2004-10-03 19:35 ` Robert Kawulak
2004-10-04 10:24 ` Dmitry A. Kazakov
2004-10-06 17:28 ` Robert Kawulak
2004-10-07 8:24 ` Dmitry A. Kazakov
2004-10-10 21:09 ` Robert Kawulak
2004-10-11 8:08 ` Dmitry A. Kazakov
2004-10-15 9:34 ` Robert Kawulak
2004-10-15 16:58 ` Martin Krischik
2004-09-29 15:44 ` Matthew Heaney
2004-09-30 18:27 ` Robert Kawulak
2004-09-28 17:21 ` Robert Kawulak
2004-09-29 1:38 ` Georg Bauhaus
2004-09-29 18:08 ` Robert Kawulak
2004-09-30 18:30 ` Georg Bauhaus
2004-09-29 8:08 ` Dmitry A. Kazakov
2004-09-29 18:11 ` Robert Kawulak
2004-09-30 8:57 ` Dmitry A. Kazakov
[not found] ` <cji06f$17a$2@atlantis.news.tpi.pl>
2004-10-01 8:58 ` Dmitry A. Kazakov
2004-10-03 19:53 ` Robert Kawulak
2004-10-04 10:15 ` Dmitry A. Kazakov
2004-10-04 12:16 ` Matthew Heaney
2004-10-04 13:21 ` Dmitry A. Kazakov
2004-10-06 17:20 ` Robert Kawulak
2004-10-07 10:08 ` Dmitry A. Kazakov
2004-10-10 22:21 ` Robert Kawulak
2004-10-11 8:46 ` Dmitry A. Kazakov
2004-10-15 9:25 ` Robert Kawulak
2004-10-15 11:56 ` Dmitry A. Kazakov
2004-10-20 20:06 ` Robert Kawulak
2004-10-21 2:51 ` Kevin Cline
2004-10-21 8:39 ` Dmitry A. Kazakov
2004-10-27 21:41 ` Robert Kawulak
2004-10-01 13:02 ` Robert Kawulak
2004-10-28 10:26 ` Larry Kilgallen
2004-09-27 16:21 ` Matthew Heaney
2004-09-28 2:47 ` Kevin Cline
2004-09-28 4:03 ` Brian May
2004-09-28 4:46 ` Matthew Heaney
2004-09-29 3:14 ` Kevin Cline
2004-09-29 3:50 ` Matthew Heaney
2004-09-29 3:52 ` Matthew Heaney
2004-09-29 13:44 ` Matthew Heaney
2004-09-26 6:32 ` Kevin Cline
2004-09-26 15:05 ` Matthew Heaney
2004-09-27 14:35 ` Kevin Cline
2004-09-23 19:30 ` jayessay
2004-09-23 19:42 ` Alexander E. Kopilovich
2004-09-22 21:05 ` Georg Bauhaus
2004-09-23 9:20 ` Kevin Cline
2004-09-23 16:58 ` Warren W. Gay VE3WWG
2004-09-23 6:24 ` Matthew Heaney
2004-09-23 11:23 ` Jeff C r e e.m
2004-09-23 11:35 ` Georg Bauhaus
2004-09-23 17:05 ` Pascal Obry
2004-09-23 17:07 ` Pascal Obry
2004-09-23 18:30 ` Matthew Heaney
2004-09-23 19:31 ` Simon Wright
2004-09-24 0:09 ` Stephen Leake
2004-09-25 10:41 ` Simon Wright
2004-09-23 18:24 ` Kevin Cline
2004-09-23 17:12 ` Dan Andreatta
2004-09-23 18:10 ` Pascal Obry
2004-09-23 19:21 ` Eric Jacoboni
2004-09-23 19:31 ` Ed Falis
2004-09-23 19:37 ` Eric Jacoboni
2004-09-24 20:09 ` Kevin Cline
2004-09-25 0:18 ` Eric Jacoboni
2004-09-26 6:37 ` Kevin Cline
2004-09-26 14:57 ` Matthew Heaney
2004-09-23 19:24 ` Eric Jacoboni
2004-09-23 21:30 ` Eric Jacoboni
2004-09-26 11:44 ` Jacob Sparre Andersen
2004-09-26 17:02 ` jayessay
2004-09-24 8:26 ` Ole-Hjalmar Kristensen
2004-09-23 22:08 ` Anders Gidenstam
2004-09-24 8:10 ` Ole-Hjalmar Kristensen
2004-09-24 17:43 ` Dan Andreatta
2004-09-24 17:40 ` Dan Andreatta
2004-09-24 18:50 ` Pascal Obry
2004-09-23 22:34 ` Randy Brukardt
2004-09-23 23:11 ` Dale Stanbrough
2004-09-24 1:57 ` Matthew Heaney
2004-09-24 6:32 ` Dale Stanbrough
2004-09-24 21:01 ` Randy Brukardt
2004-09-24 0:43 ` Jeffrey Carter
2004-09-24 1:51 ` Matthew Heaney
2004-09-24 20:21 ` Kevin Cline
2004-09-26 11:09 ` Jacob Sparre Andersen
2004-09-27 13:49 ` Björn Persson
2004-10-12 5:21 ` Ada Popularity: Comparison of languages Brian May
2004-10-12 11:43 ` Peter Hermann
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox