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 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!nntp-feed.chiark.greenend.org.uk!ewrotcd!newsfeed.xs3.de!io.xs3.de!news.jacob-sparre.dk!franka.jacob-sparre.dk!pnx.dk!.POSTED!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Ada Annoyances Date: Tue, 27 Jun 2017 15:38:45 -0500 Organization: JSA Research & Innovation Message-ID: References: <1ac5a44b-4423-443a-a7bb-2864d9abe78f@googlegroups.com> <1498048151.20885.28.camel@obry.net> <96174ea5-852d-44e9-8535-7c1eb24d5326@googlegroups.com> <8d3aff06-82df-485f-89e5-a50c326aab05@googlegroups.com> <66aa262e-2ac9-4016-b32d-e9fee14779e1@googlegroups.com> <88e2f18a-0786-4303-a5b8-fe82e8c81dcb@googlegroups.com> <71c4fdcd-4213-4b84-b852-c8674cfaf717@googlegroups.com> <98197f40-9833-4bb8-87ca-1593d2da7c81@googlegroups.com> NNTP-Posting-Host: rrsoftware.com X-Trace: franka.jacob-sparre.dk 1498595926 22902 24.196.82.226 (27 Jun 2017 20:38:46 GMT) X-Complaints-To: news@jacob-sparre.dk NNTP-Posting-Date: Tue, 27 Jun 2017 20:38:46 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Original X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 Xref: news.eternal-september.org comp.lang.ada:47148 Date: 2017-06-27T15:38:45-05:00 List-Id: "Maciej Sobczak" wrote in message news:98197f40-9833-4bb8-87ca-1593d2da7c81@googlegroups.com... >> >So guess how did I learn about it... >> >> You wrote some ill-advised Initialize routines? > >You cannot say it was ill-advised without knowing the context and purpose. Of course I can. The purpose of the Initialize routine is to "fix-up" an existing initialized object (some sort of registration is the most likely), with the language-defined default initialization and/or a constructor function providing the actual initialization. It's not unlikely that someone might try to abuse that purpose, but that doesn't suddenly make such a usage less ill-advised. Again, the flaw in Ada here is that the purpose behind these routines (Initialize/Adjust/Finalize) isn't as obvious as it could be, and people coming from other languages do try to make them do things for which they are not intended. Not surprisingly, that causes problems. ... >> Re-dispatching is almost >> always evil, do it only after VERY careful consideration. >Let's say I did consider it VERY carefuly. Then you've also considered the negative side-effects and deem them to be acceptable. >Now all your references to unspoken "principles" and qualifiers like >"almost" and >"majority" and criticism of the code that you have never seen, fell apart. I say "almost" because I don't believe in making absolutest statements. But if one uses Ada as it was intended, and don't try to fit designs from other languages into it, there aren't any problems here. If one goes too far outside the box, you can introduce problems, and that possibility is definitely a language flaw. But all I see here is you trying to prove that C++ is better than Ada. If so, why are you wasting our time here? Go back to the evil empire and leave those of us that are trying to fix the universe alone. I'm done here. Randy.