Sender: crough45 AT amc DOT de Message-Id: <97Jun2.112009gmt+0100.16649@internet01.amc.de> Date: Mon, 2 Jun 1997 10:23:57 +0100 From: Chris Croughton Mime-Version: 1.0 To: fwec AT juno DOT com Cc: djgpp AT delorie DOT com Subject: Re: Quake vs. Demos Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Precedence: bulk Mark T Logan wrote: > Can you tell me where to get sliced bananas? You need to ask in the correct newsgroup. Try alt.bananas.sliced. >>> You see, when a team of twenty people start to work on a massive >>> program, a procedure oriented language simply ***will not work***. >> >>Oh dear. I guess I'd better resign from all those C projects I've >>been on, then. Can I have your real name so I can quote you as a >>reason to abandon the projects? > >You probably could have gotten my name from the mail header, but if >you can't, I'm Mark Logan. For some reason it seemed to be missed off when I replied. > Maybe I should have been more specific. Just because > there's a bunch of people on your team doesn't mean you > can't use a procedure oriented language. I was a bit > hasty on that one. Indeed. But you did say 'twenty' - I've worked on projects with many more than that, and some using languages even less suited to OOP than C (ever seen CORAL-66? You don't want to...). > But software can eventually reach a level of complexity > where you traditional procedure oriented techniques start > to show serious flaws. Certainly. Which is why modular programming became popular when the average program reached that complexity. > Of course, if you are writing a program that is meant to > model a procedure, such as a 3d engine, then procedure > oriented is your best choice no matter what the size. > When it comes to modeling object behavior, like weather > simulators, object oriented design becomes essential. Not essential, just easier sometimes. But using OO methods where not appropriate causes even more problems, just as using data abstraction on simpler programs does. Have a look at some of the classes MS and Borland come up with in their libraries, they go through all sorts of convolutions to do a simple function because the paradigm is wrong. That's why I describe it as a 'fad' - lots of people just jump on the term as the solution to everything. Just like in the 60's it was computers which were going to be the solution to all the world's problems. OOP is here to stay, and will always be useful for a certain class of problem, just as procedural, modular and data abstraction will always be for the problems they were intended to solve. For a description and comparison of the various systems, have a look at Stroustrup's 2nd edition C++ book, he goes through all four systems near the beginning. Incidentally, most proponents of OOP forget* that there's anything between monolithic blocks of procedures and total object orientation. In fact, modular programming solves a lot of the problems, and data abstraction many of the rest. I do use C++ by preference now, even though seldom do I need to go beyond data abstraction (non-trivial types and operator overloading). The language is certainly useful, I never meant to imply otherwise. * I'm being charitable. Possibly some of them deliberately confuse the issue. Me, paranoid? Chris