From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 10.236.161.8 with SMTP id v8mr12770595yhk.0.1406492380150; Sun, 27 Jul 2014 13:19:40 -0700 (PDT) X-Received: by 10.140.41.104 with SMTP id y95mr437771qgy.2.1406492380129; Sun, 27 Jul 2014 13:19:40 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!peer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!j15no2939484qaq.0!news-out.google.com!j6ni12934qas.0!nntp.google.com!v10no2873193qac.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Sun, 27 Jul 2014 13:19:40 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=206.53.78.59; posting-account=ShYTIAoAAABytvcS76ZrG9GdaV-nXYKy NNTP-Posting-Host: 206.53.78.59 References: <72b1318a-2eb6-4129-af9b-5bcfbb329c5b@googlegroups.com> <3dcb7839-3003-4fcd-afb6-3369f715102b@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: Ada's ranking of popularity at IEEE Spectrum From: sbelmont700@gmail.com Injection-Date: Sun, 27 Jul 2014 20:19:40 +0000 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Received-Bytes: 2817 X-Received-Body-CRC: 198164462 Xref: news.eternal-september.org comp.lang.ada:21297 Date: 2014-07-27T13:19:40-07:00 List-Id: On Saturday, July 26, 2014 10:01:17 PM UTC-4, David Thompson wrote: >=20 > Huh? Except for application data, which a general-purpose transport >=20 > can't know about, OpenSSL goes to quite a bit of effort to make its >=20 > API about as strongly typed as can be accomplished in C, with mostly >=20 > opaque structs, access routines, shims for ASN.1 and PEM, etc. It's >=20 > not perfect, and certainly not as easy as in Ada, but it's far from >=20 > the all-too-common-in-C void* madness you suggest. It all comes down to just how "Ada-like" you want it to be. OpenSSL doesn'= t throw exceptions, so does the benefits of using them in a binding outweig= h the slight deviation from the spec? The write function takes a length, w= hich in Ada would be inherent in the array, so do you deviate from the spec= again? It doesn't have reference counting (IIRC), so do you use controlle= d types? Or do you even go 'full Ada' and make the client instantiate Inte= ger_SSL or Float_SSL functions instead of sending everything as a string? = Or maybe even model it using Ada.Streams? My point is that even 'good' APIs (like OpenSSL or OpenGL) inherently stink= of untyped C, and it becomes a delicate balancing act of figuring out at w= hat point you've failed to implement the spec everyone knows and instead su= cceeded at inventing a new (better) API that nobody wants. Victor Porton's= copious posts seem to suggest similar problems. -sb