Unverzichtbare Tools zum/beim Programmieren
Vorwort: um ordentlich programmieren zu können, muß man investieren. Wenig Geld, aber viel Arbeit. Wer das nicht glaubt und gleich loslegt, zahlt später Lehrgeld. Wenn das Programm erst mal tausend Lint-Fehler erzeugt, hat man keine Lust mehr, alle Fehler zu korrigieren. Wenn man seinen Code nicht gleich unter Versionsverwaltung entwickelt, verschwendet man sehr viel Zeit mit Nachforschungen wie "wie war das noch? Warum lief es da anders?", oder es kommt noch schlimmer. Wer sich auf die glänzende, bequeme IDE seines Compilers verläßt, ärgert sich spätestens beim Einsatz eines anderen Compilers, oder wenn er den Überblick verliert, welche Optionen er im tief verschachtetlten Fenster angeklickt hat.
Die Mindestausstattung ist:
- Ein Tool zur statischen CodeKontrolle (Details siehe dort). C-Programmierung ohne Lint ist schlimmer als Autofahren ohne Sicherheitsgurt.
"Lint early. Lint often. Lint is your friend!" Die paar Euro für PC-Lint sind eine lohnende Investition. - Ein Tool zur VersionsVerwaltung (Details siehe dort, ich verwende Subversion). Je früher man Versionsverwaltung verwendet, desto weniger ärgert man sich später. Unbedingt eine lohnende Investition auch (gerade) für Einsteiger!
- Wer kein unixoides Betrübssystem verwendet, sollte trotzdem unbedingt die wichtigsten GNU-Tools zur Verfügung haben => LinuxMitWindows
- Ein gutes Diff-Tool. Beyond Compare (Windows) von
http://www.scootersoftware.com/ ist jeden Cent wert! EC Merge von
http://www.elliecomputing.com/ soll auch nicht schlecht sein, UltraCompare? von
http://www.ultraedit.com/ könnte vergleichbar sein.
http://www.araxis.com/merge/ ist vergleichsweise teuer.
KDiff3,
http://meld.sourceforge.net/
http://winmerge.sourceforge.net/ und
http://www.componentsoftware.com/Products/CSDiff/ kosten nichts.
http://www.doxygen.org/ als Dokumentationstool. Wenigstens den Kommentarstil sollte man von Beginn an verwenden.
Wer sich absolut sicher ist, niemals in seinem Leben den Compiler zu wechseln bzw. für eine andere Plattform zu programmieren, kann diesen Abschnitt vielleicht überspringen. Allen anderen empfehle ich, sich nicht einer "IDE" auszuliefern. Langfristig ist es effizienter, immer mit der gleichen Umgebung zu arbeiten, das ist:
- Ein vernünftiger Editor. Wer will schon die mitgelieferten Editoren von x verschiedenen "IDEs" lernen? Beherrsche einen mächtigen Editor und verwende ihn für alles.
- Ein make-Tool. GNU make ist keine schlechte Wahl. Doku dazu unter
http://www.fsf.org/manual/manual.html Man sollte dazu noch
makedepend verwenden. Vielleich auch Jam
http://www.perforce.com/jam/jam.html
Wenn das Programm zu fett wird, hilft UPX.
Informationen (C-lastig):
- Wer in C programmiert, sollte den Standard "ISO/IEC 9899:1999" (18USD bei
http://www.ansi.org) mit "Corrigendum" 1 und 2 (kostenlos) kaufen. Siehe auch
http://c0x.coding-guidelines.com/ - Kernighan/Ritchie "The C Programing Language" setze ich als vorhanden voraus.
- comp.lang.c FAQ:
http://www.eskimo.com/scs/C-faq/top.html - Sicheres/defensives Programmieren,
http://quest.phaedsys.org/ als Einstieg und "Some notes on defensive programming" and "How To Write Unmaintainable Code" - Mit etwas Muße kann man
http://www.knosof.co.uk/cbook/cbook.html downloaden und lesen.
Win32-Programmierung:
http://msdn.microsoft.com/library/- Microsoft
Platform SDK >400MB Download...
ftp://ftp.borland.com/pub/bcppbuilder/techpubs/bcb5/b5ms.zip enthält die Beschreibung der Win32-API im Hilfeformat. Nicht mehr ganz aktuell.
http://www.winprog.org/- GUI-Programmierung: Petzold "Programming Windows" bzw. "Windows-Programmierung"
http://www.win-api.de/
http://www.iseran.com/Win32/ nicht mehr?
Win32-Compiler, kostenlos:
- LCC-Win32
http://www.cs.virginia.edu/lcc-win32/ und
http://www.q-software-solutions.de/ - Pelles C
http://www.smorgasbordet.com/pellesc/ - MinGW
http://www.mingw.org/ Infos:
http://csjava.occ.cccd.edu/gilberts/mingw/
http://msdn.microsoft.com/vstudio/express/visualc/ "Express" - kostenlos!?
Wer unbedingt
UML verwenden will:
http://argouml.tigris.org/ soll gut sein und kostet nichts. Weiterentwickelt in Poseidon? Übersicht unter
http://www.jeckle.de/umltools.htm
Vielleicht reicht aber auch eine "einfache" Diagrammsoftware wie
http://www.smartdraw.com oder
DIA oder
Visual Thought. Oder
http://www.spinellis.gr/sw/umlgraph/
