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=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Running a preprocessor from GPS? Date: Thu, 30 Jul 2015 14:23:32 +0200 Organization: cbb software GmbH Message-ID: <13bslomh3tahk$.62kmnpkj0wge$.dlg@40tude.net> References: <2df4698f-4c8e-457c-822d-209cb2f8ab5e@googlegroups.com> <014427b1-ff7a-4a69-82e6-0330af77ed96@googlegroups.com> <1438244829.17005.26.camel@obry.net> <0a8104af-4ebb-4d82-92e5-6ba7289272ce@googlegroups.com> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: ChlmA4XFxcJoDoqGdDSflw.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:27201 Date: 2015-07-30T14:23:32+02:00 List-Id: On Thu, 30 Jul 2015 04:51:48 -0700 (PDT), EGarrulo wrote: > Exactly! And: > > Printf ("Mr %Arg you have won %Arg dollars!\n", Surname, Amount); > > is much more readable than: It is not readable and it is not formatting, just string concatentation. > Put ("Mr "); > Put (Surname); > Put (" you have won "); > Put (Amount); > Put (" dollars!"); > New_Line; Much better, though in such cases, which are not formatting, I rather do Put_Line ("Mr " & Surname & " you have won " & Image(Amount) & "dollars!"); > Now, multiply this for all the times that your program needs > to print formatted text... Yes and a lot more because formatting involves fields, justification, fonts, encodings, localization etc. [ In real-life C++ it quickly becomes printf ("%s\n", Text) with all formatting stuff done elsewhere. ] The point is that for debug messages and other adhockery no full-blown formatting is ever needed and Put_Line + Image is all anybody could ever want. For text formatting proper printf is utterly useless. > Not to mention that the order of the > arguments is hard-coded in the valid Ada snippet, whilst you could > need a different order to support formatted output in different > languages. And how is it different from printf, except that printf has a hard-coded order used twice rather than once (once in the format and once in the arguments), adding a nice source of run-time errors... My favorite was under 68k UNIX Sys V. The C run-time sometimes modified the format string while processing printf. In the end the format string was supposed to be restored to its original state. Alas, the linker put the format string into a read-only section... -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de