This page contains all you need to get started in Haiku software development.
(author note: 7/may/2010, in construction)
C++ Tools
Compilers
Current Haiku releases contains both the gcc2 and gcc4 compilers. You can switch between the two by using the setgcc command.
~> setgcc -h Usage: /bin/setgcc [ <arch> ] [ <gcc> ] Sets the current gcc version, respectively prints it, if no arguments are given. <arch> - The architecture to set. Supported values: "x86". <gcc> - The major gcc version to set. Supported values: "gcc2", "gcc4".
(todo:rdef resources)
Editors
Haiku releases come with a programming editor named Pe. The command line editor nano is included as well. If you don't like it, you will probably find a port of your favorite editor like vim, emacs etc... which are available from HaikuPorts or software distribution sites. There are also several IDE projects in development by 3rd parties, such as Paladin.
Build Tools
The simplest way to get started is to use the makefile-engine "script" to build your program.
There is also a jamefile-engine, but it is not production-quality yet. Its status is mentioned on Ticket #5360.
API
The most accurate API documentation is the legacy BeBook. Although some new API's appeared with Haiku (or are in development), everything in the BeBook is still valid. A project to create a new API reference is still in its early stages, if you're interested please check out the Haiku Book
Another very practical resource is the source itself, fortunately there exist a tool to search the sources online, please visit the OpenGrok based Source Search
You can also browse the sources and changelogs using the Source Browser from dev.haiku-os.org
New API's
Some new C++ classes and protocols have been developed over time that were not part of the BeOS R5 API. Some are pretty new and experimental, others are well established and strongly recommended for use right now in your projects. Please visit the New API's page for more detail.System Bugs
While developing your software you might have stumbled over a Haiku bug. Haiku is using the Trac system for bug tracking and patch submission. Please visit http://dev.haiku-os.org
Help
For any question you might have, don't hesitate to ask on the 3rd party developer mailing list haiku-3rdparty-dev. You might also find some answers on the Haiku development mailing list haiku-development. Although this list should be used for development of Haiku itself, it is still a good resource as some 3rd party software development questions have been answered there in the past.
Tips/Tutorials
(author note: 7/may/2010, in construction, todo: new articles, old newletters)Software Developer FAQ
(author note: 7/may/2010, in construction)Coding Style
Use the style you like, but if you think your software might someday be included into the haiku codebase, it is a good idea to start coding with the same coding style. Please have a look at the Haiku Coding Guidelines.
Porting
If you'd like to port existing software to Haiku, please visit the HaikuPorts website where all porting efforts are coordinated. There's also a handy list of prebuilt binaries on the HaikuPorts download page
Other Languages
Programming for Haiku isn't limited to C++. Although other languages are currently limited to standard posix functionality (see _language bindings_), several ports exits and are maintained already. The R1/alpha2 release has Perl and Python installed by default.
For other languages please follow the porting efforts on HaikuPorts
An official Java port project exists but is still lacking developers, please visit the _project page_
Feel free to follow the Technical discussion related to the Haiku Port of OpenJDK or browse the source repository of the Haiku Port of OpenJDK.
(author note: 7/may/2010, todo: update links)More Resources
Several places exist to help you host your project sources or distribute your software. (Those are not maintained by the Haiku project)
Source HostingOsDrawer.net hosting service dedicated to open source projects for Haiku. See their list of external projects too.
Software DistributionHaikuware, software for Haiku.
BeBits, the old BeOS software site.