From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on ip-172-31-65-14.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-3.2 required=3.0 tests=BAYES_00,NICE_REPLY_A, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 Path: eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Parameterised 'Image Attributes Date: Sat, 19 Aug 2023 15:01:36 +0200 Organization: A noiseless patient Spider Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Sat, 19 Aug 2023 13:01:35 -0000 (UTC) Injection-Info: dont-email.me; posting-host="316de7f1c065f36c1d679840f6f7de11"; logging-data="772162"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19ih9eL7HIZi9zst/0Iy/jH84LAh9nSoRQ=" User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.14.0 Cancel-Lock: sha1:YiEl251vpglo6epe8OWAbvjZQVI= In-Reply-To: Content-Language: en-US Xref: news.eternal-september.org comp.lang.ada:65540 List-Id: On 2023-08-19 13:56, J-P. Rosen wrote: > Le 19/08/2023 à 12:03, Dmitry A. Kazakov a écrit : >> On 2023-08-19 11:14, J-P. Rosen wrote: >> >>> The intent of the 'Image attribute is to have a quick representation, >>> mainly for debugging purposes. >> >> It seems that for the vast majority of Ada users this intent was wrong... > The vast majority of Ada users ignore a number of useful features > provided by the language, and keep asking for improvements that are > already there... Or these features are not that useful? Language users and designers have often different perspectives... >>> If you want nice formatted output, use the Put procedure on String >>> from Text_IO. >> >> Put does not supersede 'Image. Put is I/O. 'Image is pure string >> formatting. Put is generic and requires instantiation of some package >> with some difficult to guess name. 'Image is built-in [statically] >> dispatching and generated automatically by the compiler. >> > Yes, put has nothing to do with 'Image. Yes, put requires instantiation. > So what? Ada is more verbose, in favor of stricter typing. I don't see how instantiation is stricter typing. In fact instantiation introduces overloading (static ad-hoc polymorphism) which was always frowned upon at as less type safe than overriding. > Ease of > reading over ease of writing has always been a major design principle of > Ada - although I confess it had a bad effect on its popularity, people > want to write fast and ignore long term maintenance issues. I don't buy this either. It is Put (X) vs. X'Image equally readable and writable. If you refer to the instantiation noise or with/use clauses you would require to but somewhere far above in the package. That is not ease of reading. That is just meaningless noise. > If you want formatting on an integer type (with or without IO), you > instantiate Integer_IO. I don't find it hard to guess the name... Maybe > you had something else in mind? Yes, all other types that might require formatting. I doubt anybody, but a language lawyer could name the package appropriate for formatting a fixed-point type without looking into the RM. Which is absolutely unneeded as 'Image would be perfectly OK if it had necessary parameters. All that generic text I/O packages are unnecessary as stream I/O case perfectly illustrates. Ada 95 did stream I/O if not right, but far better making 'Read, 'Write etc attributes overridable. The problem of generic mess solved. We do not have and do not need any generics for stream I/O. Good riddance. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de