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.4 required=5.0 tests=BAYES_00,FORGED_MUA_MOZILLA autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,508516c114ade8e1 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII Received: by 10.68.226.10 with SMTP id ro10mr1427675pbc.6.1328795340909; Thu, 09 Feb 2012 05:49:00 -0800 (PST) Path: wr5ni5045pbc.0!nntp.google.com!news2.google.com!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!nx02.iad01.newshosting.com!newshosting.com!news2.euro.net!news.mixmin.net!news2.arglkargh.de!noris.net!newsfeed.arcor.de!newsspool3.arcor-online.net!news.arcor.de.POSTED!not-for-mail Date: Thu, 09 Feb 2012 14:48:50 +0100 From: Georg Bauhaus User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20111222 Thunderbird/9.0.1 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: ada without ada libraries? References: <82mx8tttx7.fsf@stephe-leake.org> <120f2efrm73fc$.mi1m9kwbbkes$.dlg@40tude.net> <1o71uiwmoiunb.bkjz8c54rcbl.dlg@40tude.net> In-Reply-To: Message-ID: <4f33cec2$0$7617$9b4e6d93@newsspool1.arcor-online.net> Organization: Arcor NNTP-Posting-Date: 09 Feb 2012 14:48:50 CET NNTP-Posting-Host: 1af797c7.newsspool1.arcor-online.net X-Trace: DXC=fML9@>l1B?TV;Ef1`Jk54\ic==]BZ:af^4Fo<]lROoRQ<`=YMgDjhgRZ4`Yna[0]:^nc\616M64>ZLh>_cHTX3j]OnD:lcnTGmZ X-Complaints-To: usenet-abuse@arcor.de Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Date: 2012-02-09T14:48:50+01:00 List-Id: On 09.02.12 12:08, Gautier write-only wrote: > Interesting debate: theoretically, I would support fully Yannick. > But when looking at my practice the strange fact is that the only DSL > I'm using is command-line interpreter scripts. > I can do everything else straight in Ada, even: > 1) on-purpose data conversions, sorting, aggregation (in one case, > replacing a R script; the Ada version ran hundred times faster and > solved a data modelling bottleneck for several people) > 2) 3D models (instead of VRML or MAXScript) > 3) random language generators (Ada is used there in a purely > functional way) > 4) recompression of Zip archives by calling different Zippers and > taking the best compression ratio > > In cases 2) and 4) I can definitely do a lot more than using a > corresponding DSL I'd view this from a different angle, too. It isn't decisive, I'm sure. The difference is not in the vocabulary, or in convenience. Rather, there are things that one can do at the language level (whatever the problem domain is) that is not easily done using another language. Suppose that some programming language has both data types and associated sets of operations that are fundamental to handling objects of this data type. Like one would expect addition to be available with objects of numeric types. Such operations could be somewhat like Ada's intrinsics, or like type attributes. Or they could be somewhat like the schematic patterns of operations on containers, etc. In any case, they, too, follow the conventional scheme of (values, operations). But, what makes them different is the kinds of values on the one hand and their "initial functions" (from which to built more operations) on the other. Suppose that data from some problem domain have a physical structure that is very much comparable to the structure of the above mentioned data types (data types as-is, not composed). Likewise, the typical ways of using the data in the domain are comparable to (language-based) operations on objects of that data type (the "initial functions"). Then, "operational modes", the ways of doing things in the domain will actually suggest such a "matching" programming language. For example, "search" � la Prolog, or "generators" � la Icon have influenced the types of built-in data structures and operations, and have also influenced the interpretation of expressions. The result is a different language, but a suitably different language that is still a general purpose programming language. The choice of a domain specific programming language in this sense will be influenced by the domain: the data structures of the domain might match the data structures in the language better. The operations in the domain might match the ones of the language better. The difference between the languages when seen from this angle is this: no need to produce yet another DSL to get language features that are valuable in some domain.