munck@COMMUNITY-CHEST.MITRE.ORG (Bob Munck) (02/15/90)
We've all run into "FORTRAN/Ada" or "JOVIAL/Ada" in which FORTRAN or JOVIAL programmers forced to use Ada continue to write their "native language" but using the Ada equivalent and syntax. It's usually worth the derision we give it. HOWEVER, I've run into a project of significant importance and cost in which the grunt programmers simply cannot, for reasons of contracting, schedule, and cost, be taught Ada the way we like to do it: teaching software engineering principles and incidentally using Ada. We're stuck with C programmers and no option if the development schedule is to be met. The system is one that will undergo significant updating during its entire lifetime, maybe changing 25% of the code every year for several decades AFTER INITIAL DELIVERY. It occurred to me that there might be possible to get Ada from the initial development by having them use a C/Ada dialect. Perhaps we could give them a handbook or pop-up HELP system in their editor that gives the Ada equivalent for the various C constructs that they might use. Also, there could be Ada code skeletons, packages and generics, and coding guidelines. I know, some things that are done in C can't be done easily or at all in Ada; I hypothesize that most of those are things that we don't want them to do anyway. The situation is such that it would probably be possible to hire one or two Real Ada Gurus to set things up, write the pre-packaged stuff, and help the C programmers express themselves in simple Ada throughout the project. Does this ring a bell with anyone out there? Are there any C to Ada comparisons, Ada Introductions for C Programmers, or similar material? I've never programmed in C; any opinions on my idea from those of you who have done both C and Ada? I'll let you know how it works out sometime in 2013. -- Bob Munck, MITRE McLean
jnixon@andrew.ATL.GE.COM (John F Nixon) (02/19/90)
munck@COMMUNITY-CHEST.MITRE.ORG (Bob Munck) writes: >We've all run into "FORTRAN/Ada" or "JOVIAL/Ada" in which FORTRAN or >JOVIAL programmers forced to use Ada continue to write their "native >language" but using the Ada equivalent and syntax. It's usually >worth the derision we give it. >HOWEVER, I've run into a project of significant importance and cost in >which the grunt programmers simply cannot, for reasons of contracting, >schedule, and cost, be taught Ada the way we like to do it: teaching >software engineering principles and incidentally using Ada. Well, I'm glad to know that there are things "of significant importance" which aren't worth doing well. *sigh* If this is your honest evaluation of the prospects for the system, I suggest you consider the alternative of simply not doing it. There are plenty of bad systems out there now; with this type of a start, I'm sure you will just add to the total. However, if you expect the best out of people, you just might get it. Maybe the problem isn't "grunt programmers", but "grunt ---- jnixon@atl.ge.com ...steinmetz!atl.decnet!jnxion
rsd@sei.cmu.edu (Richard S D'Ippolito) (02/20/90)
In article <18340.635014153@chance> munck@mwunix.mitre.org writes: > >We've all run into "FORTRAN/Ada" or "JOVIAL/Ada" in which FORTRAN or >JOVIAL programmers forced to use Ada continue to write their "native >language" but using the Ada equivalent and syntax. It's usually >worth the derision we give it. > >HOWEVER, I've run into a project of significant importance and cost in >which the grunt programmers simply cannot, for reasons of contracting, >schedule, and cost, be taught Ada the way we like to do it: teaching >software engineering principles and incidentally using Ada. We're stuck >with C programmers and no option if the development schedule is to be >met. The system is one that will undergo significant updating during >its entire lifetime, maybe changing 25% of the code every year for >several decades AFTER INITIAL DELIVERY. Forget the languages -- plug in any two of your choice. I can't conceive that under these circumstances that there will be a good design, that is, one allowing an economic change of 25% of it every year. The likelihood of engineering a good product under such circumstances as you describe seems quite remote, if not entirely ludicrous. No SPO with his head on should have ever contracted for such a thing, and no contractor in an ethical mind should have ever accepted! However, I'm willing (and hopeful, as this seems like a waste of taxpayer money) to be convinced that I'm the one who is crazy. Is there something you haven't told us? Rich -- Hitting baseballs and writing software are two professions where you can become a millionare with a 75% performance failure rate. rsd@sei.cmu.edu ------------------------------------------------------------------------
kassover@jupiter.crd.ge.com (David Kassover) (02/20/90)
Hmm. Die-hard C programmers will have to lose the tendency to write one-line wonders and functions with side effects. Other than that there *should be* no problem, assuming you are dealing with people who have a professional attitude toward their craft, as opposed to egotists. There is a third option that bears looking into: Write the thing in C and then run the whole mess through an ada translator. When the translated stuff is verified, throw away the C. There have been several requests in this newsgroup for such translators, so I might as well post my stock E-mail answer: Software Rework, Inc. specializes in this area (that of (re-)vitalizing software systems by translating them into new languages and/or environments, particularly when the target is Ada. Contact info: J. David McGonagle Software Rework, Inc. 1223 Peoples Avenue Troy, NY 12180 Sorry, I have no telephone number available. And please mention me when you contact them. [If such a direct commercial message is too crass, I apologize. Let me know and I will restrict such to E-mail. But be forewarned, for reasons I do not care to understand, many styles of return address are unreachable from here. Thanks again]
clement@opus.cs.mcgill.ca (Clement Pellerin) (02/20/90)
In article <18340.635014153@chance> munck@mwunix.mitre.org writes: >The situation is such that it would probably be possible to hire one or >two Real Ada Gurus to set things up, write the pre-packaged stuff, and >help the C programmers express themselves in simple Ada throughout the project. > >Are there any C to Ada comparisons? I'd be surprised if you could discipline a C programmer in such a short amount of time. As for references, check out the book: Comparing and Assessing Programming Languages: Ada, C and Pascal. Feuer and Gehani editors, Prentice-Hall, 271p. 1984. It's a collection of papers. -- news <clement Clement Pellerin, McGill University, Montreal, Canada clement@opus.cs.mcgill.ca
firth@sei.cmu.edu (Robert Firth) (02/20/90)
In article <1892@opus.cs.mcgill.ca> clement@opus.UUCP (Clement Pellerin) writes: >I'd be surprised if you could discipline a C programmer in such a short >amount of time. That might depend on the form of the discipline. Scene: Lady Lovelace's Conversation and Discipline Parlour. Red drapes, red candles in numerous gold candelabra. Massive white and gold wood panelling, over which hang numerous pre-Raphaelite paintings of greek youths clad only in beauty and sunlight. Sitting on a high stool, wearing black tights, spiked garter belt, and python, and wielding a long whip, is Ada. Enter a C hacker, cringing. Hacker: Hello. I'm the chairperson of the C user group. Ada cracks her whip. Her pet marmoset climbs the drapes and perches on the pelmet, chittering. Ada: You slime! you scuzzball! You are already is serious trouble! You need discipline!! MY kind of discipline! Item one: you said "hello". That is a request for rendezvous with a parallel task. You must WAIT for me to accept your hello, respond, and decouple. You cannot just go right on to the next statement. Ten lashes. Item two: you said "I'm". That is a contraction. Contractions are BAD, WRONG, UGLY and NOT ALLOWED. Ten lashes. Iten three: you said "chairperson". THERE IS NO SUCH THING AS A CHAIRPERSON! You are either a chairperson(M) or a chairperson(F). You cannot omit the discriminant constraint when you declare yourself a chairperson, because we cannot allocate storage without it. Fifteen lashes, and you must clean out the marmoset cage for a week. Item four: you said "user group". SYNTAX ERROR! You must say "users' group", since it is ILLEGAL to qualify one noun with another. Ten more lashes. Item five: you said "group". How big a group? Is it a group range 0..100, a group range 0..1000, or what? Unless you tell me the maximum range of the group, how do you expect me to determine the group base type? How can you tell when the group has grown too large for its implementation constraints? For making a claim that cannot be maintained through the life cycle, TWENTY lashes! Now, have you been a bad person(M)? Hacker: Yes, my lady. Ada: A VERY bad person(M)? Hacker: Yes, my lady. Ada: And do you want to be punished? Hacker: Yes, my lady. Ada: With what delay? Hacker: Without delay - (Ada cracks her whip again, warningly) - I mean, with delay 0.0, if it please your ladyship. Ada: (removing python) Let the punishment begin! [The above does not represent the views of the author, his stuffed animals, or anyone else. I hope]
kassover@jupiter.crd.ge.com (David Kassover) (02/20/90)
With respect to Mistress Ada: I am *amused*. But I did have to check which newsgroupt I was reading. I use Ada for two predominant reasons: 1. The project I am working on (the one I am paid to work on) has it in the requirements document. 2. Ada protects me from lot's of time consuming, embarrassing mistakes of the sort that the C people seem to waste most of their productive time finding (let alone correcting) #2 is very important to the professional who is producing software to be used by others. I may or may not mind being protected from myself, but the users must be protected from me.