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.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC 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!news.eternal-september.org!.POSTED!not-for-mail From: "G.B." Newsgroups: comp.lang.ada Subject: Re: New IEEE Language Popularity Ratings Date: Thu, 11 Aug 2016 23:34:22 +0200 Organization: A noiseless patient Spider Message-ID: References: <31c22983-150c-4dab-abba-588e15f75914@googlegroups.com> <87y44514hl.fsf@jester.gateway.pace.com> <87twes1v4l.fsf@jester.gateway.pace.com> <87popg1n4b.fsf@jester.gateway.pace.com> <87d1lg1bf2.fsf@jester.gateway.pace.com> <874m6s15z1.fsf@jester.gateway.pace.com> Reply-To: nonlegitur@futureapps.de Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Thu, 11 Aug 2016 21:34:24 -0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="9090ca94113c019ac0f65cc6c83ad12d"; logging-data="29907"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19bmp+QDQ3vVAjO8rWRq8OUwVjmawolJqc=" User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 In-Reply-To: <874m6s15z1.fsf@jester.gateway.pace.com> Cancel-Lock: sha1:jD/8sA4U28gHqpgC8hEu9cpYTcE= Xref: news.eternal-september.org comp.lang.ada:31406 Date: 2016-08-11T23:34:22+02:00 List-Id: On 11.08.16 02:53, Paul Rubin wrote: > "G.B." writes: >> Also, when a production process is controlled (in the BA sense) by the >> IoT, then adjusting processes requires some computation. > > Obviously if every IOT report sets off a 6 hour machine learning > calculation then you need a lot of server hardware. Usually you just > check for some simple conditions (refrigerator is out of proper temp > range, user needs to order more pickles, etc.), trigger some event if > conditions match, otherwise just log the report, then there's not much > happening. I can't remember the last time I saw a web service > programmed in C or Ada or anything like that (I do know they exist). > They're either in scripting languages or in Java. Do you actually work > on internet stuff? The server guys always want to deal with scaling > problems by adding more hardware. More recently, the web service programmers want others to do the job of handling the computing resources. Amazon Lambdas, Azure, ... micro services. This trend, given the state of the art, necessitate a rewrite of a fair amount of algorithms, as architectures become segmented again, in SPACE and TIME, and little automatic compilation is in place. The effort is multiplied when gradual roll-out of changes to single nodes is wanted, with monitoring. Also by the slow progress towards non-trivial storage and retrieval of data structures across nodes. Some languages used had been changed quite a bit, e.g. "yield" meaning a whole lot in Python on Google App Engine. Others like Java didn't address it at the language level. In either case one has a lot to learn at least once, if using one of these architectures. Scripting languages or something like Java, neither is really there yet. Certainly, I don't expect web services that aren't special purpose to be written like maybe a Unix daemon, in C or Ada. Who would? Using sockets and light weight protocols may be the privilege of those processing massive amounts of stock exchange data, or do online traffic control, or ... Which OTOH shows that it "usually" need not be just the occasional fridge that has something to report. Move that robot arm differently. Correlate it with the quality of new coating measured a few minutes up the assembly line. Compare assembly lines. Or vertical plant production lines. Someone has to develop the automation hardware and associated software so that others can just mount the electrical things on their shelves, after some configuration. But, from the point of view of program design, e.g. being "responsive" has been recognized to be related to the concept of a deadline in real-time programming. At the client side (smart phone), this kind of predictable response may dictate that jQuery's or AngularJS's AJAX calls would have to be served in a timely fashion. At the server side, this, then, is no longer just a question of servlets et al. being fast. I need to more carefully distribute computations and guide communication in this "big system". Logically, I need to arrange for scheduling. Not necessarily because of an algorithmic requirement, but because that's what the "OS" wants. Micro Python is a nice example. It frees the programmers of needing to tackle a sophisticated composition like C or Ada, or the usual Python libraries (or even Django), which they don't need for turning LEDs on or off in some loop. Or sending a ready-made bunch of data over USB via a "Micro Python system call". No knowledge of ptrdiff_t is required for that. And then it has inline assembler, and a garbage collector that, if run, took (takes?) between 1-2msec on the Micro Python device ... OTOH, it should be obvious that this is a specially written version of compiled Python---I think they could have chosen any nice little language with that bit of O-O structure and simple data representation---made for special purposes. So, a single programmer in a garage can happily focus on getting his or her job done. The system library seems growing. Other languages are getting Ada features. Just learned new Swift types marked Beta and named using "time", "time interval", or "wall time", and "queue". These types describe objects for concurrent processing. -- "HOTDOGS ARE NOT BOOKMARKS" Springfield Elementary teaching staff