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=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,bf02c238a92156a3 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news3.google.com!news.glorb.com!newsfeed00.sul.t-online.de!t-online.de!news-lei1.dfn.de!news-ber1.dfn.de!news.uni-hamburg.de!cs.tu-berlin.de!uni-duisburg.de!not-for-mail From: Georg Bauhaus Newsgroups: comp.lang.ada Subject: Re: Windows Ada database support. Date: Tue, 30 Nov 2004 16:07:06 +0000 (UTC) Organization: GMUGHDU Message-ID: References: <5e3e03a7.0411240431.7e037a4e@posting.google.com> <17w0jtt2xq2ya.1nj2623n37457.dlg@40tude.net> <1ohmhrsp481iu.w61dt6dz9cqk$.dlg@40tude.net> <1cxufyzpjc6ns.1lomm6dpfxyhb$.dlg@40tude.net> NNTP-Posting-Host: l1-hrz.uni-duisburg.de X-Trace: a1-hrz.uni-duisburg.de 1101830826 22253 134.91.1.34 (30 Nov 2004 16:07:06 GMT) X-Complaints-To: usenet@news.uni-duisburg.de NNTP-Posting-Date: Tue, 30 Nov 2004 16:07:06 +0000 (UTC) User-Agent: tin/1.5.8-20010221 ("Blue Water") (UNIX) (HP-UX/B.11.00 (9000/800)) Xref: g2news1.google.com comp.lang.ada:6670 Date: 2004-11-30T16:07:06+00:00 List-Id: Dmitry A. Kazakov wrote: : On Mon, 29 Nov 2004 22:05:50 +0000 (UTC), Georg Bauhaus wrote: :>:> See also Frank Piron's comment about implicit cursors in :>:> PL/SQL. :> :> Wrong abstractions in PL/SQL too? : : Is in your opinion PL/SQL better than Ada? PL/SQL has a specific purpose, and a rich set of facilities for handling relations. I don't see why anyone using an Oracle DB would want to write stored procedures in Ada? :>:>: So what? As long as my application uses Ada.Database, I do not care. :> :> Is this a motto? : : As long as the goal is to have a generic data base interface. Well, the prime goal for me has got to be an application that works within the limits set by the RDBMS, in this case Oracle. If I have to "descend" to sequential access or to random access via cursors, so be it. : It is difficult to develop something : large, complex and concurrent using only arrays. As a matter of fact. Say that to someone you uses one of the array programming languages... SQL is much more than just arrays. It also has sets and tables and cursors. Like Ada 2005. Indeed RDBMSs have some low level features, but why not? There are DBs based on different data structures, like extensible types. Nice as they are, they do have real time limits, as a matter of fact. And they do not always match the types of application data, which can be of a rather fixed shape. : The same way we program concurrent distributed applications in Ada! And you know what people say about task switching? Rendevous has its temporal aspects, how do you abstract them away? There are others who want to use the database, too, so "could you please stop shaking hands and give us some of the resources back if you don't need them any longer!" : ADT, OO, and so get rid of raw table views. Especially because there might : be data bases for which table views could be very inefficient. I'd leave RDBs only when table views are a burden, not because there might be cases. : IMO, DB applications have outgrown tables and : cursors long time ago. That may well depend on data. The "low level" Ada.Containers might be used to implement something more abstract. Does every part of a large Ada program outgrow Ada.Containers? How can I build a generic abstraction on top of Ada.Containers that covers all aspects of recourse consumption automagically? BTW, thinking of accounting, the stock exchange, time series, measurements, there are lots tabular data, and a sequence of records is fine as a data structure. Something as useful as a list together with predicates and recursion, depending on the application. Or, in imperative terms, a vector together with predicates and iteration? However, if you look at SETL2 or Haskell (which does have type classes which I'd guess you will like very much), there are cases where you have to use dumb old ways of manipulating data in a "low level" way. For example, you cannot just built a ton of sets and feed them to existential quantifiers, because this will quickly consume all of the available resources. Quicksort in SETL2 and Haskell is the standard example. This always happens the moment you have many data, or when you use high level constructs in too generous combinations. Can you present an efficient sort that is built around if # > 1 then sort {smaller} + arb + sort {larger} else arb end and that is high level, ADT, OO, using available processors, etc. and *still* uses a fairly small amount of memory in addition to the memory consumed by data? : Just look how many DB programmer positions are : offered. This is a significant indicator, that the technology is outdated. For me the number of database adminstrators/programmers has to do with the number of significant installations and the number of projects. This number depends on the number of organisations, and on their willingness/ability to invest. I don't think that the number of wealthy organisations will change significantly because some programming techniques evolve. :> What has Ada versus Assembly got to do with resource consumption of :> communicating programs (Ada program <-> database program?) : : It is because you present performance as an argument for using a low level : mechanism. I present resource consumption as a real time constraint on the structure of data and on techniques of data access. : It is a fundamentally flawed argument. The whole history of : computer development is against it. The history of computer development has it, that there are commercially viable successors to APL in use at companies using big data bases. Incidentally, APL is a high level functional language built around arrays... -- Georg Bauhaus