[comp.sys.be.programmer] Welcome - read this FAQ first!

Skip to first unread message

Stephen van Egmond

Sep 9, 2003, 6:52:20 AM9/9/03
Archive-name: computer/system/be/programmers
Posting-Frequency: monthly
Last-Modified: December 1, 2000
URL: http://bang.dhs.org/faq/
Maintainer: Stephen van Egmond <svane...@home.com>

West of House
You are standing in an open field west of a white house, with a boarded
front door.

There is a small mailbox here.

Opening the small mailbox reveals a leaflet.


(1.1) Welcome to comp.sys.be.programmer!
This is the Frequently Asked Questions list for the group
comp.sys.be.programmer, a Usenet newsgroup for discussion among BeOS
software developers.

All software referred to in this FAQ can be found at BeBits,
http://www.bebits.com/, unless otherwise noted.

It has been translated into Japanese, available at

Table of contents:
(1.1) Welcome to comp.sys.be.programmer!
(1.2) How to ask for help
(1.3) What's the development environment like?
(1.4) Recommended Books
(1.5) Where is Java?
(1.6) Where are the Visual Basic or Delphi-like development systems?
(1.7) GeekGadgets
(1.8) How to avoid getting tons of linker errors
(1.9) I'm still getting link errors with cin, cout, etc.
(1.10) Disclaimer and copyright/trademark notice

Special thanks to Chris Herborth and Brent Newhall.

Enchanters' Retreat
Belboz is meditating here.

"Hello." Belboz doesn't seem pleased to see you.

Belboz looks at you suspiciously. "Only the rawest apprentice would ask
for help without observing proper netiquette."

(1.2) How to ask for help
If you are having trouble with your operating system as a user, you
should visit http://www.be.com/support/, and you should not bother
comp.sys.be.programmer about it. We're not in the business of free tech

If you having developer troubles, you should be able to demonstrate that
you have read (1) the Be Book, and (2) the Be Developer Library, at

How to post source code: Take your source code aside and strip it down
to the smallest possible case which does not work the way you expect to,
and post that.

If you know that you've found a bug in the BeOS, visit

If you are looking for other developer resources, Be hosts several
mailing lists for developers. Read up at
http://www.be.com/world/mailinglists.html. Tim Vernum has written up a
FAQ for common developer questions on BeDevTalk, and it's at

Belboz looks at you expectantly.

He lights up. "Ah, a newcomer."

(1.3) What's the development environment like?

Long ago, Metrowerks (the makers of the CodeWarrior development system)
were hired by Be to write the Integrated Development Environment (now
known as the BeIDE), and port their compilers to the BeOS for PowerPC.
The compilers included with the BeOS had a limited capacity, and you had
to pay money to get an unlimited environment.

When Be first released the Intel version, the Metrowerks environment was
brought over with it. At the time, Metrowerks' compilers were not
renowned for producing great code on Intel systems. With R4, Be switched
to the EGCS/gcc compiler set.

Here is how things stand today:
* Be owns and continues to improve the BeIDE.
* Metrowerks compilers remain in use for PowerPC.
* The EGCS/gcc compiler set is in use on Intel.
* There is a visual source debugger. It is called bdb. It is still in
a bit of rough shape, it it not yet integrated with the BeIDE, and
it is getting a lot of attention for improvement within Be. gdb has
been ported, but all the ports are a bit rough.
There are some alternative languages, though none are recommended if you
are serious about shipping an application.

For people who want to do scripting-like things, the order of preference
for doing that on the BeOS goes like this:

Belboz looks at you expectantly.

"Don't they sell those at Amazon.com?"

(1.4) Recommended Books
Be maintains a nice list of applicable books, without reviews, on their
web site at http://www.be.com/store/bebookstore.html . Here's some
recommendations, with a bit more annotation:

If you're utterly new to programming, there are two kinds of books you
need to read: those that teach you how to turn ideas into design, and
those that teach you how to turn your designs into C++ code.

Books on design: Design Patterns" by Gamma, Helm, Vlissides, etc.

Learning C++ if you already know some other language: "The Beginner's
Guides to C++" by Y. Yaroshenko, and "C++: How to Learn" by Deitel &

Writing good code: "Code Complete" by Steve McConnell, and "Effective
C++" by Scott Meyers.

New to programming and the BeOS: "Programming the Be Operating System"
by Dan Parks Sydow.

Good at programming some other OS, learning the BeOS: You don't need a
book. Read the Be Book, included with your OS install or available on
Be's web site in HTML form.

Getting even better at programming: "Structure and Interpretation of
Computer Programs" by Sussman and Abelson, and the CS342 course notes
from Waterloo's concurrent-programming course at
http://www.undergrad.math.uwaterloo.ca/~cs342 .

Belboz rolls his eyes.

(1.5) Where is Java?
There are Java compilers available at BeBits that work quite well, and
produce bytecode that runs on any interpreter on any platform.

But there is no Java VM. There was one long ago, made by Metrowerks, but
it is gone now, for many tedious reasons. There is at least one being
developed: a port of the open-source Kaffe project. The Kaffe port works
nicely, but the AWT system is not complete.

Sun has certified the BeIA platform's compliance with the requirements
for PersonalJava.

> S.W.SW.W.W.
Flathead Ocean
Passing alongside the shore now is an old boat, reminiscent of an ancient
Viking ship. Standing on the prow of the ship is an old and crusty sailor,
peering out over the misty ocean.

The seaman looks up and maneuvers the boat toward shore. He cries out:

(1.6) Where are the Visual Basic or Delphi-like development systems?
There are none. Some people are working on them, but none are finished
or even near alpha. Those under development are listed at BeWare.

Many people feel Interface Elements is good enough for now. It will
generate code for you that you must fill out to get functionality.

Another piece of software called BeXL has also been gaining favour

"Please accept this gift. You may find it useful!" He throws something
which falls near you in the sand, then sails off toward the west, singing
a lively, but somewhat uncouth, sailor song. The boat sails silently
through the mist and out of sight.


(1.7) GeekGadgets
GeekGadgets is a huge effort undertaken by Fred Fish (who has since been
hired by Be) to bring the huge Unix-compatible tool set to the BeOS.
This includes things like perl, text tools, nroff, man, and many many

If there is a tool that you have known and loved from the
Unix/Linux/FreeBSD world and it's not already installed in your system,
go to ftp://ftp.geekgadgets.org/. You can download pre-built executables
or source distributions.

Commandment #12593

(1.8) How to avoid getting tons of linker errors
The Short Answer: Use the "BeEverythingApp" project stationery when you
build your project.

The Long Answer: Your C or C++ code can not run on its own. It has to
introduce itself to the operating system, know how to output to a
Terminal, and all kinds of other things. The code to do this is in glue
code and libraries which must be linked to your code.

Glue code is the bare minimum to get your program up off the ground. It
well set up the basics for you, call your main() function, and clean up
when your program exits.

Libraries contain the functionality of the BeOS. They are named
libsomething.so, where something is supposed to be descriptive.
libroot.so has most of the C library. libbe.so has the basics of the
Application Kit. libmedia.so contains the Media Kit. And so on.
Libraries are stored in the BeOS under the /boot/develop/lib/ directory.

It is generally easier to rebuild your project using the right
stationery than to go hunting around on your disk for the necessary
files. You should use either the BeApp or the BeEverythingApp stationery
for applications and command-line tools.

BeApp stationery has glue code, libbe.so and libroot.so. These are the
basics for getting an application off the ground and putting windows up.
You will have to add other libraries as you use other kits.

BeEverythingApp has all the system libraries already included. It might
slow down the link process, but if your system is decent you won't

Commandment #12594

(1.9) I'm still getting link errors with cin, cout, etc.
Add /boot/develop/lib/x86/libstdc++.r4.so to your project. PowerPC users
should use /boot/develop/lib/ppc/libmslcpp_4_0.a.

A seedy-looking individual with a large bag just wandered through the
room. On the way through, he quietly abstracted some valuables from your
possession, mumbling something about:

(1.10) Disclaimer and copyright/trademark notice
This FAQ Copyright 1999 by Stephen van Egmond. Reproduction of this
document and inclusion in any off-Net compilation without permission is
not OK. Ask first.

Do me a favour, and only link to the page at
http://bang.dhs.org/faq/csbp.html; do not copy it onto your web pages,
because it will be out of date very quickly.

All trademarks remain the property of their respective companies.

Someone carrying a large bag is casually leaning against one of the walls
here. He does not speak, but it is clear from his aspect that the bag will
be taken only over his dead body.

A good slash, but it misses the thief by a mile. The thief comes in from
the side, feints, and inserts the blade into your ribs.

It appears that that last blow was too much for you. I'm afraid you are

**** You have died ****

Press any key to continue


Stephen van Egmond
Reader Comments

Hi, just wanted to see if you have the time to edit and update the links
on this page. Thanks for keeping the BeOS 'alive' and programming
information available. There are still some of us out here that use BeOS
exclusively, and love it.

Todd Nathan Dev #4296 Owner of BeBoxen #6 :o)
--Bubba Jones on January 5, 2002

Add a comment

Reply all
Reply to author
0 new messages