[email] [print]  Interview With Andrew Bachmann.

Nov 13, 2003 02:53 UTC, by Chris Simmons, Senior Journalist.
From the spacewalkin department...

The BeOSJournal sat down with Andrew Bachmann for a serious discussion about the past, present, and future of BeOS. Not only were several topics discussed at length about Andrew's programming career, but he shares his views on openBeOS and how he is helping to make it a reality in his own contributions. Also discussed are political viewpoints of various BeOS related projects around the community.

Comments...


TBJ : Thank you for taking some time out, Andrew.
Andrew : You're welcome.

Tell me a little about yourself. Where do you live, did you go to college/university and what got you started in computing in the first place?
I am currently living in San Francisco. I have been here for the past four years. I graduated from Northwestern University with a bachelor's in computer science, and a master's in artificial intelligence.
I first got started in computing when my dad brought home an apple IIe for one summer. We would play with the midi program, and one of my then favorite games - lemonade stand! (and little brickout too)
I took a summer school class in Logo, and from then on, I was hooked. Video games mostly drived my desire to learn, because I figured that someone had to make those video games, and I wanted to be that person. :-)

You programmed in Logo?
Logo was the first language that I learned, and I still think it's an excellent language for teaching someone to program in. After my one-summer's worth of classes in Logo, I continued to self-study basic and 6502 assembler from old Nibble magazines that my jr high school had in copious supply. (lucky me)

What is your favoriate gaming genre? What obstacles prevent it from being established on BeOS?
I would say that I appreciate a number of different genres. The main three might be: RPG, real-time strategy, and FPS.
There are some RPG's for BeOS, but I really lamented when I heard that the Neverwinter Nights project cancelled BeOS support. That was for the lack of a complete hardware OpenGL api.
I know that there are some real-time strategy games on BeOS too, such as freecnc, but for some reason I just haven't been playing too much RTS lately. All of the classic FPS are available on BeOS, although they also have the opengl problem. Also, the newer FPS such as battlefield 1942 are not yet available.

How did you get your current job? Do you enjoy your work? What is your current title at work anyhow? ;)
One day my graduate school advisor at Northwestern, Dr. Ken Forbus, asked me what I wanted to do with my life. I told him that I wanted to work on software for robots exploring other planets, at the NASA Ames Research Center.
This was about the time that the sojourner robot was famously exploring mars. It had on board the Remote Agent software which was developed at NASA ARC. Well, my advisor did happen to know someone who was looking for help at ARC. I flew out and interviewed and a couple months later, was showing up to work there. :-)
I do very much enjoy my work. It's quite interesting. I can't go into details about what I do, except to point you to our websites, which have public information. Here's my former project's website: http://ic.arc.nasa.gov/projects/mba/projects/L2/doc/index.html
I'm not too sure exactly what my title is since we switched companies and I think they flipped the heirarchy. It's either computer scientist 2, or computer scientist 4.

Kinda like the guys credited in films as "Scientist shot in lab, extra #2"? ;=)
Uh, no.. those are actors. ;-)

What is the most important component of programming these days that most new coders overlook?
New coders come in many different flavors, but I think that I will group them into two: school-taught and self-taught.
School-taught coders are exposed to programming through a scholastic itinerary, so the components of programming that they are exposed to depends on the place that they attend and what that itinerary is, and what the teacher's like.
Self-taught coders on the other hand, probably are mostly lacking in the part of programming that doesn't come from sitting in front of a computer figuring out how to DO it. Rather, they are probably lacking in figuring out how to cooperate with other coders to work in on a project together.
This includes asking questions when appropriate, listening when appropriate, responding to questions, and doing all these things with patience and at the right level of communication. Some of these skills also apply to areas outside of computer programming of course, but I also think that programming adds its own flavor to this kind of discourse.

I take it you consider yourself a school-taught programmer?
Actually I don't. I was lucky to take a great class that taught me my first language, but I would basically say that I flew the next 10 years of coding after that (pre-college) on my own.

What was your schooling like, and did that have any impact on your work today?
Since I had already had a decade's worth of experience going into college, my level was a bit different from several of my classmates. I was able to work with some outstanding professors very early on, that included Dr. Ken Forbus and Dr. Chris Riesbeck.
I had a lot of fun learning both scheme and common lisp under their tutelege. C++ was a bit of a disappointment after those advanced languages, but it was also interesting in its own right. (explicit de-allocation! how quaint!)
My experiences with functional, structured, and object-oriented programming have all affected my work in various ways. When I arrived at ARC one of the first things I did was learn Java, on-the-job. Since my work has involved designing computer languages and writing parsers and compilers, several of the languages that I have worked on have had a Java flavor. (see the project website, for example)

When did you enter college? How old were you at the time?
I graduated from high school in 1994, and I was the typical age for college here in the U.S., 18.

Back to programming for a couple more questions... Do you document your code religously?
in my opinion programming comes down to two main tasks: abstraction and naming.
Abstraction is basically like drawing a circle around a piece of functionality. Naming is figuring out what the heck to call the stuff in that circle. People sometimes overweigh the importance of documentation at the expense of proper naming. And I'm not talking about hungarian notation. (ug)
Usually the places where one has to document your code are where the code is doing something that isn't obvious, or where the implementation is incomplete, or it has some unexpected behavior. You could read the above and think that I might not comment my code a lot, but in real programming, the three situations above come up more often than we'd all like. I don't write a comment for every line though. :-)

You don't like hungarian notation? *grin*
Uh, no.

What do you think of the Doxygen Project? Is it helpful to your work or are there improvements to be made yet?
I think doxygen is great. We use doxygen at work. In my Java background I used Javadoc a lot, especially since my IDE filled in a lot of it, so, I am pretty comfortable with doxygen. I haven't run into any deficiencies with it.

Where were you when the famed "focus shift" happened? What was your first reaction to it, and do you still feel that way today?
I think it's fair to say that I wasn't with BeOS when the focus shift happened. My first exposure to the BeOS was a demonstration at Northwestern University when I was still an undergrad. I printed the entire BeBook out on a lab printer and read it cover to cover. Exciting stuff! :-)
However, at that time it was PPC only and I didn't have that kind of hardware. When I found PE for download in 2000, I tried it out immediately. 3 weeks later they were shipping Pro to my door. 1 year later I released the first hybrid divx :-) So you could say that I missed the focus shift.

Have your expectations of BeOS changed in the past few years?
I don't think so. Or at least, not very much. I think that I learned fairly quickly what BeOS is good at and what it is not. Since BeOS (r5) hasn't changed much in that period, I haven't had to adjust my expectations.
There were perhaps a few minor things but I can't recall. I do expect a little more from the OBOS project, hindsight being twenty-twenty. I don't think I can be more specific than "more" though.

What do you like most about BeOS and what do you see is the one major obstacle in recreating it via the OpenBeOS project?
I think hands-down what I like most about BeOS is tracker. There's no obstacle in recreating it since we already have opentracker. Props to Axel and others working on it. :-)

What are you working on these days?
My attention has been shifting somewhat. Generally I work on things that I see as of highest demand. Sometimes that means that I have to take a break from whatever I am coding to fix a bug in my favorite editor, pe. :-)
I have two parts of OBOS that I would like to get back to working on soon, which are the Terminal and the FileType/FileTypes app-on/application.

Do you want to see more projects like PeOnSteroids or was it just a one-off?
The patches in PeOnSteroids were expanded and incorporated into the main tree.

Would you care to let our readers know what the secret project is you have been working on for some time now? How long have you been working on it, and what are some of the major difficulties?
I have been working on beunited's port of the Sun JDK, for the past 15 months or so. I believe that we've surmounted many of the major difficulties already.
One of the first problems we had was finding a suitable bootstrap. The jikes compiler project has been invaluable to us, as has some of the prior work done by the spmc group on the 1.3 port.
Because of the complex nature of the hotspot JVM, we were able to get certain portions working before others. For example, it took a little while to get the interpreted mode working. After that we had to get the JIT compiled mode working as well.
Some of the other difficulties in the past have simply been design decisions. For example: what is the best way to map certain pieces of functionality from BeOS into Java? Typically there is the linux/solaris way to do it, which is compatible with BeOS through the posix support, but may not be the most natural or efficient choice, although using other platforms is often expedient, of course.

Can you explain in summary what a bootstrap is, and why it was difficult building one for BeOS?
Sure, the concept of a bootstrap is "something to get yourself going", as in the not-really-popular-anymore phrase "to pull oneself up by one's own bootstraps". For example, in BeOS there needs to a bootstrap component to get the computer ready and start the kernel. this typically involves a filesystem, sometimes of reduced functionality.
In the Java SDK this is manifest because they use the previous sdk to build the existing sdk. Since we don't have a previous SDK we had to fake it. We substituted jikes for Javac, a C++ implementation for Javah, and a few other substitutions.
We also ported some build code from Java to C++ to make things easier. It wasn't particularly difficult to build the bootstrap, but we did have to make some adjustments as we proceeded in the build, because demands on our bootstrap rose. We spent some time tracking down a bug in jikes, for example, and also working around bugs in jikes, and our Javah, etc.

What unique things from the BeOS point of view make working on Java a chore, or a pleasure?
As I said before I'm a Tracker afficionado. In my development in any language, file manipulation and file system navigation is a critical part. Because of this, I'm also a big fan of TermHire, although with the new Terminal for OBOS the need for it will go away.
So working on/in Java in BeOS is far more enjoyable than working in windows for example, or solaris. This is true of development in general regardless of the project I think, as many developers for BeOS have attested to and will continue to attest to.

Because of BeOS's ability to easily move between GUI usage and the command line?
That's a piece of a larger experience. that functionality also exists in windows for example. The Tracker experience simply can't be boiled down to a paragraph. :-)

How complete is Java on BeOS today? Can it be called via FireBird/Mozilla now, or are there still obstacles even once Java is done, such as plugin architecture issues... ?
First off I never was a big fan of Java on the web, I always saw it as a tool for serious development, not website chatrooms/games. Because we do have mozilla I don't expect that building the plugin will be particularly difficult.
The 1.4.2 JVM is extremely complete right now, we have no outstanding bugs in it. That is to say, no outstanding bugs that we're aware of ;-)
Simply performing a complete build is a rather comprehensive test of the JVM. After a complete build we've generated over 1.5 GB of build files. Don't worry, a lot of that is intermediary build files and debug files. You won't be dumping anything like that on your BeOS box. :-)
The file count after a build is about 20,000 files, perhaps a few more than that due to some recent additions. I have run the mauve test suite on our build and we've completed over 98% of the tests successfully. I haven't done the test suite recently but that number could be pushed up over 99% now. The mauve test suite includes over 1000 individual tests.

What are the plans to release JVM 1.4.2 to the public? How will it get to Joe User, and will there be a smaller target for regular usage, versus a full development package?
I don't work too much on the release schedule. This is something that will be done in cooperation with Sun, when they decide it is appropriate. Most likely joe user will be able to download either a JRE, or a JDK. This is just as it is on other platforms right now. The JRE is simply the runtime environment, without development tools. The JDK includes the full Java suite, including Javac, Javah, rmic, etc.

How much of a difference is there between the two types of packages, in terms of filesize?
I expect that the difference will be similar to the filesize difference on linux/solaris/windows.

Given the pace at which you've been working on this project, do you expect Sun to get this to the public within the next few months? Would end of the year be out of the question, supplying a nice christmas present for a lot of BeOS users?
I have no idea what Sun's internal process is like for releasing software such as this. I expect some lawyers may be involved which tosses it in my too hard to tell category. :-)

Fair enough. We'll try to contact someone From either beunited.org or Sun fairly soon for another update. ;)
You can expect that when the project is made available that as much as it is within our power to do so, every little nook and cranny of the JDK will work the way you expect, from RMI, to CORBA, etc.

Moving on... Can you walk me through your daily routine, say a typical tuesday for you... Are you a regular bloke, or is your lifestyle completely different than what we would expect?
My daily routine varies a bit. You picked tuesday which is a busy day for me.

LOL! Alright.. pick a normal day then.
There are no normal days lol...

What is your weekly routine like?
I have mandarin class on tuesdays and thursdays. Tuesdays I have group meetings at work. Some days I work at home, Some days I go in to work. Some days (usually weekends) I don't work. :-) Many evenings I work on BeOS and I also sing karaoke approximately weekly.

Why Mandarin?
Mandarin is the latest in languages that I have studied. In part I did it because everyone says it's so hard. but it's been my experience that not everyone has actually tried it :-) so I didn't believe them.
I also find the writing system fascinating. Grammatically speaking, mandarin is the simplest language I have studied, and the pronunciation is not too difficult for a native english speaker. There are only a handful of phonemes that we don't already have.

Do you like art, cultural aspects in life, and obviously-not-technically-minded areas of recreation?
Programming (done properly) is an art. :-)
Although it's one that doesn't receive much appreciation in its abstract form which is somewhat lamentable since you can imagine being a composer of music in a world where only a handful of people can hear the music.
Aside from that I also enjoy singing and dance, which are more traditional art forms. Also I enjoy reading and watching movies, etc., although I don't have too much time for that.

Lets say I hand you a time travel pill, able to instantly transport you to any period of time. What era would you visit, and why?
Ok, do I have to specify a concrete date or can I specify a date of an event that may not be known?

Any date you wish.
Past or future?

The choice is yours. It can be a date, or event. Past or future is fine.
Hmm that's too much power to answer on such short notice. :-)

What is your opinion of the Zeta project? Do you think YellowTab has achieved any modicum of success in finally shipping Zeta RC1 to the public?
I haven't used Zeta, and I don't use exp/dano, so I can't comment on Zeta from my personal experience. I have read reviews and seen screenshots, these are freely available on the web for others to make their own judgements. Based on those second hand opinions I stick to my prior assessment: "too much featurism, not enough usefulism".
I have heard that some people have received RC1 but no one I know personally. YT's credibility will undoubtedly increase while copies are received. I have also heard that YT is taking steps to address the problem of cruft in Zeta, and refocusing towards robustness, usability. this is a good move for YT.

In 25 words or less, what is your opinion of the RIAA and MPAA? ;)
I think that the music/movie industry has really missed the boat in the internet. However, with the opening of the apple store and napster sales, it seems that they may be swimming after it. When they grasp the idea that people do want to pay a reasonable price for music, and that they really want that music right now! then their situation will improve far more dramatically than by filing more lawsuits.

That wasn't under 25 words.. Sorry.. thanks for playing! Bzzt.. ;-) I'm only kidding... Do you think BeTunes will do well in the BeOS Community in the "potential killer app" department... assuming of course it is meant to work just like its counterpart, iTunes.?
lol ... Missed your 25 words thing, you sneak. :-) I don't think that a music playing application is going to be a killer app. I have not used BeTunes nor iTunes, so I am quite uninformed to speak though. perhaps it will revolutionize the way I use my computer, but I doubt it. :-)

Truth or Dare : Would you rather tell the world about some childhood melodrama, or risk jumping out of a plane with a questionable parachute? ;)
I don't have time for jumping out of perfectly good planes.. so I suppose the former.

Did you vote for "Dubya" Bush?
No, :-)

Tell me more about whats coming with Java on BeOS... Will it be as fast, or faster than its counterpart in windows?
I have not done any kind of cross-platform performance testing and I am not aware of anyone else in our project doing that. I can tell you that the optimized version is considerably faster than the debug version. :-) Also, a large body of code is shared between all the different platforms, in the hotspot VM. (as it should be) To the extent that there is shared code, one would expect performance to be similar.
The other platforms have been tuned for quite a while and we do benefit from some of that as we borrow from other platforms. I'll say that there's no reason to believe that it will be particularly slower. We do have a few tricks up our sleeve for tuning performance later. :-)

How helpful has Sun been with the project?
I think sun has been about as helpful as one might expect. They have asked us to reach some milestones before they contribute some serious man-hours to the project. We have completed a number of milestones already, imho, and I look forward to having someone at sun work with us full time.

What milestones are left to achieve?
We have one major milestone left. I'm not going to be any more specific than that at this point though. I'm notoriously bad at time estimates, but I do firmly believe we will complete that milestone before the year is out.
Depending on circumstances, it could be sooner that that.

Would it be safe to say that this milestone is one that once completed, could pave the way for seeing a "download" link on Sun's website?
More likely it would pave the way for someone at sun to start playing a considerably larger role in the project. This falls into the more administrative category of question though, which the project lead is more appropriate to answer.

That sounds exciting nonetheless... Will Java be something that you use personally in BeOS. You mentioned earlier that you don't particularly care for websites that use Java. What would Java do for you elsewhere?
I do personally use Java in BeOS already. I have used it in my workplace and it works well for that purpose. Java is a great language for doing the type of complex modeling that I do at work. I'm sure I will find a number of Java apps that I will want to be using as well.

Are there any features from 1.5 that have made there way to the current 1.4.2 Java project or are being considered?
No, this is still not public. :-) Our work on 1.5 is not something we are prepared to discuss in public.

Will Java on BeOS work on the PPC version of BeOS/OpenBeOS?
We have someone on our team who is working on a PPC version of Java for BeOS. I expect that the intel version will be available sooner.

Lets sidestep a little to other areas of development you are involved in. There's the new Terminal you're working on, and what else?
let's see. I recently patched atrus on beshare. :-) I have a variety of projects in various states of development to go through my develop directory here at home: antlr, ant, atrus, bprefs panel (for glass elevator), BeShare, cortex, work stuff, ffmpeg, freenet, hotJava, iconv, jikes, ogg, media kit (for obos), nplay, obos nvidia (testing, not developing), pe, xiph, xvid...
And others of course. Someday soon I'll get to porting that new wget too ;-)

Do you share Michael Phipps' view on where OpenBeOS is at these days, namely just over the halfway mark?
I don't believe I have the comprehensive understanding of the progress of OBOS that michael does. I know some things are done, and I use them. I also use some things that work really well but probably have some bugs in them still. (at least R5 quality though) My system is stocked with open components, including opentracker, mdr, the translation kit, obos stylededit, obos nvidia driver, obos ac97 driver, the beunited pe editor.
I also use other portions of the obos media kit, and this is my production machine. My test machine uses more components from OBOS, although it feels pretty much the same. That is to say, just as functional and stable.
So, I defer on your exact question but readers can make their own assessment from my personal observations.

What areas of unpublished development in OpenBeOS are you keeping your eye on for when it matures enough to use it?
Mostly the things that I keep my eye on are the parts I am working on since if I want it, then I work on that part. One major exception is probably the networking kit, where they are doing some fine outstanding work without my help at all. it's probably better that way. ;-)

TBJ : Alright... I'd like to thank you for spending so much time answering quite a few questions. I know you have a busy schedule, and not only are committed to developing various projects, but you have a pretty nice job to boot. ;) Thank you very much for your time and candid answers. It was truly a pleasure, Andrew.

Andrew : Thanks Chris. I'd just like to add that I think that things are looking up for the BeOS family. Some of us have been through the rather questionable and tense time during Palm's acquisition of Be, Inc's IP. With that firmly in the past people have started to move forward towards the future. A lot of people have come together to contribute to a future for BeOS. I encourage those who can to contribute skills, time, or money to those organizations involved in furthering BeOS. In my case, the organizations that I contribute most to are beunited and the OpenBeOS project, since I have derived the most value personally from them. Wherever you derive your value from, try to give back something, and we can all move forward together.

Comments...

Andrew Bachmann is a computer scientist at NASA who enjoys spending time programming for BeOS. He currently works at NASA Ames Research Center, and can be reached via email at: shatty at myrealbox.com.

Andrew has a nice wiki page on BeBits, where he helps maintain several pages of the growing wiki. He also contributes to the Glass Elevator Project, which is focused on future ideas for OpenBeOS.

The enclosed picture of Andrew Bachmann, as shown in a space suit, is a doctored image to the extent that he is not actually in a space suit, nor does it imply that he is an actual astronaut. The image was composited as a service of Space Center Houston.

The Java, Java Virtual Machine (JVM), and Java Development Kit (JDK), as mentioned in this interview, are trademarks of Sun, as stipulated on the trademark page here: http://www.sun.com/policies/trademarks/. The BeOSJournal and hosted content which makes mention of these trademarks defers all rights, obligations and inquiries to Sun in this matter.

Linked URLs

  • Interview With Andrew Bachmann. : http://haikunews.org/622
  • Chris Simmons : mailto:cs.haiku@gmail.com
  • Comments... : http://forum.beosjournal.org/viewtopic.php?p=5285
  • Northwestern University : http://www.northwestern.edu
  • http://ic.arc.nasa.gov/projects/mba/projects/L2/doc/index.html : http://ic.arc.nasa.gov/projects/mba/projects/L2/doc/index.html
  • Doxygen Project : http://www.doxygen.org
  • OBOS project : http://www.openBeOS.net
  • PeOnSteroids : http://www.bebits.com/app/3165
  • main tree : http://code.beunited.org/cgi-bin/cvsweb.cgi/?cvsroot=pe
  • beunited's : http://www.beunited.org
  • Sun : http://java.sun.com/j2se/
  • YellowTab : http;//www.yellowtab.com
  • finally shipping : http://www.yellowtab.com/news/article.php?id=70
  • halfway mark : http://news.BeOSjournal.org/index.php?id=90&page=2
  • Comments... : http://forum.beosjournal.org/viewtopic.php?p=5285
  • NASA : http://www.nasa.gov
  • NASA Ames Research Center : http://www.arc.nasa.gov/
  • wiki page : http://wiki.bebits.com/page/AndrewBachmann
  • BeBits : http://www.bebits.com
  • Glass Elevator Project : http://wiki.bebits.com/page/GlassElevator
  • Space Center Houston : http://www.spacecenter.org/
  • Sun : http://www.sun.com
  • http://www.sun.com/policies/trademarks/ : http://www.sun.com/policies/trademarks/
  • Sun : http://www.sun.com/contact/

Printed from Haiku News
http://haikunews.org/print/622