5 |
The LA Fox Developer Newsletter
|
May
1995
|
Out and About
(Con't from page 4)
some of the vendors who have signed on to the “Codebook Compliant/Compatible” methodologies mentioned in the April edition of the
LA Fox Developer.
These companies include Cascade Interactive Designs
(CapCon),
Great Elk (contact management
software), Hentzenwerke
(FoxZen),
Korenthal Asso
ciates
(PhDbase),
MicroMega
(FoxFire!)
Neon Software
(FoxExpress),
Performance Dynamics
(RAIDAR),
and SBT Corporation (accounting software).
To quote from their newsletter:
“There will be two types of Codebook 3.0 Certification. If a product is certified as ‘Codebook Compliant’, it will mean that it utilizes the methodologies, class libraries, standard data dictionary extensions, and general architecture contained in Codebook. A ‘Codebook Compatible’ product will include in its documentation the method for integrating the product into a Codebook application and will also hook
directly into the Codebook extended data dictionary.
Each product will be evaluated and certified by Flash and will bear an apprcpriate logo.”
This may be, as mentioned in last month’s LA Devel
oper, a good turn of events. On the other hand, I can’t help but think about
Tom Rettig’s comment (at
last month’s meeting) on how
it might be too soon
yet to embrace a single methodology. We’ll have to wait and see on this one.
Randy Brown, co-author with Lisa Slater on
FoxPro MAChete,
has joined the Microsoft team as project manager for FoxPro Mac. Bill Anderson, one of our members, knows a little more about him. According to Bill, “Well, he’s been one of the few Mac consultants for as long as I can remember. He’s extremely knowledgeable on FoxPro. I think he’s been a speaker at every DevCon, certainly most of them. He’s one bright guy and will be a real asset to
Microsoft (IMO).”
Also from Bill Anderson, “The latest on dDay
—
Borland, SBT and Neon Software has signed up for booths, with Microsoft soon to follow. Speakers
—
Currently slated are Ken Levy, Paul Heiser, Tom Rettig, Mike Feltman. Borland will speak about
dBase for Windows and Delphi. Microsoft will be there but their plans have not been finalized yet.”
|
Steve Maguire in his book “Writing Solid Code” compared the candy machines at Microsoft to buggy code. He said: “I’d plunk in my quarters, press 4 and then 5 on the selection keypad, and watch in horror as the machine spit out
jalapeno
flavored bubble gum instead of the Grandma’s Peanut Butter Cookie I thought I had asked for. Of course, the machine
was right and I was wrong
-
number 45 was the gum. A quick look at the little sign by the cookie
would always verify my mistake: No. 21, 45 cents.”
How are these vending machines like buggy code? The candy machine
encouraged
mistakes. People would be thinking 45 cents as they entered the selection codes. He suggested using an alphabetic
keypad instead, entirely preventing the “bug.”
Steve said that many of the standard C library functions and functions modeled on them are just as poorly thought out as those candy machines.
“getchar Gets an int, of Course”
“Programmers... can write code that appears to work
correctly even though it’s flawed. Its not until weeks
or months later that the code crashes unexpectedly because, as in the sinking of the Titanic, a precise
series of improbable events takes place and leads to
disaster.”
The problem is that the design of the functions did not lead “programmers to write correct code, [such functions] lead the programmer to ignore the error condition.”
This is not just a C language problem, the same problem exists regardless of the language. I once worked on a large project in Access and after several months we found mysterious bugs in the system. Mysterious, that is, until we found that one progammer was routinely ignoring error return codes from functions. His code assumed that everything worked, so
his program would be ‘walking wounded,’
unaware, for instance, that someone else had a record locked. Worse yet, when the error value he had not checked for was numeric, but his code expected characters, the whole program crashed,
|
Page
5
|
5 |