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=AC_FROM_MANY_DOTS,BAYES_00 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!.POSTED!not-for-mail From: "Jeffrey R. Carter" Newsgroups: comp.lang.ada Subject: Everything You Know Is Wrong Date: Sat, 26 Dec 2015 17:37:04 -0700 Organization: Also freenews.netfront.net; news.tornevall.net; news.eternal-september.org Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Injection-Date: Sun, 27 Dec 2015 00:34:31 -0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="caa759af2a9c666aec02942f6fe5abd6"; logging-data="31842"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/HuOqZSQkvNAiTAbksolrJZfvT8WTNGk4=" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 X-Mozilla-News-Host: news://freenews.netfront.net:119 Cancel-Lock: sha1:f0Y1A2a0RAC1MPbn1DFYbFqfqBQ= X-Enigmail-Draft-Status: N1110 Xref: news.eternal-september.org comp.lang.ada:28885 Date: 2015-12-26T17:37:04-07:00 List-Id: When I started out in S/W development, I learned some rules, such as, "Integer math is much faster than floating point," and, "Memory is scarce." In the 90s, processors began to typically have an FPU, and floating-point math became as fast as integer, and in some cases, since it could proceed in parallel with the CPU, faster. When computers began to commonly have RAM in quantities measured in GB rather than KB or MB, memory ceased to be scarce, and things that were previously laughable, such as type Int_Set is array (Integer) of Boolean; for Int_Set'Component_Size use Boolean'Size; became possible (for a 32-bit Integer, Int_Set'Size would be 512 MB). What I knew is wrong. Today we learn that memory is much faster than persistent storage. That may soon be wrong, too. I've been reading about non-volatile memory research, and it seems that in a few years NV RAM will be available as fast current RAM and as persistent and durable as current disks. This will no doubt revolutionize computer architectures and programming languages. Instead of computers with distinct memory and storage, there will probably be computers with lots of NV RAM (1-10 TB?) but no disk. People will no doubt still want a hierarchical naming system for data stored in that memory, but presumably S/W will map variables onto these "files". So instead of the current "open, loop over read/modify/write, close" paradigm, we might have something like type R is record ... type L is array (Positive range <>) of R; F: mapped L with File_Name => "name"; All_Records : for I in F'range loop -- or "of F" where the bounds of F will be determined from "name". A mechanism will be needed for collections of heterogenous data as well. F would be equivalent to a Direct_IO file with in-out mode. I would think that the Ada 2X project should be thinking about these things, and wonder what others here think about them. -- Jeff Carter "He that hath no beard is less than a man." Much Ado About Nothing 132