Uploaded avatar of iHiD

Ein Interview mit Ryan Potts

@iHiD
vor Mehr als 7 jahre

Ein Interview mit Ryan Potts, in dem er und Jeremy Walker über Delphi sprechen, darüber, was er als Mitwirkender bei Exercism gelernt hat, und über seine Erfahrungen mit dem Programmieren in Branchen, die noch immer „offline“ sind.

Hallo Ryan. Danke, dass du dir die Zeit für ein Gespräch genommen hast. Du bist der Maintainer des Delphi-Tracks bei Exercism. Wie bist du zu Delphi gekommen?

Ich arbeite für ein Unternehmen, das mein Vater gegründet hat. Es entwickelt seit den 80ern Software, anfangs mit Microsoft Pascal und später mit Turbo Pascal von Borland. Ich kam 1996 in die Firma, und ungefähr zu dieser Zeit bekam sie Anfragen, Software zu entwickeln, die unter Windows statt unter DOS laufen sollte. Praktischerweise hatte Borland kurz zuvor Delphi 1 veröffentlicht. Das passte perfekt zu uns, denn die meisten Units, die über die Jahre entstanden waren, ließen sich weiterhin verwenden. Wir standen nicht mehr vor der Aufgabe, für Windows alles in VB oder VC neu zu entwickeln.

Und du nutzt Delphi heute noch täglich?

Ja, mein Arbeitgeber baut Maschinen für Tests in Forschung und Entwicklung und für die Prüfung kleiner Serien in der Automobilindustrie: getestet werden Reifen, Autositze und Airbag-Inflatoren, außerdem Crash-Tests. Alle diese Systeme werden von mehreren Autoherstellern weltweit und von deren Zulieferern eingesetzt.

Die Software, an der ich arbeite, steuert diese verschiedenen Maschinentypen. Ich entwickle die UI, lege die Testabläufe für die automatisierten Teile der Tests fest und binde die verschiedenen Ein- und Ausgabepunkte ein, sowohl analog als auch digital. Die Software muss so benutzerfreundlich wie möglich sein, damit sich auch jemand mit wenig Einarbeitung gut damit zurechtfindet.

Meine Arbeit erfordert überhaupt keine Web-Programmierung. Alles, was ich mache, ist Delphi unter Windows. Gelegentlich muss ich einen kleinen „custom command“ in C++ zusammenbauen, den ich dann in das Prozessorboard für die Datenerfassung hochlade. Das ist ein Parallelrechner, der in einem PCI-Steckplatz des Rechners sitzt und eigene CPU, Speicher und ein eigenes Betriebssystem hat.

Es ist faszinierend, mit jemandem zu sprechen, der überhaupt keine Web-Programmierung macht. Das wirkt heute ziemlich ungewöhnlich, aber ich frage mich, ob das nur am Signal-Rausch-Verhältnis liegt, das ich täglich mitbekomme, und nicht ein Abbild der Branche ist.

Ja, durch mein Engagement bei Exercism habe ich ein wenig davon mitbekommen, wie die „andere Hälfte“ in der Computerbranche lebt. Ich habe viel über testgetriebene Entwicklung (TDD) gelernt, darüber, wie man sich auf GitHub zurechtfindet, und über die Arbeit an einem Open-Source-Projekt. Vieles von dem, was ich gelernt habe, hat die Qualität meiner Arbeit im Job verbessert.

Das freut mich sehr zu hören. Was ich an Exercism am meisten mag, ist genau dieses Gefühl von „wie die andere Hälfte lebt“: dass man seine eigenen blinden Flecken erkennt und Dinge lernt, von denen man nicht einmal wusste, dass es sie gibt. Ich nehme an, als Track-Maintainer hat sich dieses Lernen noch verstärkt?

Ja, das hat es. Ich schreibe mehr Tests als früher. Es ist nicht immer TDD im engeren Sinne, manchmal kommen die Tests an zweiter statt an erster Stelle. Trotzdem hat es beeinflusst, wie ich Code strukturiere: Ich entferne unnötige Abhängigkeiten, um das Testen zu erleichtern.

Ich verbringe viel Zeit damit, Issues und PRs im problem-specifications-Repository zu prüfen, in dem wir Exercism-Übungen sprachunabhängig definieren. Aus den Diskussionen habe ich viel gelernt. Manchmal wirkt eine vorgeschlagene Änderung auf den ersten Blick einfach, doch aus der anschließenden Unterhaltung ergeben sich Probleme. Ich bin geduldiger geworden. Und ich habe gelernt, bei technischen Problemen im Job nach weiteren möglichen Blickwinkeln zu suchen.

Außerdem habe ich mehr über Mentoring gelernt, insbesondere darüber, wie wichtig es ist, das zugrunde liegende Warum zu kennen und nicht nur das Wie. Ich arbeite mit einer Handvoll anderer Programmierer zusammen. Obwohl ich jünger bin als die meisten von ihnen, bin ich länger in der Firma als sie, und ich kann oft einen effizienteren Weg aufzeigen, wie man den Betrieb einer Maschine taktet, oder erklären, warum etwas auf eine bestimmte Art ausgeführt werden muss.

Über Exercism hinaus bist du außerdem ein Delphi MVP, was ziemlich beeindruckend ist! Wie kam es dazu? Gibt es eine starke Delphi-Community, zu der du gehörst?

Als ich den Delphi-Track anfangs aufbaute, habe ich mich an Jim McKeeth bei Embarcadero gewandt, um zu fragen, ob wir eine Open-Source-Lizenz für Delphi bekommen könnten. Damit könnten wir mit Delphi neue Übungen entwickeln und es anderen ermöglichen, über Pull Requests beizutragen. Im Laufe unseres Schriftwechsels hat Jim mich eingeladen, dem Embarcadero MVP Program beizutreten.

Delphi Praxis ist eine Online-Community, die ich gut kenne. Auf Google+ ist viel los, aber die Plattform läuft aus, also müssen wir woanders hin.

Hast du irgendwelche Open-Source-Apps in Delphi gebaut, die sich andere ansehen könnten?

Ja! Der Exercism's Windows CLI Installer ist Open Source und komplett in Delphi geschrieben. Er ermittelt automatisch die richtige Version (32/64 Bit) der Exercism CLI, die ein Lernender braucht, lädt die CLI dann herunter, entpackt sie und legt sie am richtigen Ort ab. Der Installer wurde 15.000 Mal heruntergeladen, worauf ich ziemlich stolz bin!

Das ist eine großartige Leistung! Als jemand, der kaum (wenn überhaupt) Internet-Programmierung macht: Vor welchen Herausforderungen standest du, als du den Installer in Delphi erstellt hast?

Der Installer war ursprünglich in C# geschrieben. Er war veraltet, und ich beschloss, zu sehen, ob ich ihn verbessern könnte. So etwas hatte ich noch nie versucht, aber ich wusste, dass Delphi die Werkzeuge dafür hat. Ich begann damit, den ursprünglichen C#-Code zu studieren, um zu verstehen, welche Abfolge von Ereignissen im Hintergrund ablief, und dann zu versuchen, dieselben Aufgaben in Delphi umzusetzen. Auf der Dokumentationsseite von Embarcadero fand ich Beispielcode, der erklärte, wie man die verfügbaren Komponenten für einen REST-Client richtig zusammensetzt. Außerdem entdeckte ich ein praktisches Werkzeug, das mit Delphi geliefert wird und REST Debugger heißt. Damit konnte ich die verschiedenen HTTP-Aufrufe eingeben und so testen, die nötig sind, damit der Installer funktioniert. Sobald sie laufen, erstellt der Debugger Kopien der benötigten Komponenten, die ich dann in den Code einfügen konnte.

Für jemanden, der tiefer in Exercism einsteigen möchte, vielleicht jemand, der hofft, Maintainer zu werden: Kannst du uns von deinem eigenen Weg erzählen?

Ich bin Mitglied einer lokalen MeetUp-Gruppe namens Akron Code Club. Etwa einmal im Monat treffen wir uns und arbeiten meist zu zweit an einem Code-Kata, das der Gruppe vorgeschlagen wurde. Beim Meetup im August 2016 haben wir angefangen, Übungen von Exercism zu bearbeiten. Als ich Exercism und einige der anderen Lernplattformen nutzte, dachte ich, es wäre schön, wenn mehr dieser Online-Programmierplattformen Delphi oder Pascal als Option anbieten würden. Nachdem ich mich auf der Exercism-Website und in den Exercism-GitHub-Repos umgesehen hatte, entdeckte ich, dass Exercism immer daran interessiert ist, neue Sprach-Tracks hinzuzufügen. Ich war mir nicht ganz sicher, wie ich Katrina am besten kontaktieren sollte. Ich glaube, ich habe sie im August '16 über Gitter angeschrieben) und vorgeschlagen, Delphi aufzunehmen. Etwa zwei Monate später bekam ich eine entschuldigende Antwort, und da wurde mir klar, dass sie Gitter nicht nutzt. Wie auch immer, sie fragte, ob ich noch daran interessiert sei, einen Delphi-Pascal-Track hinzuzufügen, und ob ich dann den Stein ins Rollen bringen würde.

Mittlerweile gibt es ein Repository, über das man einen neuen Sprach-Track beantragen kann, und man kann jederzeit Issues im Repository exercism/exercism öffnen, um mit den Maintainern des Projekts Kontakt aufzunehmen.

Großartig. Danke für das Gespräch und für deine ganze Arbeit an Exercism!

Gern! Das hat Spaß gemacht. Ich mache gern mit und tue, was ich für Exercism kann. Lernen durch Tun!

30. Januar 2019 · Fandest du ihn hilfreich?