Vorheriger Beitrag: OpenMP 3.1 mit neuen Features und Funktionen
Trend Report 2011: Martin Böhme von Nik Software gibt Antworten zu Tools, Programmiersprachen und mehr

Martin Böhme
Neue Woche, neue Interviews von Teilnehmern unseres Trend Report 2011. Heute ist Martin Böhme von Nik Software an der Reihe, der bei dem Softwarehaus die Stelle des Development Manager Core Framework bekleidet.
Software Dev Blog: Herr Böhme, auf das Vorurteil, „Programmieren ist der langweilige Zeitvertreib von Nerds, die keine Freunde haben“, reagieren Sie mit welchem Satz?
Martin Böhme: Lehrer sind faul, Künstler tragen nur schwarz, und Versicherungsvertreter vergnügen sich gern in Budapest.
Aber im Ernst: Kein anderes Material ist so formbar und eröffnet so viele Gestaltungsmöglichkeiten wie Software – wie könnte Programmieren da langweilig sein? Und die besten Lösungen entstehen oft nicht im Alleingang, sondern wenn zwei oder mehrere Leute zusammenkommen, die alle tief in einem Thema drinstecken. Im Nachhinein kann dann keiner mehr sagen, wer die zündende Idee hatte, weil sie tatsächlich kollektiv entstanden ist, fast in einer Art Gedankenverschmelzung. Wer das noch nicht erlebt hat, hat etwas verpasst.
SDB: Von welchem Programmiertipp oder welchem Leitsatz haben Sie persönlich am meisten profitiert?
Böhme: Hm, schwierige Frage, denn da gibt es viele Kandidaten. Ein erstaunlich allgemeingültiger Leitsatz lautet: „Wenige Zeilen Code sind besser als viele.“
Das klingt erst einmal banal – aber ich behaupte: Wenn man die Wahl zwischen zwei verschiedenen Lösungen hat, ist fast immer diejenige besser, bei der man weniger Zeilen Code schreiben muss. Dieser Leitsatz lässt sich von der „taktischen“ Ebene einer einzelnen Routine bis hin zu strategischen Fragen wie der Wahl der Implementationssprache anwenden. Als „Meta-Leitsatz“ deckt er damit eine ganze Reihe bekannter Programmierrichtlinien ab:
- Vermeide Code-Duplikation, fasse den Code stattdessen an einer gemeinsam genutzten Stelle zusammen.
- Verwende Templates und Interfaces, um denselben Algorithmus auf unterschiedliche Typen von Objekten anwenden zu können.
- Vermeide unnötige Abstraktion – denn dann schreibst du mehr Code, als wenn du konkret den einen Sonderfall hingeschrieben hättest, den du brauchst.
- Implementiere nur Features, die du wirklich brauchst. Versuche nicht zu erraten, welche Features du in der Zukunft brauchen könntest. Denn es ist schwer genug, bekannte Anforderungen zu erfüllen, aber fast unmöglich, Anforderungen zu erfüllen, die erst irgendwann entstehen mögen. Auf Englisch heißt dieses Prinzip YAGNI – you ain’t gonna need it.
- Wähle eine Implementationssprache mit möglichst hohem Abstraktionsgrad.
- Im Extremfall: Implementiere deine eigene Domain Specific Language (DSL), wenn du damit deine Lösung besser ausdrücken kannst als mit existierenden Sprachen.
SDB: Mit welchen aktuellen Desktop-Programmiersprachen und/oder -Tools sollten sich Software-Entwickler in diesem Jahr unbedingt beschäftigen?
Böhme: Das hängt sehr davon ab, in welchem Bereich man arbeitet. Zwei Technologien, die ich zur Zeit sehr spannend finde, sind OpenCL und AVX. OpenCL deshalb, weil man damit Code schreiben kann, der sowohl auf der CPU und der GPU läuft, und zwar schnell. Außerdem ist seit diesem Jahr endlich die breite Vendor-Unterstützung da, die man braucht, um auf eine Technologie wie OpenCL setzen zu können.
AVX wiederum finde ich spannend, weil meinem inneren Nerd die „Bitfummelei“ gefällt, die man damit betreiben kann – und weil insbesondere die Gather-Operationen, die 2013 mit der Haswell-Architektur kommen werden, sehr spannend aussehen. Aber diese Sicht ist natürlich sehr davon getrieben, dass ich mich für schnelle Bildverarbeitung interessiere. Für einen Webentwickler werden ganz andere Technologien wichtig sein.
SDB: Für das Desktop-Betriebssystem der Zukunft haben Sie drei Wünsche frei. Welche sind das?
Böhme: Ehrlich gesagt, schon die heutigen Betriebssysteme legen den meisten Entwicklern keine Steine in den Weg – wirklich dringende Wünsche habe ich deshalb nicht. Aber wenn ich mir schon etwas wünschen darf, dann folgende Dinge:
- Tools, Tools, Tools! Je besser die Compiler, Profiler und Entwicklungsumgebungen sind, desto einfacher kann ich für eine bestimmte Plattform korrekten und schnellen Code schreiben.
- Bessere Unterstützung für task-basierten Parallelismus. Was Apple mit Grand Central Dispatch vormacht, sieht interessant aus – aber damit man so etwas wirklich verwenden kann, sollte es ein offener, betriebssystem-übergreifender Standard sein.
- Schließlich würde ich mir wünschen, dass die 32-Bit-Versionen der Betriebssysteme möglichst schnell von der Bildfläche verschwinden, damit man durchgehend in 64 Bit entwickeln kann. Ein Adressraum von 2 GB ist inzwischen schon eine arge Einschränkung.
SDB: Welchen Tipp haben Sie für Programmierer parat, die möglichst schnell ihre Apps erfolgreich im Markt platzieren möchten?
Böhme: Ich weiß nicht, ob ich dazu etwas beitragen kann – weil ich selbst noch nie eine App vermarktet habe.
Vielleicht aber doch, denn ich habe vor kurzem die Markteinführung von Snapseed for iPad mitverfolgt, unserer ersten Foto-App für das iPad. Ich glaube, man kann ohne Übertreibung sagen, dass wir mit dieser App ganz schön Wellen geschlagen haben. Wir sind in den ersten Tagen nach der Veröffentlichung an die Spitze der meistverkauften Apps geschossen, und natürlich habe ich mich gefragt, wie wir diesen sensationellen Start hinbekommen haben. Mit unserer Marketing-Abteilung habe ich noch nicht darüber geredet, aber hier sind meine persönlichen Rückschlüsse aus dem Snapseed-Start.
Es mag abgedroschen klingen, aber zunächst einmal braucht man ein wirklich gutes Produkt. Jeder, dem ich Snapseed gezeigt habe, war sofort davon angetan und wollte das iPad gar nicht mehr aus der Hand legen. Wenn ein Produkt mich emotional berührt, dann muss ich anderen unbedingt davon erzählen – und Mund-zu-Mund-Propaganda ist durch nichts zu ersetzen.
Dann haben wir einen Kundenstamm, der die Qualität unserer Produkte kennt. Aus diesen Reihen rekrutieren sich viele der „Early Adopters“, die das Produkt in den ersten Tagen nach dem Erscheinen kaufen, weil sie darauf vertrauen, dass sie Qualität bekommen werden. Gerade bei einem Vertriebsmodell wie dem App Store von Apple sind die Early Adopters immens wichtig, weil sie dafür sorgen, dass die App durch Käufe und Bewertungen in den Rankings nach oben steigt und dadurch mehr Sichtbarkeit bekommt. Natürlich muss das Produkt aber die Qualitätserwartungen der Stammkunden erfüllen – sonst hat man seine treuesten Kunden vergrätzt.
Um die App bekannt zu machen, sind heutzutage die Blogs neben dem klassischen Online-Journalismus ein sehr wichtiges Medium. Blogger sind die ersten, die über neue Produkte berichten; außerdem setzen sie, im Unterschied zu Journalisten, die Produkte oft selber bei ihrer tagtäglichen Arbeit ein, was ihre Meinungen besonders glaubwürdig macht.
Schließlich noch eine Snapseed-spezifische Beobachtung: Die Facebook- und Flickr-Integration in der App ist zum einen ein Feature, das die Kunden stark nachfragen. Zum anderen aber setzt dieses Feature eine Art von viralem Marketing in Gang: Wenn unter einem Foto der Kommentar steht, dass es mit Snapseed bearbeitet wurde, ist das eine sehr effektive Form der Mund-zu-Mund-Propaganda.
SDB: Welche Webseite sollte jeder Entwickler kennen?
Böhne: Wahrscheinlich kennen es inzwischen die meisten, trotzdem: Stack Overflow. Das ist für mich die Webseite, auf der ich am zuverlässigsten Informationen zu technischen Fragen finde. Nebenbei produzieren die Macher von Stack Overflow, Jeff Atwood und Joel Spolsky, einen wirklich hörenswerten Podcast.
SDB: Was gefällt Ihnen am Software Dev Blog? Was könnten wir besser machen?
Böhme: Am besten gefallen mir gefallen die Themen mit „harten“ technischen Inhalten, also möglichst nah am Code. Davon gerne mehr!
Hinweis: Sie sind Programmierer und möchten ebenfalls am Trend Report 2011 teilnehmen? Dann laden Sie die Vorlage zum Software Dev Blog-Trendreport auf Ihren PC, beantworten Sie die sieben Fragen und schicken Sie uns Ihre Antworten zusammen mit einem Foto (JPG-Datei) an ibelshaueser[at]text-vision.com. Wir freuen uns auf Ihre Teilnahme am Trend Report 2011!

Kommentare
Keine Kommentare vorhanden.