The software development process.

He's one to talk !

Graham

Reply to
Eeyore
Loading thread data ...

Ah, well, I won't try to defend C++. It's broken. There are some good idea in OO, but C++ is a broken implementation. I agree with most, possibly all, of your comments.

We've talked about this before, so I'll simply repeat my position: good design is language (and language feature)-independent. A somewhat restricted toolkit (aka "discipline") actually helps comprehension. And comprehensibility is, or should be, the aim.

Heh. I happen to admire the chap hugely.

FWIW: my particular game is small-to-large volume embedded products which

*must* be bugfree, *must* be maintainable, and *must* be on time. I've studied all sorts of methodologies, and all sorts of languages, in my quest for robust and timely software. I've developed a set of tools and methodologies which work for me, and which - rarely - I see echoed in the more clueful companies I've worked with, which is nice. This quest - to formalise the process that results in high-quality code - is a bit of a passion of mine (as you may have noticed from previous postings ;)).

Some of my key mantras include:

- break a complex system down into a hierarchy of trivially simple things - define the interfaces between them carefully - avoid all interactions (use those interfaces, and don't work around them) - no globals (see above re interfaces) - try to keep things synchronous, or deal with asynchronous events synchronously - factorise: i.e. state things as simply as possible, and avoid duplicate code - debug for typos, not for failure to plan

There's more, but that's the essence of it. As I've said, the use of a GOTO per se is no big deal - it's the bigger picture that matters. I haven't used a GOTO to break a closed structure in 25 years or so now. There are *always* cleaner solutions, which render the problem more malleable and more maintainable. If you saw my C code, you'd be able to read it. It's kinda close to structured English. And yes, you *would* know how you arrived at any point in the program.

With apologies to the c.a.e. folks who've heard me pound this soapbox before... (which is why I've been avoiding this thread ;)).

Steve

formatting link

Reply to
Steve at fivetrees

Even Microsoft got rid of them sometime in the late '80s :-)

I actually kinda missed them for awhile... it makes it a lot harder to have an interactive/interpreted environment (like the old BASICs were) when it's no longer trivial to use "list 100-200" or whatever and then enter "150 print "hello!" " ...

I remember learning the hard way back on an Apple II about how only the first two characters of a variable name were significant. "print teevee$" gives the same result as "print teletubbies$"-- it killed some of my first attempts to use meaningful vairable names rather than just a$, b$, etc... @#$@#% (this restriction was lifted in later/fancier BASICs, of course)

Reply to
Joel Kolstad

Here he is in one of his (I hope) crabbier moods...

formatting link

I'd love to see some of *his* code.

John

Reply to
John Larkin

John Larkin wrote: [programming languages, GOTO considered harmful]

For C++, probably, but that's mainly because it's horrible. I seem to recall the author of C++ once saying he never expects anybody to understand all of it (and I suspect that includes him!). Anyway, part of the idea of OO languages is that it doesn't matter how you got there, because it's all neatly encapsulated. You can only get 'there' through one of the well defined interfaces, so you needn't look beyond the few files that define the class, because there are no bizarre interactions, no unexpected entry-points and no curious side-effects from other parts of the code. In theory anyway. Sometimes it even works something like that.

Tim

Reply to
Tim Auton
[snip]
[snip]

Sounds like my approach to analog circuit design.

Of course I get criticized for simplistic designs (Bloggs in particular)... no matter that they always work.

...Jim Thompson

--
|  James E.Thompson, P.E.                           |    mens     |
|  Analog Innovations, Inc.                         |     et      |
|  Analog/Mixed-Signal ASIC\'s and Discrete Systems  |    manus    |
|  Phoenix, Arizona            Voice:(480)460-2350  |             |
|  E-mail Address at Website     Fax:(480)460-2142  |  Brass Rat  |
|       http://www.analog-innovations.com           |    1962     |
             
I love to cook with wine.      Sometimes I even put it in the food.
Reply to
Jim Thompson

In message , dated Mon, 11 Sep 2006, Steve at fivetrees writes

When I first read that I thought it was an instruction!

--
OOO - Own Opinions Only. Try www.jmwa.demon.co.uk and www.isce.org.uk
There are benefits from being irrational - just ask the square root of 2.
John Woodgate, J M Woodgate and Associates, Rayleigh, Essex UK
Reply to
John Woodgate

Think how useful it would be with a good debugger! Just set a breakpoint on the GTSCH instruction, then single-step.

Why don't processors have this instruction?

--

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com

Posting from Google?  See http://cfaj.freeshell.org/google/

"Applied Control Theory for Embedded Systems" came out in April.
See details at http://www.wescottdesign.com/actfes/actfes.html
Reply to
Tim Wescott

What was that Western Digital machine that executed Pascal directly? It may have been the only CPU ever made without a jump instruction.

John

Reply to
John Larkin

Pascal has a "goto" statement.

You aren't thinking of the Burroughs B5500, which ran Algol 60, are you? That's a machine I wish I had known more about. It struck me as being 20 years ahead of its time.

Reply to
mc

Ah. Western Digital Pascal MicroEngine:

formatting link

Its native instruction set was UCSD p-code. I don't know if that means there was no jump instruction.

Reply to
mc

"Jim Thompson" wrote in message news: snipped-for-privacy@4ax.com...

My point exactly. I learned hardware engineering first, and I often think I gained a significant advantage in so doing.

I really really hate debugging, whether in hardware or software. Hardware people, for instance, learned how to avoid races long ago (synchronous design, in order to reduce the important variables down to a handful - i.e. clock rate and setup/hold times). They also learned how to make schematics readable (well, some of them did ;)). Etc. Engineering is engineering, and appropriate methodologies and a big dose of discipline will keep you out of trouble.

I tend to take the view that software practioneers too often see these as "constraints", and re-invent the wheel... by throwing things together and then spending large amounts of time finding out why it doesn't work, and finally releasing something that just about hangs together, except on the

3rd Thursday of every other month... Not sure why that should be. I suspect it's because it's considered more freeform, more arty... which is kinda weird.

Steve

formatting link

Reply to
Steve at fivetrees

Yes, although that's rather damning with faint praise.

That sounds much better at least.

Robert

Reply to
Robert Adsett

I'm not so sure. If a program contained begin, start and launch which one would be the program beginning?

And there's the synonym flinch which seems appropriate for some environments :)

I don't think there is a single obvious answer here. main is really no worse than the other choices and is used in several different languages as are other possibilities.

Actually that's one of my complaints about Visual Basic (VB6 at least), it's impossible to tell from the source code what the starting point is. That's one of several important pieces of information not in the source but rather in a non-human readable project file.

Robert

Reply to
Robert Adsett

Hello David,

There is also competition in SW. Not with operating systems though, at least not from a practical point of view. Linux doesn't run some stuff that I need to run. WRT to office, CAD and other stuff I am happily using non-Microsoft products. Because they are IMHO better.

--
Regards, Joerg

http://www.analogconsultants.com
Reply to
Joerg

It does? I'm shocked, shocked.

I had a friend working on a PhD in computer science at UCLA. On the final exam, he used a GOTO (this was in C) where it fit perfectly, and it cost him a letter grade.

John

Reply to
John Larkin

... snip ...

It didn't. It executed the 'ideal Pascal machine' instruction set, i.e. P-code. One of the instructions was 'jump if negative'. Another was 'unconditional jump'.

--
 Some informative links:
   news:news.announce.newusers
   http://www.geocities.com/nnqweb/
   http://www.catb.org/~esr/faqs/smart-questions.html
   http://www.caliburn.nl/topposting.html
   http://www.netmeister.org/news/learn2quote.html
Reply to
CBFalconer

[....]

#define DRAT BombOut( #define BOGUS #define ARGUMENT "The argument was too bogus to use");

DRAT BOGUS ARGUMENT

--
--
kensmith@rahul.net   forging knowledge
Reply to
Ken Smith

Taking computer "science" classes is the same as taking social studies... if you don't parrot the instructor you can lose more than just one grade.

I've already told of my "Surely Shirley" episode, where I got "F" in Pascal for using diagramming instead of outlining.

I think I'm going to buy PowerBasic.

Silvaco wants $250/day to lease their UTMOST (device modeling) software.

For that kind of money I'll just write my own iterative equation solver ;-)

...Jim Thompson

--
|  James E.Thompson, P.E.                           |    mens     |
|  Analog Innovations, Inc.                         |     et      |
|  Analog/Mixed-Signal ASIC\'s and Discrete Systems  |    manus    |
|  Phoenix, Arizona            Voice:(480)460-2350  |             |
|  E-mail Address at Website     Fax:(480)460-2142  |  Brass Rat  |
|       http://www.analog-innovations.com           |    1962     |
             
I love to cook with wine.      Sometimes I even put it in the food.
Reply to
Jim Thompson

I once read a program that contained MENU2, MENUTWO, MENUTOO, and (probably by mistake) MNEU2.

Reply to
mc

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.