<para>Das &arts;-Projekt benötigt einerseite Hilfe von Entwicklern, um existierende Multimedia-Anwendungen für &arts; anzupassen, neue Anwendungen zu schreiben und die Möglichkeiten von &arts; zu erweitern. Andererseits gibt es auch viele Aufgaben, die von Anderen übernommen werden können. Es werden Tester benötigt, die Fehlermeldungen liefern, Übersetzer, die die Anwendungstexte und die Dokumentation in andere Sprachen übersetzen, Graphiker, die Bitmaps (besonders für die <application>artsbuilder</application>-Module) entwerfen, Musiker, die Beispiele für &arts; erzeugen, und Autoren, die die Dokumentation schreiben und korrigieren. </para>
<para>Viele Diskussionen zur Entwicklung von &arts; finden in einer von zwei Mailinglisten statt. Hier werden neue Fähigkeiten und Umsetzungsideen diskutiert, hierhin kann man sich bei Problemen wenden. </para>
<para>Die &kde;-Multimedia-Mailingliste ist für allgemeine Multimediathemen sowohl &arts; als auch andere Multimediaprogramme wie &noatun; und &aktion; betreffend. Sie können sich auf der Internetseite <ulink url="http://www.kde.org/mailinglists.html">http://www.kde.org/mailingslists.html</ulink> oder durch eine E-Mail mit dem Betreff (subject) <userinput>subscribe <replaceable>Ihre-E-Mail-Adresse</replaceable></userinput> an <email>kde-multimedia-request@kde.org</email> anmelden. Die Liste wird unter <ulink url="http://lists.kde.org">http://lists.kde.org</ulink> archiviert. </para>
<para>In der &arts;-Mailingliste geht es um &arts;-spezifische Themen einschließlich der Nutzung von &arts; außerhalb von &kde;. Zur Anmeldung senden Sie eine E-Mail mit dem Inhalt <userinput>subscribe <replaceable>Ihre-E-Mail-Adresse</replaceable></userinput> an <email>arts-request@space.twc.de</email>. Die Liste wird unter <ulink url="http://space.twc.de/~stefan/arts-archive"> http://space.twc.de/~stefan/arts-archive</ulink> archiviert. </para>
<para>For getting a consistent reading through all the sources, it is important to keep the coding style the same, all over the &arts; source. Please, even if you just write a module, try to write/format your source accordingly, as it will make it easier for different people to maintain the source tree, and easier to copy pieces of from one source to another. </para>
<para>When there are accessing functions, the standard should be the &MCOP; way, that is, when having an long member <function>foo</function>, which shouldn't be visible directly, you create: </para>
<para>functions to get and set the value. In that case, the real value of <function>foo</function> should be stored in <returnvalue>_foo</returnvalue>. </para>
<para>All classes should be wordwise capitalized, that means <classname>ModuleView</classname>, <classname>SynthModule</classname>. All classes that belong to the libraries should use the &arts; namespace, like <classname>Arts::Soundserver</classname>. </para>
<para>The implementations of &MCOP; classes should get called <classname>Class_impl</classname>, such as <classname>SoundServer_impl</classname>. </para>
<para>Local variables are always uncapitalized, and may have names like <varname>i</varname>, <varname>p</varname>, <varname>x</varname>, &etc; where appropriate. </para>
<para>Normalerweise müssen in Ausdrücken keine Leerzeichen verwendet werden. Man kann sie allerdings zwischen Operatoren und ihren Operanden setzen. Falls man allerdings ein Leerzeichen direkt vor einen Operator (wie z.B. +) setzt, muss man auch nach dem Operator ein Leerzeichen setzen. Die einzige Ausnahme von dieser Regel bilden listenartige Ausdrücke (mit ,), bei denen man nur hinter dem "," ein Leerzeichen setzen darf. Man kann es aber auch weglassen. </para>
<para>Die folgenden Beispiele demonstrieren die sinnvolle Verwendung von Leerzeichen: </para>
<para>Die folgenden Beispiele demonstrieren, wie Leerzeichen <emphasis>nicht</emphasis> verwendet werden dürfen. Bei Funktionsaufrufen, nach "if", "for", "switch" und so weiter dürfen keine Leerzeichen stehen. </para>
<para>Source files should have no capitalization in the name. They should have the name of the class when they implement a single class. Their extension is <literal role="extension">.cc</literal> if they refer to &Qt;/&GUI; independent code, and <literal role="extension">.cpp</literal> if they refer to &Qt;/&GUI; dependant code. Implementation files for interfaces should be called <filename><replaceable>foo</replaceable>_impl</filename>, if Foo was the name of the interface. </para>
<para>&IDL; files should be called in a descriptive way for the collection of interfaces they contain, also all lower case. Especially it is not good to call an &IDL; file like the class itself, as the .mcopclass trader and type info entries will collide, then. </para>