next up previous contents index
Next: Programmieren unter Linux Up: C++-Entwicklung mit Linux Previous: Contents   Contents   Index

Subsections

Vorwort

Die Programmiersprache C++ erfreut sich immer größerer Beliebtheit und Verbreitung. Warum ist das so? Mittlerweile hat sich die Erkenntnis durchgesetzt, dass Wartbarkeit und Wiederverwendbarkeit von Software -- zwei Kriterien von wesentlicher Bedeutung -- am ehesten durch eine objektorientierte Programmierung erreicht werden können. Und da die Programmiersprache C eine der im technischen Bereich am weitesten verbreiteten ist und C++ deren objektorientierte Erweiterung, wird die Beliebtheit langsam verständlich.

Kaum ein Entwickler, der technische Software erstellen soll, kommt ohne Kenntnisse in C++ aus. An sehr vielen Arbeitsplätzen dominieren für die Programmierung aber noch die Entwicklungsumgebungen unter Windows, die mit einer mächtigen grafischen Oberfläche ausgestattet sind. Doch werden in jüngster Zeit viele Firmen angesichts der Marktmacht des Windows-Herstellers Microsoft immer skeptischer, ob die Abhängigkeit von einem Anbieter auf Dauer sinnvoll ist, und suchen nach Alternativen. So wird das allgemeine Interesse an Linux immer größer. Handelt es sich dabei doch um ein Betriebssystem, das völlig offen und so gut wie kostenlos erhältlich ist -- und sich zudem noch als äußerst stabil und schnell erweist. Außerdem läuft es auf derselben preisgünstigen PC-Hardware wie Windows auch.

Viele Neulinge, aber auch eine Reihe von erfahreneren Entwicklern aus der Windows-Welt, sind angesichts dieses Trends etwas verunsichert. Bei ihnen gilt das Programmieren unter Linux (wie allgemein unter Unix) als unbequem und steinzeitlich. In diesem Buch will ich Ihnen zeigen, dass diese Vorurteile heute nicht mehr berechtigt sind. Es lässt sich nämlich in der Tat unter Linux ähnlich bequem entwickeln wie unter Windows -- wenn auch ein wenig anders, als Sie es möglicherweise bisher kennen. Dafür bekommen Sie aber fast alles, was Sie brauchen, so gut wie umsonst.

Dieses Buch ist für alle,

Ziele und Besonderheiten des Buchs

Das Besondere an diesem Buch ist, dass Sie hier nicht nur etwas über die Programmiersprache C++, sondern auch viel über die Werkzeuge lernen, die für die Entwicklung unter Linux zur Verfügung stehen. Der Schwerpunkt der vorgestellten Werkzeuge liegt auf frei erhältlicher Software. Diese ist fast immer nicht nur unter Linux, sondern auch unter den meisten anderen Unix-Plattformen, ja sogar oft unter Windows erhältlich, so dass das Buch für die Benutzer dieser Betriebssysteme ebenso interessant sein kann.

Die Einführung in die C++-Programmiersprache konzentriert sich in diesem Buch auf die objektorientierte Sichtweise. Im Gegensatz zum traditionellen Ansatz vieler Lehrbücher wird daher nicht mit den C-Altlasten begonnen (außer einigen grundlegenden Typen und Operatoren), sondern mit dem Klassenkonzept, d.h. mit Attributen und Methoden, Ableitung und Polymorphismus. Das verlangt von Ihnen sicher Einiges an Durchhaltevermögen -- wird Sie aber letztlich sehr viel weiter bringen! Denn Objektorientierung ist vor allem eine andere Art des problemlösenden Denkens, als es etwa von den prozeduralen Sprachen verlangt wird.

Zunächst aber erfahren Sie konkret, wie Sie unter Linux entwickeln und welche Werkzeuge Sie dabei tatkräftig unterstützen. In diesem Zusammenhang werden Sie nicht nur die grundlegenden Programme wie Editor und Compiler (einschließlich deren wichtigsten Optionen) kennen lernen, sondern auch moderneren integrierten Entwicklungsumgebungen begegnen, durch die Sie bei der Arbeit produktiver werden können und die Ihnen den Einstieg in die Programmierung (bzw. den Umstieg von Windows) erleichtern sollen.

C++ ist eine sehr mächtige Programmiersprache, die auch den erfahrenen Programmierer immer wieder unsicher machen kann. Alle Details und Probleme können leider im Rahmen dieses Buchs nicht behandelt werden. Wenn Sie sich also in der Tiefe mit C++ auseinander setzen wollen, sollten Sie im Anschluss zu einem der vielen guten Fortgeschrittenen-Bücher zu diesem Thema greifen. Die Grundbegriffe und die Entwicklungswerkzeuge kennen Sie ja dann bereits.

Voraussetzungen

Auch wenn Sie noch keine Erfahrung im Programmieren haben, können Sie dieses Buch verwenden. Es ist allerdings hilfreich, wenn Sie bereits Programme geschrieben haben -- am besten natürlich in C, da C++ ja darauf aufbaut. Aber auch Kenntnisse in Pascal, Java oder Fortran helfen Ihnen sicher über einige Verständnisprobleme hinweg.

Obschon sich dieses Buch auf die Entwicklungsarbeit unter Linux bezieht, so kann es doch keine Einführung in Linux selbst sein. Ich setze also voraus, dass Sie Linux bereits erfolgreich auf Ihrem Rechner installiert haben und wissen, was eine Shell ist, wie man Verzeichnisse anlegt, Dateien kopiert, verschiebt und löscht und wie Sie sich in einer grafischen Benutzeroberfläche zurechtfinden, die auf dem X-Window-System basiert.

Die Abbildungen von Programm- und Dialogfenstern in diesem Buch sind unter der Oberfläche KDE erstellt worden. Das heißt allerdings nicht, dass Sie unbedingt KDE auf Ihrem Rechner benötigen. Das meiste wird auch mit anderen Window-Managern funktionieren.

Organisation des Buchs

Der erste Teil des Buchs ist der Programmiersprache C++ gewidmet. Dabei starten wir mit einem allgemeinen Überblick, was das Programmieren unter Unix von dem unter anderen Plattformen unterscheidet.

Dann geht es im 2. Kapitel direkt in die Tiefen der objektorientierten Denkweise. An dieser Stelle mag Ihnen der Text zuweilen ein wenig trocken vorkommen; das liegt daran, dass Ihnen zu diesem Zeitpunkt noch zu viele Sprachmerkmale fehlen, um sinnvolle Beispiele erstellen zu können. Andererseits führt Sie das Kapitel aber durch alle wichtigen OO-Aspekte, so dass Sie anschließend Ihre Programme gut danach entwerfen können. Außerdem sehen wir uns in diesem Kapitel noch den GNU-C++-Compiler GCC und seine Bedienung an.

Kapitel 3 ist dem praktischen Programmieren mit C++ gewidmet. Nachdem Sie die theoretischen Konzepte nun schon beherrschen, können wir uns an einige richtige Aufgaben machen. Als Beispiele erstellen wir Programme, die mit Linux-Systembefehlen arbeiten, z. B. die Uhrzeitbestimmung, der Nachrichtenaustausch zwischen Prozessen, die Signalbehandlung oder die CGI-Programmierung für den Apache-Webserver.

Anschließend befassen wir uns in Kapitel 4 mit den fortgeschrittenen Sprachmerkmalen wie Namensräumen, Templates, der STL, Operatorüberladung und Ausnahmebehandlung. Hier werden Sie einige Funktionsmerkmale aus dem neuesten ANSI/ISO-Standard kennen lernen, die Sie vielleicht anfangs noch nicht so oft in Ihren eigenen Programmen brauchen werden, die aber zum Verständnis anderer Programme notwendig sind.

Im zweiten Teil geht es um die konkrete Arbeit mit Linux. Als erstes stelle ich Ihnen in Kapitel 5 einige Editoren vor, mit deren Hilfe Sie Ihre Programme schreiben können. Ob Sie schließlich vi, XEmacs, KEdit, gEdit, NEdit, XCoral oder etwas ganz anderes einsetzen, bleibt Ihrem Geschmack überlassen.

Danach geht es im 6. Kapitel um verschiedene Werkzeuge, die Sie zum Programmieren neben dem Compiler auch benötigen werden. make dient zur Verwaltung von Quelltexten in mehreren Dateien, die Debugger gdb und DDD zur Fehlersuche und RCS zur Versionsverwaltung.

Abschließend lernen Sie in Kapitel 7 verschiedene integrierte Entwicklungsumgebungen kennen, vor allem das sehr komfortable SNiFF+, das in der Edition für C++ unter Linux frei erhältlich ist.

Am Ende des Buches finden Sie noch die zitierten Literaturstellen sowie einige zusätzliche lesenswerte und weiterführende Werke.

Typographische Konventionen

In diesem Buch werden außer dem Fließtext folgende Aspekte durch Formatierungen hervorgehoben:

Begriffe wie der Programmierer sind nur der Einfachheit halber in männlicher Form gehalten. Gemeint ist damit immer eine männliche oder weibliche Person.

Aktuelle Ergänzungen

Für dieses Buch gibt es eine Seite im World Wide Web, auf der Sie den gesamten Text sowie Korrekturen, Ergänzungen und Verweise finden. Schlagen Sie nach unter:

http://www.cpp-entwicklung.de

Danksagungen

Wenn man ein Buch wie dieses schreibt, stellt man die Geduld vieler Menschen auf eine harte Probe. Das Feilen und Überarbeiten, um zu einem bestmöglichen Ergebnis für Sie zu kommen, nimmt geraume Zeit in Anspruch. Ich möchte an dieser Stelle dem dpunkt.verlag, insbesondere Herrn Schönfeldt, für die ausgesprochen gute Betreuung in dieser Zeit und darüber hinaus herzlich danken. Viele kompetente Verbesserungsvorschläge kamen von ihm.

Natürlich geht mein Dank auch an meine Frau Andrea, die nun hoffentlich wieder mehr Abende und Wochenenden mit mir wird verbringen können.

 

Ottobrunn, im Herbst 2000

Thomas Wieland


next up previous contents index
Next: Programmieren unter Linux Up: C++-Entwicklung mit Linux Previous: Contents   Contents   Index
thomas@cpp-entwicklung.de

(C) T. Wieland, 2001. Alle Rechte vorbehalten.