Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!zaphod.mps.ohio-state.edu!sdd.hp.com!think.com!linus!linus!linus!mbunix!eachus From: eachus@largo.mitre.org (Robert I. Eachus) Newsgroups: comp.sys.amiga.advocacy Subject: Re: Language Wars Message-ID: Date: 12 Jun 91 18:05:00 GMT References: <1991May28.173812.4183@colorado.edu> <1258@cbmger.UUCP> <1991May31.181153.584@batcomputer.tn.cornell.edu> <22127@cbmvax.commodore.com> Sender: news@linus.mitre.org (News Service) Organization: The Mitre Corp., Bedford, MA. Lines: 36 In-Reply-To: daveh@cbmvax.commodore.com's message of 3 Jun 91 19:04:36 GMT Nntp-Posting-Host: largo.mitre.org In article <22127@cbmvax.commodore.com> daveh@cbmvax.commodore.com (Dave Haynie) writes: I think it's more correct to say that a truely modular language is necessary when writing large programs. The better the modularization, the easier it gets to write and maintain large programs...But going to a true object oriented language like C++ is an even better alternative when building large systems...The only problem with C++ itself is that, in many cases, it lets you be as sloppy as C does, since most C programs will compile in C++. You have to design in C++ to get any of its advantages. Ada or M2 will force the issue, certainly a boon to the undisciplined. I think that in a way we are really saying the same thing. There are lots of good programmers who can write well structured maintanable code in any high-level language, but working on large projects with more than 10 programmers or so has taught me that there will always be some programmer who breaks abstractions to get his boss off his back, or to get to the ball game. Then two years down the road, the project needs to take a one year slip to fix his "clever" workaround. In Ada it still is possible to do such things, but the lanaguage was intentionally designed so that such things stand out. In fact, I have a filter program which runs thorough Ada source to find them. (Not too hard, the smoking guns are "UNCHECKED_CONVERSION", 'ADDRESS", and "pragma INTERFACE".) There are cases where these are needed--that's why they are in the language--but in a well written program the are only two or three modules which should be allowed to use them. -- Robert I. Eachus with STANDARD_DISCLAIMER; use STANDARD_DISCLAIMER; function MESSAGE (TEXT: in CLEVER_IDEAS) return BETTER_IDEAS is...