Q&A
Life After dBase
Database pioneer sets sail on a new course. An interview with C. Wayne Ratliff, Creator of dBASE II.
C. Wayne Ratliff is a true founder of what today is a multi-billion dollar PC software market. In 1978 Ratliff produced Vulcan, a database written in assembly language that users still talk about with reverence.
Vulcan wasn't Ratliff's first or last database. Earlier, as part of the Viking Flight Team,
Ratliff wrote MFILE, a data-management program used to support the Viking Lander -- the first spacecraft to land on Mars.
In 1980 Ashton-Tate bought Vulcan, renamed it dBASE II, and the rest is history.
We caught up with Ratliff at his California home to discuss the state of software nearly 30 years after Vulcan.
What are you up to now?
I do a lot of sailing and taking care of the boat generates all kinds of other things like machining, welding and programming. I'm doing a project right now with a PIC microprocessor to generate voice for a racing countdown -- to tell you if you're fast or slow heading towards the start line and to announce boat speed verbally as you go along in the race. I'm using the IC2560 chip to hold the voice. I'm just having a lot of fun with these little microprocessors.
|
"There are an awful lot of things in [Microsoft] Access that, while they weren't big inventions, I thought I was the first one to espouse the desirability for them." |
C. Wayne Ratliff, Creator of dBASE II |
You once said a development team should be no bigger than the number of people who can get into a Volkswagen and go get pizza and beer.
The funny thing is I might cut it down now. A development team can be bigger but the core, I think, if anything, should be smaller.
Even in the age of Web 2.0?
You can have a lot of people doing tasks. I think you can have a large team. What's the average-size team now? A hundred? I think that can be done provided that the design core -- the people who are designing it-[is small]: I think one, two, maybe three is the right number. When you get beyond that, that's where you have trouble.
Is there a role today for a single software visionary?
I think there ought to be. A collection of individuals need to be able to take the big risk and try something completely different. If the world buys it then fantastic, but, of course, some are going to fail.
The more group activities you have to design something, it's going to tend toward least common denominatorness, if you know what I mean. On the other hand, what the big teams have is bandwidth. What's going to make exciting things happen in software is a combination of the two. It's going to take individuals who are doing high-risk things and then the big team has to make it happen to some degree. You have to have a lot of invention, the bulk of which fails. Obviously, you can't have a big team behind each one of those.
What do you think of databases today?
I'm pretty much out of touch with anything that's really current. If you mean database access methods, I've used Microsoft Access, and I like Access. I have to tell you the guys that designed Access and Emerald Bay (a client/server database Ratliff wrote in 1988) were either reading the same book or one followed from the other. There are an awful lot of things in Access that, while they weren't big inventions, I thought I was the first one to espouse the desirability for them. I don't want to accuse anybody of anything, but it was striking to me.
FoxPro is sort of alive and well. Microsoft isn't promising anything beyond the next version, but that whole dBASE community is really loyal to the FoxPro product.
For good reason. ... FoxPro is more rigorous in its data approach than dBASE II was. It's -- maybe user-friendly isn't the right word -- it's just friendly. It's easy to do stuff. It's easy to make mistakes, and I think that's what all the rigor is going toward, trying to protect people from themselves. You can just get down and dirty with the data in dBASE and to a slightly lesser degree with FoxPro. If you have to go in and write an access program, and I did a lot of Visual Basic access work three or four years ago, it's another step harder. They just keep getting further and further away and more rigorous. There are things like data hiding and safe typing and object-orientation and all that stuff. It takes more programming effort to get something to happen than it did with dBASE.
I hear you're going back and studying mathematics: What kind of math and what rekindled your interest?
I go to a local college bookstore and buy a lot of textbooks and go through them from cover to cover. My personal self-discipline is I start at page one and do all the odd-numbered exercises because they have the answers. I keep all the stuff in a notebook. Anything less just doesn't work for me. I've done calculus and linear algebra and statistics and dynamics, which is engineering, and analytic geometry, and I'm about to start hitting differential equations really hard. What happened was my mother-in-law bought me a book at a swap meet for 50 cents, and it was "The Magic of Mathematics" or something like that. It was a low-level book and it got me started again. I do math as a backdrop. I'm kind of compulsive about building things, making things, and dBASE was one of those.
What are your thoughts on handling unstructured data and the wealth of unstructured data enterprises are dealing with today?
It seems like we're going to have to finally do the artificial intelligence thing that's been kind of off-and-on for 30 years. There's a wealth of data, and if you don't want to go after it as a human, but with a computer program, the only thing I can see to do is to solve the natural language-processing issue. That's just my thought.
For a while I wanted to do a database that handled small tables. It seems like there's a wealth of data there, too. I use almanacs as a sort of a model. I thought there was an opportunity for something that handles a large number of extremely small databases -- tables really. I don't think that takes AI, but to handle just loose data that just happens to be contained in documents, to handle that automatically, it's going to take some AI or natural language understanding.
Have you followed Microsoft's LINQ project?
No. I just looked it up, but that's the first I've ever heard of it. Once again, it sounds like something that's heading toward strong data typing and rigor in lieu of the friendliness. I think C++ and C# are in the same vein. They're trying to make it so that at programming time the possibility of an error is detected automatically, and it slows everything down, I think.
What do you see in the world of software that captures your imagination?
I sure like Google. I see that Intel is going for the Core 2 duo processor and if they haven't announced the four-processor unit, I bet they will soon. So instead of higher clock speeds we're going to see more processors. Back in the old days they used to toy with that and they knew it was the right way to go, but they could never think of a good application for it.
How can we rekindle the single software visionary? Is that something Microsoft and the other commercial software vendors should try to do?
I think the idea of fellowships might work. People who have some inclination toward invention could be given a cubicle somewhere and some time and be given the opportunity to come up with ideas. I think Microsoft has some sort of a fellowship program, but if I'm not mistaken it's more raw science and not programming. If the companies themselves and the products themselves were made more modular, if word processing, let's say, could be made just a module that anybody could use, then you could have the opportunity for a number of individuals to be creative. They wouldn't need the huge team behind them necessarily to do all the background work.
Do you ever think about coming back to the software business with a new idea and a startup?
If I had the right idea, I'd be interested, but I'm pretty happy now.
What's the best advice you can give to a programmer in his first job?
You can make anything you need. When you're dealing with real-world things, mechanical things, you always need something you don't have. With programming, you can whip it out.