; ) Be Dope archive *  icon tarot *  qJLG * haiku
interviews *  bookstore *  newsletter

visit mikepop.net for more info about Mike Popovic


"It restores your faith to see an OS that is so friendly and responsive and does so many things right"

Be, Inc. software engineer Scott Barta is largely responsible for NetPositive. Be Dope chats with Scott about browser standards, the Bezilla project and working at Be.

The blurry photo on the right shows Scott in the days of his youth, when he lived in some trees for a short time. His hair is much shorter these days, but you can still sometimes find him perched in a tree on the Be campus.

Be Dope: What is your title at Be and how does it relate to what you actually do there?

Barta:
My business card says "Software Engineer". While accurate, it somehow fails to convey the triumph and angst that accompany the job. The position that I originally applied for said "NetPositive/Internet Applications Engineer", which hits a little closer to the mark. Foolishly, I took the Internet Applications Engineer bit a little too seriously a while ago and put myself in the line of fire for BeMail bugs, which are now assigned to me and summarily buried under a big pile over in a dingy corner of our bug database.

How did you first hear of Be, and what made you decide to work there?

I heard of Be through osmosis back when I followed the Mac trade press more closely. The first demo I saw was around the DR8 days (making me a relative newcomer) when a couple of the Be Demo Gods touched down at Claris, where I was shackled up at the time. Seeing the demo, I felt the excitement and interest common to people seeing the BeOS for the first time. As an engineer, it restores your faith to see an OS that is so friendly and responsive and does so many things right, and it makes you excited about writing software again. And, probably also like a lot of people, after the demo, I went back to my dull existence writing Mac and Windows software.

After a while, I was ready to move on, and I started thinking about who was doing interesting and innovative work in the Bay Area. I didn't want to write Windows software, wasn't bitten by the Java hype, and didn't want to work for another large company. Be sounded good, so I checked out their website and saw the opening for a NetPositive engineer. Working on a web browser was a good fit for me because I was working on Claris Home Page (a WYSIWYG HTML editor) at the time, and I've always been interested in end-user GUI apps that a lot of people use and care about. Here I am.

What is your computer background?

I started programming when I was about ten years old, writing little BASIC programs on a TRS-80. I have since worked my way up through the Apple ][, Mac, Windows, and BeOS, with side trips into other platforms and OS'es along the way. Learning how to program in BASIC on a simple machine is the best way I can think of to start out; I wonder how kids do it today now that computers and languages are so much more complex.

I was an Electrical Engineering major in college, not Computer Science, so I've had virtually no formal training, which seems to me to be a good thing. I may not be able to spout off on different sorting algorithms or data structures, but my background has given me a very pragmatic, results-oriented philosophy, which is a vital survival tactic if you're working on NetPositive.

What do you think of the two most "popular" browsers, Netscape Communicator and Microsoft Internet Explorer? Are there specific behaviors of those browsers that you adopted for NetPositive? Specific behaviors you avoided?

I haven't used Communicator much in recent times, but both on the Mac and Windows, my general impression has been that it's clunky and slow. I suppose I really need to see it with its spiffy new layout engine -- hopefully Netscape will match it up with a fast and responsive UI. Explorer I really like. I use the new beta under Windows at home, and have had a lot of experience with the Mac version as well.

I particularly like the download manager on Explorer Mac and hope to do something like it in the near future. I like the search mechanism on the new Explorer Windows, too. I'm not as impressed with the URL autocompletion features (though autocompletion in HTML form fields is a neat idea), and I think that configuration could be improved upon.

A lot of people say that NetPositive is way faster than Explorer, but I just don't see it. I think that Explorer renders pages quite a bit faster than NetPositive, so I've got some catching up to do. However, it's fair to say that NetPositive is more responsive even while its busy; NetPositive spends less of its time with the window locked up, ignoring user input. This is due to NetPositive's hyperthreaded nature, and of course the threadedness of the BeOS itself.

Some folks have suggested that Be should stop development of NetPositive and focus its engineering resources on the port of the Mozilla code to the BeOS. What do you think of this idea?

This is a really complex question for me to answer. I should probably start by saying that I understand people's frustrations with NetPositive, because too much of the time, it just doesn't work the way it should. Like I said, I use Explorer under Windows at home, and I never find myself angry with it, whereas NetPositive thwarts me on a lot of sites.

While I understand and share the frustrations, it still pains me to hear about how anxiously people are waiting for Bezilla and Opera. I pour every ounce of programming energy I have into making NetPositive better. I don't work on other stuff at Be, and I don't have little side projects that I program at home, unlike a lot of engineers. If I need a break from what I'm doing on NetPositive, I do something else on NetPositive. Tired of fixing bugs? I implement some new features. Tired of writing a lot of code? I fix some bugs. I care passionately about the quality of NetPositive, and would like all BeOS users to use it by choice, even if other browsers were available.

Unfortunately, developing a non-Communicator, non-Explorer browser is an open-ended and nearly impossible task, especially for a one-man development team. The fact is, there are only two meaningful standards in the World-Wide-Web World. They're not HTTP and HTML: rather, they're Communicator and Explorer. Webmasters author their sites to work and look good with those browsers, not to adhere to arbitrary standards. If your page doesn't look right with a site, you don't care if there's some illegal HTML or the site is relying on something that's ambiguous in one of the published specifications -- all you know is that it doesn't work right. Something that doesn't help is that the Web is built on top of a lot of different bulky technologies all held together with bailing wire and duct tape, requiring precise and often undocumented interactions between them all for sites to work right.

Any browser that wants to play well in this space needs to work exactly like those browsers do for every possible site that can be created, which in practice means solving a lot of problems on a case-by-case basis, and which also means that no matter how good you feel about your browser, next week someone's always gonna find something new that doesn't work right with it.

Given this, it seems hard to justify the effort of working on a secondary browser. There are other considerations, though. Bezilla, even if well-executed, will always be a port based on a thick cross- platform abstraction layer which will rob performance and dilute the qualities which make BeOS applications special. What's more, the Mozilla codebase, from what I've heard, is hairy enough to strike terror into the hearts of even the bravest of men, making it hard to fix problems and add BeOS-specific features. NetPositive is built on a codebase which is compartively tiny, and I can take advantage of everything the BeOS gives me: multithreading, the Translation Kit, drag and drop, a BeOS-specific look and feel, optimizations to work as fast as possible with the app_server, a vastly smaller footprint, vastly improved launch time, and much more. Bezilla will always fundamentally be a port, which means that NetPositive will always have a theoretical advantage. As long as I'm working on it, I'll do my best to see that the advantage is far more than theoretical.

This still doesn't answer the question of how I respond to the suggestion that we abandon NetPositive and throw our energies toward Bezilla. I think at the heart of the question is to ask whether NetPositive's advantages in being native outweigh the fact that Bezilla, by virtue of being a reference browser, will probably always render sites more reliably. I think I'll weasel out of the question and say that for now we should wait and see. Until Bezilla is complete, I think that Be should continue to work on NetPositive. One engineer working on NetPositive doesn't cost Be a lot but can bring rapid results for our users. The same resources applied to Bezilla would yield less, and we just can't spare any additional manpower for the project. Don't think that Be is ignoring the Bezilla team, though -- we are helping them out. When Bezilla gets farther along, I think we need to take a hard look at it and see how it compares to NetPositive, and see also how its future compares, and make a decision. I'm of course biased, so I'll probably always lobby to continue NetPositive.

How do you like programming the BeOS?

A lot of people talk about what a dream the BeOS is to program. I think that those folks have latched onto some of the nicer aspects of programming for the BeOS, but their fervor baffles me. I believe the main advantage the BeOS has over MacOS and Windows is that it has an object-oriented API through-and-through, instead of having an object framework slapped on top of a crufty C API. This makes the BeOS API much cleaner and better integrated throughout the system. You also can't argue with the fact that you can get a minimal BeOS application up and running with only a handful of code.

We've got a long way to go, though. Our API's are fairly nice, but we need many more UI widgets and support classes so that developers don't have to reinvent a lot of common wheels. The BeOS API's desparately need better resources, resource editing, and UI layout management, some of which are scheduled for R5.

Of course, there's the situation with development tools. I'm well known at Be for complaining frequently and bitterly about the pitiful tools situation on the BeOS. Things are slowly improving, now that we have a usable if Spartan source-level debugger on Intel, but the situation is still critically weak and suffering from continuing neglect.

BeOS applications are judged to a higher standard than apps on other platforms, we'd like to think. We expect them to be richer, more responsive, and more interactive. This means that it takes more effort to build these applications, which Be should balance by providing better and new kinds of tools. If we don't provide them, though, all we're going to see is a lot of ported applications that have been originally developed and debugged under friendlier skies, and relatively few native applications, which are currently just too hard to write. Having important exsiting apps ported to the BeOS is essential, but we need more, because there's little point in buying a new OS just to run ported Windows or Linux apps. It's the revolutionary new native applications that will fire peoples' imagination and keep us in business.

As someone who must look at a lot of websites in the course of work, do you have any "pet peeves" about them?

Broken HTML never fails to irritate me. Browsers that embrace broken HTML with open arms drive me batty. Probably my favourite example of broken HTML is in sites that use the letter "O" instead of the number zero in HTML color attributes (like <BODY BGCOLOR="#6699oo">) -- and I have seen more than one. I'm constantly making special cases in the code for crazy stuff like this.

Is the web a better or worse place than when you started working on NetPositive? Why?

As far as mainstream Web use goes, things have remained much the same. The browser war between Netscape and Microsoft is down to a simmer now, and is mostly being fought over arcane technologies like XML that are pretty far away from NetPositive's mission of the moment. Use of JavaScript has been slowly increasing, which is bad for people who aren't using the new developmental NetPositive releases, but we'll get JavaScript under control in the coming months.

What's up with the "Nature Cube" ?

The original Nature Cube was something I imposed on my boss back at Claris. The people in our group had a tradition of decorating his cube in different themes, and the Nature Cube was the theme to welcome him back from a six-week sabbatical. I was shooting more for tacky than pleasant, and had not only a lot of potted and hanging plants, fountains, and piped-in birdsong (which are all in Nature Cube 2.0 here at Be), but some fake birds, butterflies, bugs, bird nests and eggs, a bird feeder, and a "curtain" made up of a bunch of plastic ivy. (Michaels, a chain of stores in California catering to people who do crafts and country art, is a great place to get this sort of crap.) The end result, though, ended up being quite pleasant despite all of the stupid stuff, so I decided to re-create the good parts here at Be. It never fails to elicit a reaction from people who see it for the first time, which is part of the point.

What books (work-related and otherwise) do you consider a must-read?

By and large I don't believe in computer books, but I think that "The Design and Evolution of C++" by Bjarne Stroustrup (the creator of C++) makes for very interesting and educational reading, whether you're a fan or critic of C++. It's interesting to note Stroustrup's rationale for a lot of the design decisions made in C++ and compare them to the opposite decisions made in the design of Java.

An interesting book I'm reading now is "For Glorious Cause", by Robert Middlekauff, which is a history of the American Revolution from 1763-1789. For Americans who haven't studied Revolutionary history since grade school, you're really missing out on something, because it's fascinating to find out about history in a depth that you don't get in grade school. You get to see a human face put on people whom simplistic history paints as one-dimensional heroes.

If the BeOS was an animal, what kind would it be?

A peacock.

What are you wearing at work today?

Well, y'know, Friday is nude programming day here at Be, and though today is Thursday, I've always felt that you don't have to wait for a special occasion to go all out.

Who is your favorite muppet, if any, and why?

Beeker, espeically in the episode where Dr. Bunsen Honeydew builds the machine that turns unwanted puppies into kitties and vice versa. It just doesn't get any better than that.

Finish this sentence: "Working at Be kicks ass because __________"

...there are so many interesting, creative, talented, and dedicated people here.

More Interviews:

Mike Clifton
creator of Moho

Scott Barta
NetPositive author

Joe Palmer
the father of the BeBox

Seth Flaxman
CEO of ABiSoft

Scot Hacker
BeOS Bible author

Michael Alderete
Be's Webmaster

Melanie Walker
Be Web Diva

Dominic Giampaolo
Be engineer and creator of the BFS

Douglas Irving Repetto
creator of geektoys


Home | qJLG | Icon Tarot | Story Archive | Interviews | Bookstore | Newsletter | About | Advertise | Contact