| Deutsch English Français Italiano |
|
<vfmdsj$jh1o$2@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder2.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Don Y <blockedofcourse@foo.invalid> Newsgroups: sci.electronics.design Subject: Re: OT: Linix goes politics Date: Sun, 27 Oct 2024 15:12:33 -0700 Organization: A noiseless patient Spider Lines: 114 Message-ID: <vfmdsj$jh1o$2@dont-email.me> References: <vff5rp$1c1v6$1@solani.org> <d3gnhj1v9pt3aea029c1q1lotbm7pemrv2@4ax.com> <vfi09d$23gs$1@solani.org> <04jqhjdoje7mjhueqi3iusubfg3vs7plql@4ax.com> <i9mqhjdqclnurb4r2t7u0pin28hlt372i4@4ax.com> <vfjnte$3sq4f$1@dont-email.me> <dtcthjta199gkv0rvff4tbaip2qgaj0k2q@4ax.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Sun, 27 Oct 2024 23:12:36 +0100 (CET) Injection-Info: dont-email.me; posting-host="5b998538948c688c7483e57c5a315b85"; logging-data="640056"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/WaydMkVht+YMJRritRdRF" User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Cancel-Lock: sha1:OQXgruenLfjx4EcV5d+vLemb5HA= In-Reply-To: <dtcthjta199gkv0rvff4tbaip2qgaj0k2q@4ax.com> Content-Language: en-US Bytes: 6017 On 10/27/2024 2:52 PM, Joe Gwinn wrote: > On Sat, 26 Oct 2024 14:45:07 -0700, Don Y > <blockedofcourse@foo.invalid> wrote: > >> On 10/26/2024 2:19 PM, Joe Gwinn wrote: >>> It's 9000 languages. This was discussed on SED in February 2023. My >>> posting on the subject is "Re: dead programming languages" posted on >>> 23 February 2023. This is the posting that went into ecosystems and >>> other practicalities. >> >> Most languages just change the syntax of operations. >> >> OTOH, many introduce (or, promote to first-class notions) >> techniques and mechanisms that are tedious to implement >> in other languages. > > In evolution, all's fair, even if it isn't squishy critters that are > evolving. I object to the novel-for-the-sake-of-novelty approach that seems to be so common. OTOH, object-based languages, list processing, *string* processing, etc. all have suitable application domains where they excel over other approaches (of course, any language that is Turing complete can be used to solve any problem expressible in another such language). >> E.g., support for concurrency has to be added to most >> languages; there are no notions of having other processes >> running alongside "yours"; thus, no mechanisms for exchanging >> information with them, no mechanisms to ensure competing >> accesses to data are atomic, etc. > > Concurrency is far older than any computer language save assembly. But HLLs have not embraced it, relying on "libraries", helper routines and other mechanisms to provide it to the developer. > Hardware did concurrency before that. > > In the old days, we did multiprocessing, with multiple processors > sharing a backplane with multiple processors. It was not uncommon to have two processors sharing a store. Some of the old MCUs were very easy to do SMP -- but, we didn't call it that, back then. > In advanced cases, there would also be a memory board on one of the > backplane slots, where data used by all could be retained - the > blackboard model was common. The flaw, there, is that it doesn't allow for selective access to specific data. Its akin to a monolithic binary that makes everything available to everything else. Fine for DESIRED sharing; abysmal in preventing UNDESIRED sharing! > Later, threads were invented, this being concurrent threads of control > within the same process and thus address space. Etc. > > And realtime operating systems were basically clouds of independent > but interacting finite state machines. As was the hardware being > controlled. The mapping between hardware and software FSMs needed to > be clean, or things got pretty awkward. > > In none of these cases were the computer languages expected to have > any critical role in handling and implementing concurrency. > > Which is good because they were not very good at concurrency. But, now hardware *presents* multiple execution engines (cores, hardware contexts) so languages that don't address this environment force the developer to adopt piece-meal approaches to solutions. > To summarize, the software folk had no idea how hardware actually > worked, and the hardware folk didn't speak software. But, that's because most EE programs were hardware and most CS programs were software. Few folks had a foot in each camp. (my degree was exactly thus) >> Imagine using C (or any other programming language) to >> *interact* with a relational database... how many errors >> would a user likely make by failing to address the issues >> that SQL hides? > > Databases are a swamp of their own, and are far too slow and > unreliable for embedded realtime. That, again, depends on the timescales involved. Real-time need not be "real fast". > It's very common to use > N-dimensional hash tables for storage and access of random data. Hash > table lookup is a O[1] (constant-time ) operation that does not > degrade as data accumulates. But, you can wrap that in a DBMS context so the developer thinks he is just dealing with yet-another-database. I use an RDBMS in my (real-time) system but acknowledge the variance in query (and other operator) outcomes. So, ask for the data *before* needing it. Or, ask *when* needed if you are sure the result will be available before your deadline. [A database makes it SO much easier to deal with "data" as it forces structure onto the data; no parsing of text/binary files... let the DBMS ensure the integrity of its contents so the fact that the data CAME from the DBMS vouches for its integrity: "Is this datum that I fetched a valid *date*? Let me write a routine to check..."] > Joe Gwinn