Optimierte Laufzeiten und verbesserte
Verständlichkeit
Gut, besser, optimal
von Nils Magnus
Erschienen im Linux-Magazin
2008/11
Programmier-Promis hatte das Linux-Magazin in der letzten Ausgabe nach Lösungen für eine gestellte Aufgabe gefragt - nicht alle Einsendungen konnten vollends überzeugen. Seit Erscheinen des Hefts programmieren die Fanclubs der Sprachen zur Ehrenrettung um die Wette. Ein Zwischenbericht.
|
108 | Mono 2.0
Ist Dotnet das bessere Java oder gar ein geniales C++? Mit dem
anstehenden Mono 2.0 dürfen sich auch Entwickler, die für Linux arbeiten, mitspekulieren.
114 | Perl-Snapshot: Sound fürs Web
Multimedial mag es Perl-Afficiando Mike Schilli. Neuerdings
lässt er sich Zugriffe auf seine Website akustisch melden. Wie
üblich hat das CPAN auch für diese Idee einiges in petto.
|
Mit negativer Logik lassen sich kleine Kinder manchmal zu Dingen überreden, die anderweitig hohe Motivationskünste erfordern. Sollten Software-Entwickler etwa ähnlich gestrickt sein?
Im Wettstreit populärer Programmiersprachen [1] kämpfte die eingesandte Python-Lösung mit einem Problem: Sie verwaltet die zu durchsuchenden Fußnoten der Aufgabenstellung in einer kontinuierlich wachsenden Liste und durchforscht sie bei jeder neuen Fußnote linear. Experten und geplagte Informatikstudenten nennen das O(n2) oder auch "quadratischen Aufwand".
Komplexe Materie
Das bedeutet vereinfacht gesagt, dass die Ausführungszeit quadratisch mit der Anzahl der Fußnoten steigt. Der vorgegebene Beispieltext hatte zehn Fußnoten. Das war für alle Skripte einfach. Ein zweiter Testfall hatte jedoch eine Million Einträge, also 100000-mal mehr. Bei einem Programm der Komplexität von O(n2) bedeutet dies, dass es nun 10 Milliarden (1000002) mal so lange braucht als vorher. 10 Milliarden mal eine kurze Zeit ist immer noch ein erkleckliches Weilchen. Daher enthielt der Beitrag in der letzten Ausgabe keinen Messwert für die Python-Lösung.
Aber zurück zur negativen Logik: Diese Schmach mochten die zahlreichen Python-Liebhaber unter den Lesern des Linux-Magazins natürlich nicht auf sich sitzen lassen. Folglich führen die Python-Einsendungen zahlenmäßig die Hitliste der Leserzuschriften an, um die die Redaktion bis Ende September gebeten hatte. Da dieses Heft seinen Redaktionsschluss noch vor diesem Termin hatte, folgt erst in der kommenden Ausgabe eine komplette Auswertung der Leserzuschriften.
Motivation zur Verbesserung
Software-Ingenieure oder Programmier-Philosophen mögen in diesem Umstand vielleicht eine Bestätigung des Postulats von Vordenker und Waffennarr Eric S. Raymond sehen, der 1997 auf dem Linux-Kongress [2] in seinem denkwürdigen Essay [3] forderte: "Release early, release often". Ein zentraler Gedanke in seinem Beitrag war die Motivation von Entwicklern für das Entwickeln: Oft geht es um das Vergleichen und Verbessern von fremdem Code mit den eigenen Lösungen und Fertigkeiten. Manch einer mag das unter dem Geiste olympischen Wettstreitens sehen, andere als maskulines Kräftemessen auf dem Weg zum Denkergeschlecht [4]. Egal: Es produziert schnelleren, kürzeren oder schöneren Code (siehe Abbildung 1).

|
Abbildung 1: Programme lassen sich unter höchst unterschiedlichen Kriterien entwickeln. Übersichtlichkeit und Laufzeit waren bei dieser Ruby-Lösung von Leser Knut Franke nur zweitrangig: Dafür ist es die bislang kürzeste Einsendung.
|
Bearbeitet ein neuer Programmierer ein Stück Code und legt er einigermaßen objektive Kriterien zum Benchmarking wie Laufzeit oder Speicherbedarf zugrunde, veredelt sich fast immer dessen Qualität. Diese Eigenschaft hat freie Software mit ihrer fast unbeschränkten Zahl von möglichen Veredlern jeder proprietären Variante voraus. Allerdings setzt dies voraus, dass das zu veredelnde Programm, sein Code und seine Umgebung auch so attraktiv sind, dass sie genügend viele Enthusiasten anziehen. Freie Software skaliert besonders mit großen Zahlen: Jeder darf mit beliebig kleinen Quäntchen zu einem Projekt beitragen, aber viele kleine Schritte ergeben oft beeindruckend Großes. Wie bei der Laufzeit von einigen Python-Programmen.
| Whitepaper |
|
The Role of Open Source in Data Integration
Obwohl in den letzten Jahren viele technische Fortschritte erzielt werden konnten, verfügen die meisten Datenintegrationsprozesse nach wie vor nur über eine sehr begrenzte Automatisierung. Das vorliegende White Paper von dem Industry Analyst Mark Madson wird zunächst ein grundlegendes Verständnis von Daten Integration vermitteln, die Vorzüge von Open Source Lösungen für Daten Integration erläutern und Ihnen professionelle Empfehlungen geben, damit Sie Ihre Integrationsjobs noch einfacher und produktiver gestalten können.
Download PDF (Registrierung erforderlich)
|
|
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele (Folge 2)
Der zweite Teil des Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele White Papers beleuchtet anhand weiterer ausgewählter Case Studies die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|