Werkzeuge

Lochkarten habe ich nicht mehr erlebt, Maschinensprache (auch ausserhalb von Grundlagen und Techniken des Compilerbaus) gerade noch, aber meine Werkzeugkiste war zu Beginn meiner Karriere (um die Jahrtausendwende) trotzdem noch primitiv und bestand abgesehen vom Java Development Kit (JDK) im Wesentlichen aus TextPad. Erste Gehversuche mit einer integrierten Entwicklungsumgebung (integrated development environment, IDE), nämlich NetBeans, änderten 2001 daran noch nichts.

In den letzten zehn Jahren war dann doch eine IDE, nämlich Eclipse (bei Squeng in Form der Scala IDE), mein wichtigstes Werkzeug. Dazu gesellte sich schon nach Doodles Wechsel von Subversion zu Git noch SourceTree.

Wie Oli von TestingTime haben zwischenzeitlich nicht wenige meiner Kollegen aus der Java- oder Scala-Welt von Eclipse auf IntelliJ gewechselt (oder setzen wie Martin von Odddots nebst Visual Studio auch WebStorm ein). Obwohl ich keine Vorbehalte gegen russische Software habe, habe ich trotz einiger Nachteile von Eclipse und zahlreicher Vorteile von IntelliJ bisher auf einen Wechsel verzichtet (obwohl Squeng noch von JetBrains’ Startup-Rabatt profitieren könnte): IntelliJ ist zweifelsohne wahnsinnig mächtig, wirkt aber halt auch gross und schwerfällig.

Stattdessen habe ich an Visual Studio Code einen Narren gefressen: leichtgewichtig, nützliche Erweiterungen aus vertrauenswürdigen Quellen und sogar kostenlos.

VSC

Übrigens: Eine treibende Kraft hinter Eclipse damals und hinter Visual Studio Code heute ist der Schweizer Erich Gamma, der ein paar Jahre vor mir am Ubilab war. Ich war nur im Sommer 1998 als Praktikant dort (so wie auch Marissa).

APM

Vor gut einer Woche habe ich an der FHSG nochmals agiles Projektmanagement unterrichtet.

Zur Vorbereitung habe ich u.a. zwei neue resp. neu aufgelegte Publikationen gelesen, das nicht schlechte und kostenlose Modernes (Projekt-)Management: Scrum, Kanban, Management 3.0 & co. sowie das sehr gute Scrum mit User Stories.

Ausserdem habe ich dieses Mal die folgenden drei Anbieter von Kanban- resp. Scrum-ähnlichen Boards als Beispiele gewählt: AsanaMingle und Trello.

 

Masse statt Klasse

Um die Jahrtausendwende habe ich ein paar Sachbücher rezensiert, zunächst für MacTech Magazine, später auch für Computer. Was ich jedoch noch nie rezensiert habe, ist ein ganzer Verlag – bis heute.

Auf Packt Publishing bin ich vermutlich via dem O’Reilly-Shop gestossen, aber ich weiss es nicht mehr sicher. Ist auch egal. Jedenfalls hat der Verlag einen beeindruckenden Katalog von Informatik-Büchern. Nach ca. zwei Dutzend Titel aus dem Katalog, die ich in den letzten paar Jahren gelesen habe, bin ich allerdings zum Schluss gekommen, dass die Aktualität und Breite des Angebots auf Kosten der Qualität gehen und zwar massiv. Mindestens jedes zweite Buch von Packt Publishing habe ich nicht zu Ende gelesen, weil es nur Zeitverschwendung gewesen wäre.

Keine Regel ohne Ausnahme: Learning Concurrent Programming in Scala ist ein sehr gutes Buch, das ich allen wärmstens empfehlen kann, die sich für nebenläufige Programmierung und/oder Scala interessieren. Trotzdem werde ich in Zukunft Bücher von Packt Publishing meiden, wenn sie nicht mindestens in einer zweiten, überarbeiteten Auflage erschienen sind und bereits gute Rezensionen erhalten haben.

NCZScript

Wie ich an anderer Stelle schon bemerkt habe, empfinde ich es als Qual, in JavaScript zu programmieren. Doch trotz TypeScript, Scala.js etc. kommt man in der Entwicklung von Web-Applikationen heutzutage halt nicht ganz darum herum.

Umso dankbarer bin ich Nicholas C. Zakas für seine hervorragenden Bücher. Zuletzt habe ich Understanding ECMAScript 6 gelesen (das übrigens auch die wenigen Änderungen und Ergänzungen von ECMAScript 2016 [aka ECMAScript 7] abdeckt) und wurde wieder nicht enttäuscht.

Datenbankverwaltungssysteme

Mein bevorzugtes Datenbankverwaltungssystem (database management system, DBMS) ist nun schon seit über fünf Jahren MongoDB. Es läuft (nebst S3 ninja) zu Entwicklungszwecken lokal auf meinem Computer. Im Produktivbetrieb kann ich MongoDB as a Service von MongoDB, Inc. selbst, von mLab, von Compose, von meinem JVM as a Service-Anbieter, von Swisscom u.v.a.m. beziehen – für den Testbetrieb (oder zumindest für eine Evaluation) nicht selten kostenlos. Ausserdem gibt es sehr gute deutschsprachige und englischsprachige Fachliteratur zu MongoDB.

Doch auch MongoDB ist nicht für jede Anwendung das geeignetste DBMS. Deshalb setzte ich mich mal wieder mit anderen DBMS-Ansätzen auseinander und zwar sowohl mit dem klassischen als auch mit modernen. Das mache ich durch das Studium von “Relationale Datenbanken” bzw. “Next Generation Databases”, die ich beide empfehlen kann.

DevOps

Jährlich gibt der State of DevOps Report wertvolle Denkanstösse zur Software-Entwicklung (Dev) und zum Software-Betrieb (Ops). Und der diesjährige ist keine Ausnahme.

Obwohl ich kein Freund von in Unterhaltungslektüre verpackten Sachbüchern bin, soll The Phoenix Project nicht unerwähnt bleiben, falls jemand einen sanften Einstieg ins Thema DevOps in Form von Bettlektüre sucht. Wer es lieber konkreter mag, ist mit Sachbüchern zu Continuous Integration, Continuous Delivery und Continuous Deployment besser bedient.

Und auch Firmen aus einer streng regulierten Branche wie dem Finanzwesen müssen nicht aussen vor bleiben. DevOps ist durchaus vereinbar mit ihrer Welt.

Bitcoin, Blockchain und Bücher

Die Themen Blockchain im Allgemeinen und Bitcoin im Speziellen habe ich lange vor mich hergeschoben. Sporadisch habe ich zwar Vorträge besucht (vor gut zwei Jahren die Vorträge von Luzius Meisser und Thorsten Hens an einer New Media Session bei Tamedia und vor gut zwei Monaten den Vortrag von Andreas Antonopoulos am START Summit) und Artikel gelesen (wie The Blockchain Application Stack meistens via Fred Wilson), aber mir nie eine eigene Meinung gebildet. Das wollte ich diesen Frühling ändern.

Im April habe ich deshalb The Age of Cryptocurrency gelesen und im Mai Blockchain Revolution. Ersteres kann ich auch einer nicht-technischen Leserschaft wärmstens empfehlen. Letzteres habe ich nur bis zur Hälfte gelesen und den Kauf und vor allem die investierte Zeit bereut: zigmal wird nämlich -überspitzt zusammengefasst- behauptet, dass Blockchain + Magic Dust = Silver Bullet, ohne dass die Blockchain erklärt oder der Magic Dust plausibilisiert wird. Es ist fast schon erstaunlich, dass die Autoren trotz des Hypes um das Buch und in dem Buch nicht auch noch behauptet haben, dass Blockchain-Technologie sämtliche Krankheiten ohne Nebeneffekte heilen wird …

Im Sommer werde ich nochmals einen neuen Anlauf nehmen müssen, diesmal aber auf der Basis einer technischen Quelle. Nichtsdestotrotz wage ich auf wackeliger Grundlage eine erste Einschätzung:

  • Pessimistisch:
    • Bitcoin ist bereits die Killer-App der Blockchain, es wird nicht viele weitere geben. (Ob sich Bitcoin deshalb zu einem guten Geld- oder Gold-Ersatz mausern wird, weiss ich leider nicht.)
    • Die Blockchain leidet wie sämtliche schlüssel-basierten kryptographischen Systeme unter dem Problem der Schlüssel-Verwaltung, was ihren theoretischen Eigenschaften praktische Grenzen setzt. (An dieser Stelle sei mal wieder verwiesen auf Cryptography Engineering.) Denn auch wenn ein Public Key direkt als Pseudonym fungiert, kann der zugehörige Private Key verloren gehen oder missbraucht werden. Oder wer hat noch nie weder ein Passwort vergessen noch einen physischen Schlüssel verloren?
      Und ich hege den Verdacht, dass viele Nicht-Informatiker sich dieses Aspekts noch gar nicht bewusst sind, was in zu optimistischen Artikeln und Vorträgen (ab Minute 69) resultiert. (Blossstellen möchte ich mit den beiden Beispielen niemanden; es handelt sich schlicht & einfach um den letzten Artikel resp. Vortrag, an den ich mich gerade erinnern kann.)
    • VC-Fonds, die sich auf Bitcoin/Blockchain beschränken, sind ähnlich kurzsichtig wie Investoren, die seinerzeit nur noch auf Ruby-on-Rails-Projekte setzen wollten, obwohl es sich dabei schon damals um ein austauschbares Implementations-Detail gehandelt hatte.
  • Optimistisch:
    • Die Blockchain bietet eine lehrreiche Fallstudie für den Entwurf kryptographischer Protokolle und ihrer konkreten Umsetzung in Form von Software.
    • Die Blockchain wird weiterhin die Phantasie beflügeln und zu Ansätzen anregen, die bis vor kurzem wohl im Keim erstickt worden wären (z.B. über Organisationen verteilte Datenbanken mit hoher Transparenz für Bürger, Kunden usw. – unabhängig davon, ob man sie dann mit kryptographischen Bausteinen aus der Blockchain umsetzt oder anders).
    • Nicht selten liege ich falsch mit meinen Einschätzungen. 🙂