Article View: comp.sys.mac.oop.macapp3
Article #332Re2: Defections from BedRock?
From: Progressive Computing, D Lucky,P...
Date: Sun, 24 Jan 1993 02:53
Date: Sun, 24 Jan 1993 02:53
70 lines
4762 bytes
4762 bytes
"Templates I can live without [macros will do for now] but exceptions would really make my coding life easier." I also feel that built-in exception handling is more important that templates but, as a library developer, I would really like to have both. I can kludge my way around not having these by providing front-end functions for constructors (for exception handling) and macros (for templates). For library code, this creates yet another level of complexity for users of the library that just isn't necessary. There's also an issue of whether front-ends for all constructors in a library should be created. If not, users may get confused about which way to create their objects and will likely spend time chasing down more bugs in their program that should not have been there in the first place. These are probably expensive bugs since they may not be uncovered until the product has actually shipped. If front-ends are provided for a library (and that could be a lot of unnecessary work itself), then how about the constructors for the other libraries that someone may want to use for their program? The case I'm trying to build is that all of this confusion is really not necessary with exception handing built into the compiler. Templates would also be very helpful to library developers that provide collection-type classes. One interface to a particular type of collection class is all that is needed with templates. Users can then instantiate these collection classes using whatever types they want. The alternatives are to get the library developer or the application programmer to either create derived collection classes for each type the application programmer wants the collection to contain or to create a macro to do the same thing. The template option is much simpler and consistent from both the library developer and client points of view. Is there a technical reason why exceptions and templates have not been built into the MPW C++ compiler? I hear the ANSI committee has completed the specifications. I would suspect that AT&T has already built these into a CFront that they have laying around somewhere. What gives? Is Apple going to move to adopt the ARM or ANSI in its C++ compiler? ...climbing higher on soapbox... Software engineering is very, very expensive these days. The types of programs that we create are much more complex than even a few years ago. With more powerful hardware just over the horizon, I see these problems getting worse instead of better. While the current programming tools are better than they used to be, I think we need a fundamental change (egad) in the way we develop software if we want to meet our customers expectations. This means developing more complex software that does what the user wants, is very reliable, and is less expensive that it is today. We can use assemblers and low-level debuggers to create "insanely great" products but the cost is very high. We can use more integrated object-oriented techniques and development environments that contain editors, object-oriented programming tools (i.e., compilers, linkers), and debuggers. Even then, we have problems managing the complexity and reliability without huge budgets, long testing periods, and maintenance releases that contain bug fixes. We need better ways to get from user requirements to finished product reliably and quickly. We need integrated tools that track these requirements and allow us to create solutions that, in turn, generate working programs. The solution part of the system would help us manage the complexities of the program from concept to code. We should be able to deal with the solution at whatever level of abstraction that we want. This would help people to learn existing systems easier. We should have tools at the low-level that help prove that the software is reliable. Does something like this exist anywhere or is anyone working on something that does these things? If not, does it seem worthwhile? Am I off in the weeds? My guess is that a lot of the technology for these things already exist but not in an integrated form. This may not be the forum to discuss these sort of things. If not, where could this discussion be moved? ...climbing down from soapbox... Dave Lucky Progressive Computing, Inc.
Technical Details
Message-ID:
<727844853.5287057@AppleLink.Apple.COM>Path:
arc1-ca.pugleaf.net!sparky!uunet!cs.utexas.edu!sun-barr!olivea!apple!applelink.apple.comShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!cs.utexas.edu!sun-barr!olivea!apple!applelink.apple.com From: D3085@AppleLink.Apple.COM (Progressive Computing, D Lucky,PRT) Newsgroups: comp.sys.mac.oop.macapp3 Subject: Re2: Defections from BedRock? Message-ID: <727844853.5287057@AppleLink.Apple.COM> Date: 24 Jan 93 02:53:00 GMT Sender: daemon@Apple.COM Organization: AppleLink Gateway Lines: 70