Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2008  »  11  »  Gut, besser, optimal  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

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.

Inhalt

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.

Infos

[1] Peter Kreußel, Nils Magnus, "Babylon zu fünft": Linux-Magazin 10/08, S. 30

[2] Linux-Kongress 1997:[http://www.linux-kongress.org/1997/]

[3] Eric S. Raymond, "The Cathedral and the Bazaar": [http://www.catb.org/~esr/writings/cathedral-bazaar/ ]

[4] John Brunner, "Der Schockwellenreiter": Heyne, 1975

Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Geistertanz Die Skriptsprache Boo
Vom Thron gestürzt Die besten Lesereinsendungen des Programmierwettbewerbs
Babylon zu fünft Populäre Programmiersprachen treten gegeneinander an
Babylon zu fünft Populäre Programmiersprachen treten gegeneinander an
Ein Stift für jedes Blatt 2D-Grafikbibliothek Cairo
Tux liest Ein dicker Band zu Qt 4.6 und ein Regex-Kochbuch
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)
Kommentare (0)