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=unavailable autolearn_force=no version=3.4.4 Path: border1.nntp.dca3.giganews.com!border3.nntp.dca.giganews.com!Xl.tags.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local2.nntp.dca.giganews.com!nntp.earthlink.com!news.earthlink.com.POSTED!not-for-mail NNTP-Posting-Date: Mon, 17 Jun 2013 20:28:35 -0500 From: Dennis Lee Bieber Newsgroups: comp.lang.ada Subject: Re: Ada advocacy Date: Mon, 17 Jun 2013 21:28:33 -0400 Organization: IISS Elusive Unicorn Message-ID: References: <19595886.4450.1332248078686.JavaMail.geo-discussion-forums@vbbfy7> <2012032020582259520-rblove@airmailnet> <12ee9bc5-3bdf-4ac0-b805-5f10b3859ff4@googlegroups.com> X-Newsreader: Forte Agent 6.00/32.1186 X-No-Archive: YES MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Usenet-Provider: http://www.giganews.com NNTP-Posting-Host: 76.249.27.103 X-Trace: sv3-Sg9yNJx3fe2kmqZuRHBnSxhpl4z7FzNEJa37QSE9wiFjtQ9G3+J2ZEFBiu6G91gc/PpBrmR0kxqtdXV!RPNaoavCC6da8Inr64iorRDgBG8J2riuGlPdLQW47+hdjl+Z8wNFx4v4JF9NSARvupOwVwIP9Zf9!F9JFjXSj1wn4sEyK5gBIdrOPy6o= X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 X-Original-Bytes: 5416 Xref: number.nntp.dca.giganews.com comp.lang.ada:181910 Date: 2013-06-17T21:28:33-04:00 List-Id: On Mon, 17 Jun 2013 17:14:59 -0700 (PDT), Leo Brewin declaimed the following: >Greetings, > >I have just been reading some of the older posts in this discussion and came across the following objections to Ada (see quoted text below). Does anybody have any opinion on this? Is it correct? Is the original poster confusing the difference between a programming language and an operating system? > >Cheers, >Leo > >On Wednesday, March 21, 2012 7:59:23 PM UTC+11, an...@att.net wrote: >> A reasons why people do not support Ada. >> >> Microsoft has been using multi-threads since Windows 1.0 (DOS GUI addon) >> which was shipped in early 1985 and with OS/2 1.0 a hardware based >> intrinsic multitasking OS in 1987. So, when Microsoft went into the >> schools, people learned that Windows was a multi-threading operating >> system. And now every Microsoft language and OS platforms support parallel. >> >> But, Ada has always been "Concurrent" aka DOS or batch like programming. >> Aka no multi-threads or parallel design. Even in Ada 2012 (not adopted >> yet), the parallel is not fully there only some simple multiple CPU >> design structures. >> >> Now, today, no software customer want to use a language unless that language >> fully support multi-threading and parallel designs. So, until the ARG fully >> embraces a true multi-threads parallel design, Ada will stay a limited usage >> language. M$ Windows 1 to WfW3.11 had no preemption, it was totally cooperative -- the program had to be coded to give up the CPU and let some other task take control. Just one step above co-routines. "Concurrent" covers many capabilities -- even a single core processor using preemptive task switching is considered "concurrent" (The term simplifies to: the tasks each think they have the full processor; they don't know about other tasks that are taking time with them; true concurrent/parallel execution is only something fairly recent -- even the old Cray systems only had parallel arithmetic but didn't run parallel independent programs, every arithmetic system did the same operation in sync, just accessing different data). The Amiga had a multi-priority preemptive OS much before Windows (Windows 95 and Windows NT were the first /preemptive/ systems from M$). But I'm not surprised that /schools/ could be bamboozled by M$ -- understanding the intricacies of preemptive tasking is not something high schools would cognizant of; that's CS major level. In a preemptive system, programs do NOT have to be written to give up the CPU to another. The OS will stop one program and run another based upon clock interrupts. Early Windows wouldn't -- if you did a while (1) continue; that program would eat the entire computer time and no other task would ever get the CPU. Ada was basically the first LANGUAGE that defined multi-tasking IN THE LANGUAGE itself. Before it, one had to use OS specific system calls to create tasks -- if such a call was even available, in contrast to creating processes at the command line level. C/C++ do NOT "embrace" "multi-thread parallel design". They rely on external libraries of system services to create threads. The Ada /runtime/ may use those same system services, but they are hidden from the programmer (unless one is trying to do a minimal runtime for a bare board). The programmer only has to know how Ada defines a task, not how the OS creates them. Actually, unless doing Ada on a bare board, it pretty much HAS to use the same OS features as any other language is using. That is, Ada tasks have to become OS threads/processes. If the task swapping was being done by the Ada runtime without using the OS, than the first task that blocks on, say, IO [which is handled by the OS] would block ALL tasks in the program -- since the OS doesn't know about them it can't give them CPU time. What I find amazing is the concept of "Real-Time Java" -- Wulfraed Dennis Lee Bieber AF6VN wlfraed@ix.netcom.com HTTP://wlfraed.home.netcom.com/