From: Per Sandberg <per.s.sandberg@bahnhof.se>
Subject: Re: protobuff for Ada
Date: Tue, 1 Jan 2019 09:05:38 +0100
Date: 2019-01-01T09:05:38+01:00 [thread overview]
Message-ID: <obFWD.113356$xc1.21223@fx08.fr7> (raw)
In-Reply-To: <q07ke7$855$1@gioia.aioe.org>
Well
From my perspective absolutely biggest flaw with technologies like
protobuf is:
* Its backed by a large corporation.
* The technology is well known.
* 99.9% of the programming population think that they are the salvation
to serialization.
* The licensing is open.
And on top.
* The are significantly more then one project where the lack of protobuf
support has ruled out Ada as implementation technology.
/And my intent was to eliminate at least the last points even if the
technology is inferior.
/P
On 12/29/18 12:05 PM, Dmitry A. Kazakov wrote:
> On 2018-12-29 06:53, Shark8 wrote:
>
>> Though, it should be noted that ASN.1 is *probably* the better
>> technology in cases where ProtoBufs are being considered:
>> http://ttsiodras.github.io/asn1.html
>
> Sorry to disappoint you in this festive time, but this approach has the
> same fundamental flaw as prepared SQL statements do. You have to bind
> native Ada objects to protocol/serialized/persistent objects forth and
> back. This does not work well in practice. In fact, it barely work at
> all considering the overhead and hazards of type conversions.
>
> A different approach is Ada's representation clauses which describe both
> objects same. Beyond simple textbook cases that does not work either.
>
> The best practical method so far is using manually written stream
> attributes. Unfortunately it has shortcomings too:
>
> 1. Reuse is limited and composition is unsafe because stream attributes
> are non-primitive operations.
>
> 2. Introspection is almost non-existed. Only tagged types could have it.
>
> 3. No support of error handling and versioning. Though it is possible to
> do manually that is extremely error-prone and totally lacks static
> verification when the number of test cases is huge to potentially
> infinite. Even worse, the offending cases do not show up in a normally
> functioning system. So, when detected, it is always too late.
>
> P.S. Needless to say, the problems 1-3 fully apply to other two methods
> as well.
>
> P.P.S. And nothing was said about referential and recursive types...
>
next prev parent reply other threads:[~2019-01-01 8:05 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-28 18:57 protobuff for Ada Per Sandberg
2018-12-29 5:53 ` Shark8
2018-12-29 11:05 ` Dmitry A. Kazakov
2018-12-31 16:55 ` Olivier Henley
2018-12-31 17:59 ` Dmitry A. Kazakov
2019-01-01 14:56 ` Olivier Henley
2019-01-02 6:57 ` G. B.
2019-01-02 10:02 ` Dmitry A. Kazakov
2019-01-01 8:05 ` Per Sandberg [this message]
2019-01-01 15:04 ` Olivier Henley
2018-12-29 13:01 ` joakimds
2018-12-29 14:52 ` Per Sandberg
2018-12-30 0:27 ` joakimds
2018-12-30 0:28 ` joakimds
2018-12-30 6:21 ` Per Sandberg
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox