Porting FoxBASE to the Mac - An Interview
|
An Interview with David Fulton, Amy Fulton, William Ferguson, and Eric Christensen of Fox Software by Michael Kei Stewart.
[Editor's note: "The following interview was conducted in April, 1988, and published in the Sept/Oct 1988 edition of Programmer’s Update. It is reprinted here in abridged form with the kind permission of SDC Publications, publishers of Programmer's Update. The publishers can be reach at Software Developer’s Company, 5 Pond Park Road, Hingham, MA 02043. The interview is quite revealing regarding the Fox Software team’s view of the graphical, event-driven style of software found on the Macintosh, under the OS/2 Presentation Manager, and now under Windows 3. It also gives an interesting glimpse of the personalities behind Fox-base+ for Mac and FoxPro".]
Programmer’s Update’s Preface to the Original Article: "This interview, with the core development team involved in the FoxBASE+/Mac port, is interesting for several reasons. First, it offers insights for those considering a very complex platform jump; second it reveals an interesting strategy for moving to OS/2; and third it demonstrates the general theme that development goals can be supported by intermediate,highly profitable projects — which may turn out to rival the original goal".
Michael: How did you arrive at the decision to port FoxBASE+ to the Mac?
Dave Fulton: We had some discussions with Microsoft early last year, and in the course of those discussion we learned a little bit about the state of the documentation and the stability of the internal specification for Microsoft Windows. Our original thought had been to do a windowing version of FoxBASE+, but we determined that the Windows environment was still relatively immature and didn’t have the programming tools yet.
We decided that, as a preliminary sketch for the Windows version, we’d do the Mac version. We thought that, because the Mac had good documentation and quite mature programming tools, it might be the shortest route to a Windows version. We assumed that 80 percent of Mac code would port directly into the Windows environment. So we entered into the Mac project with the thought that it would probably be a kind of a throwaway, and we didn’t really view it as having much commercial impact.
Michael: So you didn’t do market research In depth before deciding to go to the Mac?
Dave Fulton: No it was purely a technical decision.
Michael: At what point did you realize that you probably had a winner on your hands?
Dave Fulton: At Comdex last November,1987, when we saw the really tremendous excitement on the part of the DOS developers seeing what could be done on the Mac, and a lot of excitement on the part of Apple developers at the prospect of having a real database system on the Mac.
Michael: Did Apple assist you?
Dave Fulton: We worked with at least two or three of the Apple evangelists along the way, and that was a very different experience for us. We hadn’t realized that technology could be a secular religion.
Michael: What sort of help were you able to get from them? What was that experience like?
Dave Fulton: Simply, we got feedback thatwhat we were doing wasn’t Macish enough and it wasn’t in fact. I think basically they espouse the virtues of the Mac interface, and they were providing inputs that they didn’t like a programming language lying underneath things, and so on. I would say that their encouragement was more along the lines of encouraging us to get religion, or at least their particular religion.
Michael: Have you gotten it?
Dave Fulton: I think so. We are the four original developers (We’ve since added several people to the team.) I think a lot of us went into this project with the idea that the Mac was just a grown up version of the 128K toy that they sold a few years ago. We didn’t realize, first of all, the beauty of the graphic interface, and don’t think we realized that the Mac is probably the most powerful machine available right now. I guess personally got religion when was thinking about buying one of those hotrod 20-Mhz compact portables to use at home. It occurred to me that I didn’t personally care to own another DOS machine.
Michael: What’s your perception of the Mac marketplace now? How muchdevelopment is being done on the Mac?
Dave Fulton: I think the Mac market is one that is changing as you look at it right now. A lot ofpeople are developing Mac products there’s a lot of activity on networking Macs with DOS machines. Where Hughes Aircraft used to buy 10 percent Macs and 90 percent DOS machines, rumor has it that the last 5,000 machines they’ve ordered have been half and half. I think what’s changing the situation is the fact that the Mac II is a perfectly good modified data processing machine.
You take an 8Mb Mac Il with a 300Mb disk drive on it, and you’ll probably have the most powerful desktop computer obtainable right now. We see a resurgence of interest in the corporate community. Macs offer today the graphical interface in a mature form that IBM is promising someday with Presentation Manager.
Michael: Does the 68000 offer you a sig-nificant advantage over the 8086 or 80286?
Dave Fulton: It doesn’t offer any speed advantage, but what it does offer is linear address space. That makes a huge, huge difference. It eliminates so much of the klutziness, really, of the existing DOS applications. On the DOS side it’s not going to get to that point until you’re running in the 80386 mode.
Eric Christensen: One of the strengths of FoxBASE has always been its ability to buffer large amounts of databases and indexes in memory. Now, with the large address space of the 68000, we can do more of that than everbefore. It can just haul things into memory and that’s it. It runs very, very quickly from that point and that’s something that’s just not possible under DOS. The major challenge we face in porting this new technology back to DOS is making it fit in 640K. That’s a huge problem. I think it’s a major performance difficulty for dBASE IV: it’s not really a 640K program.
Michael: How practical is the Mac as a programming platform?
Dave Fulton: We are working on our next product, which will be operable ont he Mac, DOS, and OS/2, both in the character mode and under Presentation Manager, and we are doing the bulk of our development on Macs.
Michael: What is it about the Mac that suits it to your application and vice versa?
Dave Fulton: I think they are well suited to each other. Let me give you a couple of examples. First of all, a graphical image of the work areas, the databases, and the relations that you establish between databases is very useful in interpreting at a glance what your setup is. Under DOS FoxBASE+ you can only see that in tabular form or in terms of the program you just executed. That’s not very informative.
Another obvious area where the Mac shines is in a screen painting capacity. Our screen painter is a Mac-Draw style implementation, object oriented, where you pick up fields and drag them around with the mouse, and select groups of fields, ungroup them, change font, pattern, et cetera. In the layout of screens, forms, reports, labels -- that kind of thing the Mac can do a better job because of the graphical interface. I think there’s a little more to it also. I think that the dBASE language, because it’s a very mature and full featured language whatever its other virtues or defects is quite regular. That makes it harmonious with the regularity and consistency of the Mac interface more so than some of the Mac databases that have been previously developed.
Michael: Were you unable to implement any features of FoxBASE on the Mac, and are there features on the Mac version that simply didn’t exist In the PC version?
Dave Fulton: Eric had the DOS version of FoxBASE essentially intact on the Mac within three weeks. The rest of the nine months was spent outfitting it with the Mac interface, which was an experience for all of us. The language is identical, although there are many extensions. For example, user screens can take advantage of interactive devices like popups, radio buttons, check boxes, and memo fields which can be edited in scrollable rectangular regions on screen, so there are many extensions. Obviously the inclusion of a picture data type is another example.
Michael: Do you think that the Mac version is, either from a developer’s or an end user’s point of view, better than the DOS version?
Dave Fulton: No question. Adam Green got FoxBASE+ Mac in a very early alpha copy, and since then he’s been doing all his dBbase programming on the Mac and porting it back to DOS. The advantage is that, for example, you can have up to twenty program editing windows open simultaneously. You can cut and paste between programs. You can pull down a menu option, execute a program, and when an error occurs it throws up an editing window with the program in it ready to be modified. Also, the debugging environment is so much better on the Mac. I think it’s far better than the DOS product. We view it as the pilot product; all of our future products should look very much like this one.
Michael: How straightforward a process was it for you to work with the Mac Toolbox?
Eric Christensen: Well, it wasn’t especially difficult; it was just a lot of code. A lot of the work fell in the category of having to maintain several separate data structures which all mimicked each other, and you had to make sure they were all constantly in line so that the display would be consistent and integral. But it wasn’t really a bigdeal.
Dave Fulton: The fact is that for most programmers it would have been a three year project. Eric took about three weeks. There’s no magic here. Just talent.
Amy Fulton: With regard to the view window, coming up with a design was probably easier than getting it implemented. I think implementing a view window and all the panels in it became easier after the first item was done. In other words, once you were familiar with all the tools and had learned how to use them, the rest of it fell into place. It was like learning an entirely different computer language. Even though you’re actually writing in C, there’s so much new information in commands and calls that it’s a whole new language.
William Ferguson: There was a mental adjustment of almost literally turning your mind inside out. Where normally in programming you think of the program driving the user, in the Mac interface the user manipulating things drives a program. The conceptual gap that you have to bridge is very large; that’s the big step that you have to take before you can actually create something Mac-like.
Eric Christensen: The process is enticing, yet frustrating.
Dave Fulton: You’ve probably seen the inside Macintosh books. There are five volumes now, and if you add to that the technical notes there’s probably two or three thousand pages of documentation. The problem with the Toolbox is not that it’s particularly profound at any point, although some of the graphic routines are pretty magical, but that it’s very big. To be able to do even simple things you have to know a lot from each of those five volumes, so the problem is that there’s no way to get in a little bit at a time. It’s like being thrown into them iddle of the ocean.
Michael: So if you’ve ever memorized War and Peace you probably won’t have any problem.
Dave Fulton: I think that’s not a bad comment. I would say that doing this Mac product was for me the most difficult intellectual exercise since I was in graduate school. I think everyone here would agree. I should add that along the way we were fortunate enough to pick up a ringer, a fellow named Marty Sedlukwho happened to be a Mac zealot. He was very useful; first, because he was very familiar with the Toolbox, and second, because he would argue with us about whether things were or weren’t Mac-like, and that was of great assistance, too. Believe me, if you haven’t contacted the Mac zealots, you haven’t lived. It’s literally a secular religion, and they are deadly serious. They’ve forgotten it’s a computer program somewhere along the line.
Michael: Aside from the difficulties involved in learning how to use the Toolbox effectively, did you encounter other frustrations during the port process that were tied to the design of the Mac?
Dave Fulton: Not to the design of the Mac hardware, but the architecture of the Mac system. We started with the idea that we’d sort of "Mac-ize" FoxBASE a little bit, but not turn our application inside out. Let me explain what I mean by that. As Bill hinted, the Mac requires you to be event-driven; that is, everything responds to external events, which is the exact reverse of the way you normally program on the DOS side. These events, moreover, happen somewhat asynchronously, so the architecture of a Mac application typically is centered around a single event-processing loop, and the entire system is driven by events that are picked, which is more or less the inverse of what you’re accustomed to in the DOS environment.
We started off with the idea we’d do a minimum of that, and, bit by bit, kicking and screaming, with great pain, we were forced, item by item, to turn our product inside out. And once it’s inverted it’s never going back. In fact, the Mac product source would be the mother source for all of our future products. So we will be emulating the event-driven environment even in a character driven DOS. For one thing, that particular configuration of a program is far more amenable to take advantage of multi-threading in OS/2,for instance. So you respond to asynchronous external events and it’s in that formal set-up that you do that. I would say that was central problem for us, being forced to take a very large application and, bit by bit, turn in inside out to make it into a true Mac-type application.
A Mac-type application is the same as a Presentattion Manager-type application. Writing of the original FoxBASE+ took us about seven months, so it took us longer to make it into a Mac product than it took us to write it in the first place. It’s not an effort to be undertaken trivially, and we understand now that we were a little bit arrogant in thinking that we could just go galloping in to make it work. It’s clear to me how making Mac products can swallow up the entire resources of companies for years. Even to say that it was a nine month project is a little bit of an understatement, because we’re still working on some of the pieces.
Michael: So what about OS/2 now? Is your original strategy the same?
Dave Fulton: We had a very early beta test copy of OS/2 before it was called OS/2. We knew quite a lot about what the design was; as I mentioned,we’ve been having detailed discussions with Microsoft since the beginning of last year. We realize that we have to have a product for that. With OS/2 you have to distinguish relatively sharply between the character mode and the graphic mode. What’s the implication for you? Well, the structure of the Presentation Manager under OS/2 is such that the Presentation Manger version of FoxBASE+ will look very, very much like the Mac product.
I suspect the process will be largely subtractive. OS/2 is actually a far easier environment to design for than DOS in general. It does allow you very large programs running in native mode. The only real downside is that the loading of segment registers is a horribly painful and expensive process on the current OS/2, and the segment architecture is a major limitation. That’s not going to be removed until they come up with a native 80386 version that runs, so you can run all small-model programs again. Multi-threading in OS/2, on the other hand, can really help a database system. If it made economic sense, we’d just have OS/2 and Mac products, plus maybe some Unix and Xenix products down the road. But that’s losing track of where them oney comes from.
Probably our major challenge for the next few months is figuring out how to run acceptably under DOS, because the kind of rigid memory utilization patterns that traditional DOS products have is just not good enough. I have heard it said that dBASE IV, for example, takes 20 to 30 seconds to process even the simplest of SQL commands. I have to believe that the reason is because they’re unloading most of dBASE IV and loading in an SQL engine, processing the SQL command, and then putting it all back again. I suspect that that’s the major performance bottleneck they have right now.
Michael: What’s the future for DOS? Do you think it will disappear?
Dave Fulton: Well, it’s a consummation devoutly to be wished, but it’s not likely.I take it, by the way, that there is no doubt in your minds that OS/2 is a success story.
William Ferguson: Primarily because it has the three letters "IBM" in front of it,regardless of its technical merits, which it does have. Five years from now it’ll be a great operating system.
There will certainly be new factors,however. For example: in the character based environment, we don’t worry about using different type faces and sizes on the screen. In the graphical environment, they are expected in a polished work. So just how do you code the @ SAYs for an input screen in a multiple-font environment where one line may require more vertical space than another? The same problem exists for reports.
Even though multiple fonts are generally possible on any given printer, we PC developers tend toward the prosaic in the design of our reports. After all, you often don’t know what kind of printer will be on the other end of that parallel cable, and it’s an awful lot of trouble, and not much fun, to write the code to do special effects on a bunch of different printers. Since most of our end users don’t expect anything fancy, either, we tend to stay pretty generic (Courier 12-point on the LaserJet!) as the graphical user interface comes to the PC, and as Windows and OS/2 gradually succeed in their goal of insulating developers from hardware specifics, the possibilities and expectations will change in our world. FoxBASE+ for Mac provides a pretty good glimpse into our IBM-compatible future!
Home TOC
If you have any information that can help us to compile this history, please, send us a message. Thanks!