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 X-Google-Thread: 103376,93a8020cc980d113 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news4.google.com!proxad.net!proxad.net!newsfeed.arcor.de!newsspool1.arcor-online.net!news.arcor.de.POSTED!not-for-mail From: "Dmitry A. Kazakov" Subject: Re: What is wrong with Ada? Newsgroups: comp.lang.ada User-Agent: 40tude_Dialog/2.0.15.1 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Reply-To: mailbox@dmitry-kazakov.de Organization: cbb software GmbH References: <1176150704.130880.248080@l77g2000hsb.googlegroups.com> <461B52A6.20102@obry.net> <42tWh.11820$YL5.9869@newssvr29.news.prodigy.net> Date: Sat, 21 Apr 2007 21:53:59 +0200 Message-ID: <4154m07w8547.w6599n4zv086.dlg@40tude.net> NNTP-Posting-Date: 21 Apr 2007 21:52:46 CEST NNTP-Posting-Host: eab6d00d.newsspool1.arcor-online.net X-Trace: DXC=9V1ec7cN9`[mG86`U=_nC_ic==]BZ:af^4Fo<]lROoRQFl8W>\BH3YRjB;^`NDi2fQDNcfSJ;bb[UIRnRBaCd On Sat, 21 Apr 2007 18:50:40 GMT, adaworks@sbcglobal.net wrote: > "Dmitry A. Kazakov" wrote in message > news:krrspgzz88g4$.15lzsnhxml4j.dlg@40tude.net... >> >> It is because SW engineering is not engineering. And that is because CS is >> not much science. It rather sways between applied mathematics and "stamp >> collecting." [...] > Engineering is the largely about achieving predictable results and avoiding > failure. It requires that we leverage knowledge from science, mathematics, > and previous engineering experience. It also requires that we are able to > reason about and reconcile the trade-offs between conflicting constraints: > physical world constraints, logical constraints, economic constraints, etc. > > In the 1970's and later in the 1980's Kenneth Kolence published his works > on "software physics." This work, while good in many ways, also helps us > to understand the limitations of software from the perspective of natural > forces. Natural forces are inherent in most engineering disciplines. > > Kolence's work also opens the door to understanding with regard to what > we need in the way of a physics of software, if such a physics is ever to make > sense. Physics is about relationships in behavior between different things. > We have the same issues in software. But there are none of the inherent > constraints that the natural world imposes. There are two layers in that. One is the physics of the computing substrate (the machine and the languages of) another is the "physics" of the groups of programmers using it. We have much more freedom in software developing than in other disciplines because we can change the first. > As software engineers, we need to define, create, and impose our own > constraints. That is part of the engineering responsibility for a software > engineer. At the component level, we have Design by Contract (Bertrand > Meyer), and other attempts at doing this kind of thing. We are a long > way off from achieving the level of capability we eventually will require. Yes, but I think this not special to engineering. It is rather a property of art. In art where the substrate is a subject of permanent changes like in software developing, a truly great art can arise only when the artists impose some constraints on themselves which take form of a style, an aesthetic movement. These constraints are artificial, while in engineering the constraints are objective and imposed by the physics and economics. It is a long way before us, to the point where things like DbC would become a physical constraint. This time will definitely come as the complexity will grow. That will be the day SW will become engineering. [...] > Finally, the shortcomings of current engineering practice simply mean that we > need to work harder to develop improved approaches to engineeering software > solutions in the future. Sorry for spoiling the party (:-)), but unfortunately this is not a subject of attitude. There exist scientific and economical reasons which prevent us from that. As for scientific reasons, it is obvious that we cannot engineer large and complex systems, we don't know how to, even in Ada. Costs, schedules, quality, maintenance, everything becomes quite unpredictable too quickly. What is more disturbing than this, is that there is no economical understanding of this problem. It seems that poor software sells better, in fact, much better. The bad news is that this will not change until average complexity will reach certain level, to make most of the projects unmanageable. Some major disasters will happen forcing the government and courts to intervene. Not before. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de