Developer Interviews

Benoît Schillings, Software Engineer

Interview by Henry Bortman


HB: You've been with Be almost since the beginning. How did you end up there?
BS: I was just coming back from vacation in Crete and just after that I decided, well, let's go see the Apple Expo-you know, the equivalent of Macworld in Paris. And I'm there and I've got a friend, Martin Schaefer, a Belgian software engineer, telling me, "C'mon man, I'll introduce you to Jean-Louis Gassée."

So I go with him, and Jean-Louis was there in the VIP lounge looking for some wine. He was crawling below a table or something like that-typical Jean-Louis.

HB: They kept the wine under the table?
BS: I don't know. He was looking for the good bottles. I guess he thought that they were hidden somewhere. I chatted a bit with him. I didn't have anything special to say. He had seen a little bit of the Macintosh software I had done over the years but I had never had the chance to talk with him. So I started chatting with him and I told him I was kind of getting bored with the work I was doing on the Mac. I was working for a company named Mainstay. I did Marco Polo, backup programs, a whole bunch of stuff for the Mac over the years. Every year it was basically the same thing but the code got twice as big.

So I told him, you know I'm kind of bored. If you are working on something exciting, call me. And he said, well, you know, why don't you come and see me in California. I said, OK, sure, one plane ticket-why not? So, I came in November of 1990 and at that time he described to me roughly what the idea was. And we chatted a little bit. At the time I didn't get any formal offer to work.

I came back in January. I saw Steve Sakoman and gave him a demo of stuff I had done on the Mac and so on. For the whole week, nobody ever told me if things were going all right. And on the last day, I was at a residence inn in Santa Clara, Jean-Louis was there in the parking lot and he was shuffling from one foot to another. And he says, "So?" And I tell him, "Well, OK." And that I was it. There was no contract negotiation, no nothing. I went back to Europe, finished up my contract, and I came back two months later, in March of '91.

HB: That was taking a big gamble.
BS: Yeah, well you know ... my joke at the time was, I don't want read the story of Be in a book. I think that everybody was kind of charmed by the romantic value of the creation of the Mac and all the history of the Valley. It was clear that Be was one of the very, very last chances to do something like that and you just do not say no to something like that-you just do it.
HB: What was Be like at that point?
BS: We were in a small office near the airport, in the same building as the people doing the Phoenix BIOS. This was on the airport parkway. It was two little offices about the size of this room [about 6 by 10 feet]. In one office was Cory van Arsdale, who was the company lawyer and general manager, and Jean-Louis. And I was in the next office with one of the very early prototypes. Erich Ringwold and Bob Herold were working from home at the time.

So, that was Be. I arrived there, and nobody ever told me what I was supposed to do or anything. I remember vividly that the air conditioning was stuck to the max in that office and nobody knew how to control that. So in spring, I was there with a big coat because it was freezing in that room.

HB: So what did you do?
BS: The first thing I did was a keyboard driver since at the time the machine was a single-CPU 20 MHz Hobbit machine, which had no video, absolutely nothing. The only thing that was there at the time was the ability to take a piece of code and upload it from a PC running DOS into the machine through a serial link. So, the first thing I did was to write a keyboard driver so that they could use the keyboard.

I wrote a crude filesystem, which evolved into my overextended filesystem, which eventually got replaced by Dominic's filesystem. I wrote some basic graphics routines so that they could have the Terminal on the screen and stuff like that. So that was the start. And actually, those things evolved into what I did over the next few years, more specifically, the filesystem and the database; the graphics system, which we now call the App Server; and the programming framework.

The other fun thing is that nobody ever asked me if I knew how to program in C before I arrived at Be. And I had never programmed in C before. I was programming Pascal and Assembly language, which was the norm for Macintosh programmers.

HB: Were you working on all this stuff at once, or did you do them serially?
BS: No, they were going in parallel. The first few years were pretty crazy. Nobody ever told me that I was doing good, so I kept trying to do more, you know?
HB: Was that a management strategy on their part?
BS: I don't know. Jean-Louis told me one day, "You know, maybe you are taking too much. Not everybody should try to be a giant," and I was so pissed at him that for the next two years I just worked like crazy. I was working crazy hours all the time to get the thing working. And so, I did the App Server, which was on the Hobbit machine; I developed the framework, which was the Interface Kit and the Application Kit, and stuff like that; and then the filesystem and database stuff, which at the time were decoupled; and then all the little demo apps, which we were using to show to all the VCs who were passing by the company.

The first few years were ... I burned out quite a bit during that time. You pay a price for that.

HB: How much of the work that you did in those years still survives?
BS: I guess that in an operating system, everything gets rewritten three times. At the framework level, probably what will survive forever is the structure-the original decisions about how things are architected.
HB: Can you explain what a framework is?
BS: Sure, the framework is basically the programming model that you use to program the machine. The biggest decision we made in the framework initially was to make heavy use of multithreading. And there was this challenge, which nobody at the time had tried to do, to make a system which really relies heavily on multithreading at the user-interface level. Probably, the most important decision we made was that every window would be a separate thread of execution. Previously, in every windowing system, there was one thread managing all the windows of an application. In the case of Be, we made the decision, well, there is one thread on the client side, one thread on the server side for every window. And from there we had to develop a programming model which would get that to be fairly easy to use.
HB: What was so hard about doing that?
BS: We were not certain it could be done. You know, there were many unknowns. It was one of those things that sounds like a good idea, but you aren't certain it can really be done. It actually took awhile to fix all the issues of deadlock and synchronization and stuff like that. The problem is that when you make very heavy use of multithreading you end up with a system which in many ways is nondeterministic. You want to decouple as much as possible all the things that take place in the machine so that you do not have any dependencies that could slow things down. That means that things will never execute twice in exactly the same way. And you need to be able to restrict the extent to which those changes in behavior can interact because otherwise, in some cases, you will have a crash or a deadlock or a race condition.
HB: Crashes I'm familiar with. What are deadlocks and race conditions?
BS: Deadlock is ... what would be a good example? It's like people at an intersection, when everybody waits for the other one to go. No one ever goes.

And a race condition is when things which are not explicitly synchronized happen in the wrong order. So normally you've got A happening before B, but sometimes because of the nonsynchronization of the two threads, B will happen before A and that will cause a corruption or an unpredictable behavior. And you need to see exactly what's going on in there. It took a long time to get all that to work right.

But multithreading is also what really gives the BeOS its speed. The thing is-this is one thing that we played with very well with at Be-that speed is mostly a perception thing. It's not really so much about benchmarks. You can have an extremely fast machine, but if you have a single shell execution, you can often have very poor response time. In the case of BeOS, the idea that there was always a thread ready to respond to a user interaction, even when the machine is heavily loaded, gave a very snappy feel to the machine. So, it's interesting, if you were to [measure] some graphics benchmarks on the early machine, it was probably slower than most other machines from a pure graphics performance standpoint. But due to the fact that we were handling things differently than other systems, it gave the impression it was faster. It's like, you can take a car that's not very fast. But if it's very loud and rides very low on the ground, and there's a lot of wind, it gives you the impression of going very fast. There was some of that trickery in the early BeOS. It's often much more important than being really fast, eh?

HB: Does it bother you that a lot of your original work on BeOS has been replaced?
BS: At first, it used to. But I had some personal issues I was dealing with for the past two years and there was just no way I could follow up. It was impossible. I couldn't put my mind on Be or really be very productive. So, I decided to give away the pieces of the operating system I was responsible for. I think it turned out to be a very good decision, because when you work on a project for too long, you start to get tunnel vision. You just do not see how you can dramatically improve what you have done. I think that giving the project to someone else-Pierre and George are so talented, they are really remarkable people-made the App Server and the graphics system that we have today much better than what I would have done if I had kept working on it. It's really improved the thing. And one day it will have to be taken away from them and given away to some other people. And that's really the way it should be done. So, yeah, you see your baby going away, but the concepts are still in place.
HB: You've done a number of Be's demo apps. Which ones did you work on?
BS: The Mandelbrot stuff. The very first Be logo-you know, the tumbling Be logo. And now I've got my 3D mixer, which I keep working on.
HB: What's unique about the mixer?
BS: It gives you the ability to do the layout of audio channels in a visual 3D space. You see a grid floating in space and instruments are represented as transparent parallelepipeds that you can drag into position on that grid. The apparent depth of an object represents the intensity of its sound and its left-to-right position in space represents the left/right balance. I also have a surround-sound version.
HB: So where you position things determines where they appear to be coming from when you listen to them? And you can hear the changes in the audio as you move things around?
BS: Yes.
HB: Are you going to commercialize this?
BS: That's what I want to do. I just gave away my last piece of operating system work to someone else. It took me a couple of years, but I've got nothing left to do with the operating system. I'm kind of sick of it, to be honest. We've got specialists now in every field and I'm a bad specialist. I just do not have the focus to stay specialized on something. I want to write apps and stuff that really makes the product useful for users.

I think that it's very dangerous in a company like Be to start to be fascinated by technology and to become a technology company instead of being a product company. I think we should be a product company, so I want to do products, things that are really useful for the user. That's what we really need right now.

HB: Do you expect Be to publish your applications as its own products?
BS: That's up to the gods above. I'll do the stuff, do them as well as I can and whatever, but make the thing useful. If they give them away, I don't care. If they sell them, I don't care. If they give out the source code, I don't care. I just [do it] so there's stuff that makes people say, "I need BeOS because of that, and that, and that."
HB: Which part of BeOS that you've worked on do you feel the best about?
BS: The App Server and framework. That's the biggest piece of code I ever wrote. That was a lot of code to write. I still think that's what gives a personality to the BeOS. An operating system is-at least, that's what Steve Jobs would say-an operating system is mostly style. It's creating an original style that everybody will copy. The original style of the BeOS was that everything was extremely responsive. You change something in one place, it changes everywhere, no waiting. And I think that the original framework and the original demos were trying to show that as much as possible.
HB: So now you want to write applications that people can actually do something with.
BS: Yes. I think that's the next step we need to do.

Probably I think we should give better examples of how applications should be. We've got some cool demos and the demos ... we've received very cool demos from developers. I think you tend to receive what you put into the thing. So we need to show how applications should behave. I don't think that Be has any good application which we could show that really gives a standard or a style of how an application should work.

HB: Say more about that. What do you think is missing in the applications that exist? What do you think there needs to be?
BS: I think there's a lack of creativity. I think that everybody tries to copy what Windows is doing and that is very scary because ... Be is really trying to be innovative in creating applications with some fairly easy-to-understand, really new UI concept. We're capitalizing on the fact that all machines are fast today. The worst nightmare is to end up with some kind of mix between Linux and Windows, with some application that looks like some bad copy of the original Windows version-that's my worst nightmare.
HB: Your 3D mixer is one example of the direction that you think things need to go in. Is there other stuff you're working on?
BS: There is one I want to do which I think would be really nice, which is the idea that when the user starts his BeOS for the first time and configures his network, he is offered to go into a chat forum related to BeOS. It would not be IRC, just a thing that is internal to Be users, with a really great presentation. It would let you transfer files easily, do a little drawing, and stuff like that.

So, first thing, they would find themselves in a community of users. Be could even do something so that every application could create its own forum. Just three calls to the framework that say "I want to be a forum-aware application." So when you use, say, BeatWare Writer, when you launch it, you have a menu called Forum. If you've got some question, you can go there and see, "Oh, there are five other people online using the application right now. So, if I've got a problem, I can go and ask them." I think there are a lot of things that could be done with the Net which are not being done.

HB: Do you think the Net represents the next step in computing?
BS: Yes. I think it's the first time that people are able to see what computers can do-the general public. I think that before the Net computers were basically glorified typewriters. Now with the Net you can see ... I mean just look at search engines. You've got a search engine like HotBot or Alta Vista. Those things have changed and will keep changing the lives of people. It's just a very different experience when you can search for something. It really gives power to people and it's really a remarkable tool.
HB: You think the search engines are up to snuff?
BS: No. This will change, but hey-it's better than nothing, you know? I think it's better than nothing.
HB: Do you want to work on a search engine, too?
BS: No. Search engines, there are people who are infinitely more qualified than me to do that. Little things, though. Just for fun I did some little apps that let people extract data out of the Net easily. I did one, for instance, which is a little icon and you can take any street address and drop it on the icon and a window opens that shows you a map of the area. Now, nothing tells you that that map comes from the Net-it's totally invisible.

I also did the same thing for people. Just for fun I did a thing where you take the name of a person, you drop it, and it tries to find everything it can on that given person. Like on what Usenet groups that person is posting, what their e-mail address is-it's frightening what you can find.

HB: I was just going to say that.
BS: But that's another question. I think that you can start to integrate the Net with applications in a transparent way. Everybody seems to be fixated on the browsers, Web browsers and making plug-ins for browsers and stuff like that, whereas I think you can do so many other things for the Net.

How about doing something so that people can make cooperative music on the Net? You've got a MIDI score, you put it into a music forum, and you've got a nice user interface so that other people can add tracks to your MIDI track, and change it like a hierarchical project. And that change keeps going and it can get transformed by people all around the world. I think there could be all types of cooperative views on the Net, which do not exist yet other than chat rooms, and chat rooms in general are not very interesting. I think there is very little cooperative work being done on the Net today. I think that's an area where there's a lot to be done.

HB: So, what do you do when you're not writing code?
BS: My hobby's astronomy, I've done that forever. I built a telescope, which was fun. Then, of course, I've got computers controlling the whole thing. I've got a big expensive CCD camera, controlled by the BeOS now. I rewrote the drivers for that, so I've got that in my garden, and the thing is stepper-motor-controlled. So, I've got the telescope just moving during the night.

The thing I'm working on now is a machine that tries to find comets automatically. So, basically it spends the nights scanning the sky, a mosaicking of the whole sky and creates a database of all the sources it finds, compares that to the previous catalog, and detects if something changed. The ultimate goal-I've got DSL at home now, so I've got fast network access-is to get the thing to send me email in the morning here telling me, well, I found those three things. And BeOS is really fun to write those kinds of things in. It's really a very pleasant environment.

HB: Anything else?
BS: I like to go camping in the desert. Either in northern Nevada or towards the Saline Valley. That's near Death Valley. There are all those valleys around Death Valley. Death Valley is not good. If you camp in Death Valley you get ranchers coming up to kick you out right away, so I just go in the valleys in the area. I just go there, put my sleeping bag on the ground, take a book and stay there for two or three days.
HB: What do you like about the desert?
BS: It's quiet. I think that the Bay Area has become incredibly crowded. I can see the change over the last few years. That's oppressing. The Valley I think is a very oppressive place. I think it's becoming worse in many respects. I mean, from gridlock to the Palo Alto attitude.
HB: There are no deserts in Belgium. What is it about the desert that appeals to you?
BS: The first time I saw the desert coming here, that was a shock. In Belgium, I don't think you can hike more than eight miles without finding a highway. The first time you come here, you are driving, you look around you and there's a road, there are no signs, there is just that road, and you do not see a single house as far as you can see. Coming from Europe, that's a shock.

I had my nephew here. My nephew is 10 years old and he came for 10 days in August and I took him camping in the desert, and we were driving north of Reno toward Black Rock where they do Burning Man-of course, this was not Burning Man time, so this was pretty quiet. And we were on that road, which was probably 50 miles long and he started getting very nervous. I asked him, what's going on. He told me, there's nothing-I'm scared. He was really scared just looking at the immensity, not a single light, not a single car. I love it, personally. There's something very cleansing about it. You just go there and when you come back it's easier to enjoy things. I think it's very good to find yourself alone for awhile. I think there's something very healthy about it.

It's amazing that there are still places like that where you can go and you can walk for a whole day and not find anybody. I think there is something reassuring in it. That may be the thing-the fact that you can still be in a place which is not crowded is very reassuring to me. It shows that there are still some genuine places on this earth that basically look the way they were 100 years ago. There are so many catastrophes-overpopulation, pollution, stuff like that-when you find yourself in a place like that, it's like, "Ahh. That still exists." There's something that makes me feel good there.

Readers-Only Access
Scott Barta
Stephen Beaulieu
Scott Holdaway
Benoit Schillings
About BeOS | Online Chapters | Interviews | Updates

Please direct technical questions about this site to webmaster@peachpit.com.

Copyright © 1999 Peachpit Press and the respective authors.