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: border2.nntp.dca3.giganews.com!backlog4.nntp.dca3.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!feeder.erje.net!eu.feeder.erje.net!newsfeed.datemas.de!rt.uk.eu.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: a new language, designed for safety ! Date: Mon, 23 Jun 2014 19:04:23 +0200 Organization: cbb software GmbH Message-ID: References: <3bf7907b-2265-4314-a693-74792df531d1@googlegroups.com> <8SKpv.25283$CO1.5252@fx15.iad> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: qHNcUCBwwd01dPSBp/L1cg.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 X-Original-Bytes: 2311 Xref: number.nntp.dca.giganews.com comp.lang.ada:187201 Date: 2014-06-23T19:04:23+02:00 List-Id: On Mon, 23 Jun 2014 10:17:47 -0400, Peter Chapin wrote: > On 2014-06-22 20:51, Shark8 wrote: > >> IIRC, Lisp's Error-handling can ensure that types are consistent, even >> though the language itself is dynamically typed. > > It's quite normal for dynamic languages to do type checking, they just > do it at runtime (dynamically). That's practically the definition of > "dynamic language" to my mind. It partly accounts for the flexibility of > such languages as well as their sometimes sluggish performance. and bugs, because this is not type checking. It is checking for a subtype constraint. A type in such a language corresponds to Ada's subtype. The check for an operation to exist corresponds to Ada's constraint check or tag check as in an operation with two controlled arguments. Just like in Ada, if the failure of the check means a bug, then it is a bug, because you are at run-time and you didn't anticipate it. BOOM! No dynamic can ever prevent a bug. It is just too late. What a dynamic check can is to reduce the damage of a bug. E.g. to blow up the rocket before it landed on the developer's head. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de