00:00:08 Domänenspezifische Sprachen (DSLs) und ihre Vielfalt.
00:01:36 Beispiele für DSLs: AMPL für mathematische Programmierung und HTML für Webseiten.
00:03:00 Die Vorteile der Verwendung von DSLs gegenüber allgemeinen Programmiersprachen für spezifische Aufgaben.
00:05:22 Lokads Verwendung einer DSL zur Optimierung der Lieferkette in verschiedenen Situationen.
00:07:23 Die Vorteile der Verwendung einer DSL für eine schnellere und zuverlässigere Konfiguration.
00:09:35 Einschränkungen einer DSL und ihre Vorteile bei der Optimierung der Lieferkette.
00:12:55 Sicherheitsimplikationen der Verwendung einer DSL im Vergleich zu allgemeinen Programmiersprachen.
00:13:01 Der zeitaufwändige Prozess der Entwicklung einer DSL.
00:14:49 Ratschläge für Startups, die die Entwicklung ihrer eigenen DSL in Betracht ziehen.
00:16:01 Unterentwicklung von DSLs und traditionellen Lösungen, die zu unbefriedigenden Produkten führen.
00:17:26 Das Dilemma der Verwendung von DSLs gegenüber Mainstream-Programmiersprachen und deren Ergebnisse.
00:18:32 SQL und HTML als erfolgreiche Beispiele für domänenspezifische Sprachen.
00:19:46 Potenzial von DSLs in verschiedenen Branchen und ihre transformative Kraft.
00:21:19 Fazit und potenzielle zukünftige Entwicklungen bei der Verwendung von DSLs.

Zusammenfassung

In diesem Interview diskutiert Kieran Chandler domänenspezifische Sprachen (DSLs) mit Joannes Vermorel, dem Gründer des Unternehmens Lokad für Supply Chain Optimization. DSLs sind Programmiersprachen, die für spezifische Aufgaben entwickelt wurden und sich von allgemeinen Sprachen wie Java oder Python unterscheiden. Vermorel erklärt, dass DSLs in Branchen wie der Automobilindustrie eingesetzt werden, wo sie fehlerfreien Betrieb für kritische Komponenten wie Antiblockiersysteme bieten. Er diskutiert auch Lokads Entwicklung ihrer eigenen DSL, Envision, zur Optimierung der Lieferkette. Vermorel hebt die Vorteile von DSLs hervor, wie effiziente Berechnungen und Anpassungsfähigkeit an spezifische Bereiche, und erkennt gleichzeitig die Herausforderungen und den zeitaufwändigen Charakter ihrer Entwicklung an.

Erweiterte Zusammenfassung

In diesem Interview diskutiert Kieran Chandler, der Moderator, domänenspezifische Sprachen (DSLs) mit Joannes Vermorel, dem Gründer von Lokad, einem Softwareunternehmen, das sich auf die Optimierung der Lieferkette spezialisiert hat.

DSLs sind eine spezielle Klasse von Programmiersprachen, die entwickelt wurden, um sehr spezifische Arten von Problemen zu lösen, im Gegensatz zu allgemeinen Programmiersprachen wie Java oder Python, die darauf abzielen, eine breitere Palette von Aufgaben zu bewältigen. Allgemeine Programmiersprachen sind darauf ausgelegt, eine bequeme, produktive und effiziente Möglichkeit zu bieten, alles zu tun, was mit Computern möglich ist, während DSLs sich auf die Lösung spezifischer Probleme konzentrieren. Einige der ersten domänenspezifischen Sprachen, wie AMPL, wurden für mathematische Programmierung und andere sehr spezifische Aufgaben entwickelt.

DSLs werden in realen Anwendungen eingesetzt, um kritische Komponenten in verschiedenen Branchen zu implementieren. Zum Beispiel könnte in der Automobilbranche eine DSL verwendet werden, um die Software zu entwickeln, die das Antiblockiersystem (ABS) in einem Auto steuert. Das Ziel besteht darin, ein nahezu fehlerfreies System zu schaffen, da ein Ausfall dieser Komponente zu einem Verlust der Bremsfähigkeit führen könnte. Im Gegensatz dazu bieten Mainstream-Programmiersprachen möglicherweise nicht das gleiche Maß an Sicherheit in fehlerfreiem Betrieb.

Ein weiteres Beispiel für eine DSL ist HTML, das für die Erstellung von Webseiten entwickelt wurde. HTML ist zugänglicher und einfacher als allgemeine Programmiersprachen, was es für nicht-technische Benutzer oder sogar Grundschüler geeignet macht. Diese Einfachheit hat jedoch ihre Grenzen, da HTML in seinen Möglichkeiten eingeschränkt ist und Benutzern nur die Kontrolle über das Layout einer Webseite ermöglicht, anstatt komplexere Aufgaben wie die Steuerung von Robotern oder die Entwicklung von künstlicher Intelligenz zu ermöglichen.

Auf die Frage, warum DSLs anstelle von ausdrucksstärkeren Mainstream-Programmiersprachen verwendet werden, erklärt Vermorel, dass die Verwendung einer allgemeinen Programmiersprache für Aufgaben, die besser für eine DSL geeignet sind, den Prozess überkomplizieren würde. Wenn beispielsweise eine allgemeine Programmiersprache für das Webseitendesign verwendet würde, müsste jeder einzelne Pixel auf dem Bildschirm kontrolliert werden, anstatt einfache Markup-Sprachelemente zu verwenden, wie die Angabe von Titel, Schriftgröße oder Textausrichtung, wie es bei HTML der Fall ist.

Vermorel erklärt, dass die Probleme in der Lieferkette vielfältig sind und sich keine zwei Unternehmen genau gleichen. Unternehmen haben unterschiedliche IT-Landschaften, Anwendungsumgebungen und verschiedene Kombinationen von ERPs, WMSs und anderen Systemen. Diese Vielfalt stellt Softwarelösungen vor Herausforderungen, die versuchen, die Optimierung der Lieferkette durch einen Einheitsansatz anzugehen. Traditionelle Frameworks, die auf Konfiguration beruhen, erfordern oft umfangreiche Anpassungen und Konfigurationen für jeden Kunden, was zeitaufwändig und kostspielig ist.

In der Erkenntnis, dass jede Kundensituation eine andere Software erfordert, hat Lokad versucht, einen effizienteren und zuverlässigeren Prozess zu entwickeln. Sie beschlossen, ihre eigene DSL, Envision, zu entwickeln, um den Konfigurationsprozess zu optimieren und schneller und produktiver zu machen. Vermorel stellt den Einsatz von Envision im Vergleich zu Mainstream-Programmiersprachen wie C#, F# und TypeScript heraus. Obwohl sie diese generischen Programmiersprachen bereits umfangreich nutzen, stellte sich heraus, dass die Bearbeitung von Kundenanfragen mit ihnen träge und kostspielig war. Envision wurde entwickelt, um agiler zu sein und den einzigartigen Anforderungen der Optimierung der Lieferkette besser gerecht zu werden.

Vermorel betont, dass ein Grund, warum viele Lieferkettensoftware Lösungen aufgebläht werden, darin besteht, dass sie versuchen, jede mögliche Funktion und Anwendung abzudecken. Lokad wählte einen anderen Ansatz und entwickelte eine eng fokussierte Kern-DSL, wobei das Softwareprodukt selbst Envision und seine Fähigkeiten sind. Dies ermöglicht es ihnen, benutzerdefinierte Implementierungen für jeden Kunden mit Envision zu erstellen, während der Compiler und die Umgebung für Envision in C#, F# und TypeScript implementiert sind.

Vermorel erklärt, dass der Einsatz einer DSL Einschränkungen mit sich bringen kann, dies kann jedoch in bestimmten Situationen von Vorteil sein. Wenn beispielsweise eine große Lieferkette mit einem umfangreichen Datensatz optimiert wird, kann es schwierig sein, sicherzustellen, dass Berechnungen innerhalb eines bestimmten Zeitrahmens abgeschlossen werden, wenn generische Programmiersprachen verwendet werden. Eine DSL mit angemessenen Einschränkungen kann garantieren, dass Berechnungen rechtzeitig abgeschlossen werden und Unterbrechungen in der Lieferkette verhindert werden.

Die Entwicklung einer DSL kann jedoch zeitaufwändig sein. Vermorel teilt mit, dass sein Unternehmen fast ein Jahrzehnt gebraucht hat, um ihre eigene DSL zu entwickeln. Diese lange Entwicklungszeit kann im Widerspruch zur schnelllebigen Natur von Startups stehen. Die Hauptherausforderung bei der Entwicklung einer DSL besteht darin, die Kernprobleme, die gelöst werden sollen, neu zu überdenken und die logischen Primitiven zu definieren, die zu ihrer Lösung benötigt werden. Dies umfasst das Design der Syntax und Operatoren der Programmiersprache, so dass sie mit dem jeweiligen Problem übereinstimmen.

Trotz der Herausforderungen glaubt Vermorel, dass der Weg über DSLs noch nicht ausreichend genutzt wurde und für Startups von Vorteil sein könnte. Die Entwicklung einer DSL ersetzt nicht den Bedarf an Softwareingenieuren oder Mainstream-Programmiersprachen; tatsächlich kann sie sogar noch mehr Softwareingenieure erfordern. Durch die Konzentration auf ein spezifisches Problemfeld kann eine DSL jedoch Vorteile in Bezug auf Effizienz, Sicherheit und Optimierung bieten.

Vermorel beginnt damit, die Einschränkungen herkömmlicher Unternehmenssoftware zu diskutieren, die oft aufgebläht und schwer zu verwalten ist. Anschließend führt er das Konzept der DSLs als mögliche Lösung für dieses Problem ein. DSLs sind Programmiersprachen, die auf spezifische Bereiche oder Branchen zugeschnitten sind und spezialisierte Fähigkeiten und Optimierungen bieten.

Vermorel weist darauf hin, dass viele Softwareprodukte auf dem Markt heute unbefriedigend sind und dazu neigen, wie große Unternehmenssoftware zu werden, was nicht das ideale Ergebnis ist. Er gibt das Beispiel von Multi-Channel-Order-Management-Systemen (MOMS), die sich zu Enterprise-Resource-Planning (ERP)-Systemen mit Hunderten von Bildschirmen und Tausenden von Optionen entwickelt haben. Das ursprüngliche Ziel, sich von ERPs zu unterscheiden, ist verloren gegangen und das resultierende Produkt ist nicht viel besser als das ursprüngliche ERP.

Er argumentiert, dass die Verwendung von DSLs zu einem schlankeren und leistungsstärkeren Produkt im Fall von MOMS hätte führen können. Die Einführung einer DSL bringt jedoch ihre eigenen Herausforderungen mit sich, wie jahrelange Kopfschmerzen und Einschränkungen. Andererseits könnte die Verwendung einer Mainstream-Programmiersprache ein schnelleres Wachstum ermöglichen, aber zu einem unüberschaubaren Produkt führen.

Ein erfolgreiches Beispiel für eine DSL ist SQL (Structured Query Language), eine Programmiersprache, die zur Verwaltung relationaler Datenbanken verwendet wird. Vermorel stellt fest, dass, wenn eine DSL sehr erfolgreich wird, die Leute oft vergessen, dass es sich überhaupt um eine DSL handelt. Er glaubt, dass es in verschiedenen Branchen, einschließlich der Supply Chain-Optimierung mit Lokad, erhebliches Potenzial für DSLs gibt.

Chandler erkundigt sich nach anderen Branchen, in denen DSLs von Vorteil sein könnten. Vermorel schlägt Marketing als eine Möglichkeit vor, wo Unternehmen oft mit komplexen Softwarelösungen kämpfen, die nicht leistungsfähig genug sind, um ihren Anforderungen gerecht zu werden. Auch im Bereich Personalwesen könnten DSLs eine maßgeschneiderte Lösung bieten, da sie die einzigartige Kultur jedes Unternehmens widerspiegeln, was es schwierig macht, Einheitslösungen effektiv einzusetzen.

Vollständiges Transkript

Kieran Chandler: Heute werden wir ein wenig mehr darüber erfahren, wie sie entwickelt werden und verstehen, warum sie im Vergleich zu einigen der bekannteren Programmiersprachen vorteilhaft sein können. Joannes, könntest du vielleicht damit beginnen, uns ein wenig mehr darüber zu erzählen, was DSLs eigentlich sind und wie sie funktionieren?

Joannes Vermorel: DSLs sind eine spezielle Klasse von Programmiersprachen, die im Gegensatz zu allgemeinen Programmiersprachen wie Java, Python und C++ nicht darauf ausgelegt sind, eine Lösung für alles zu sein, was man auf einem Computer programmieren kann. Mainstream-Programmiersprachen sollen Ihnen die bequemste, produktivste und effizienteste Möglichkeit bieten, alles zu tun, was Sie mit Computern oder vielen Computern tun können. Aber domänenspezifische Programmiersprachen sind etwas ganz anderes. Es handelt sich um Programmierung, also gibt es Code, und sie ist formal und abstrakt, aber sie ist darauf ausgelegt, sehr spezifische Arten von Problemen zu lösen. Historisch gesehen waren die ersten domänenspezifischen Programmiersprachen hauptsächlich für Dinge wie AMPL, eine mathematische Programmiersprache, konzipiert, um sehr spezifische Aufgaben zu erledigen.

Kieran Chandler: Für welche Arten von Problemen würden Sie eine domänenspezifische Sprache verwenden und wofür werden sie in der realen Welt eingesetzt?

Joannes Vermorel: In der realen Welt wäre eine historische Anwendung beispielsweise die Implementierung kritischer Komponenten. Wenn Sie beispielsweise eine Software haben möchten, die Ihr ABS in Ihrem Auto steuert, das Antiblockiersystem, und Sie möchten den Nachweis haben, dass dieses System niemals abstürzt, weil Ihr Auto plötzlich keine Bremsfähigkeit mehr hat. Das ist eine Situation, in der es ziemlich ernst ist, und Sie würden denken, lassen Sie uns versuchen, hier nicht etwas zu haben, das zu fehlerhaft ist. Das ist auf der eingebetteten Seite. Dann haben Sie Probleme wie HTML für Webseiten, bei denen es sich um eine Programmiersprache handelt, aber Sie möchten, dass diese Sache zugänglicher ist. Es gibt einen guten Grund, warum man HTML in der Grundschule lernen kann; es ist sehr einfach. Die Grundlagen sind buchstäblich für Menschen zugänglich, die nicht besonders technisch versiert sind. Aber der Kompromiss besteht darin, dass HTML Ihnen die Kontrolle über das Layout einer Webseite ermöglicht, nicht jedoch die Steuerung eines Roboters oder die Durchführung von künstlicher Intelligenz.

Kieran Chandler: Also sind sie sehr einfach und eingeschränkter. Ich meine, warum verwenden Sie nicht mehr Mainstream-Programmiersprachen, die für diese Aufgaben mehr Ausdrucksmöglichkeiten haben, weil sie dazu in der Lage sind?

Joannes Vermorel: Wenn Sie darüber nachdenken, was es bedeuten würde, für HTML-Webseiten zum Beispiel anstelle einer Markup-Sprache zu haben, in der Sie “Titel”, “große Schriftgröße” und “Textkörper” sagen können, “Ich möchte den Text ausrichten” und so weiter - einfache Steuerelemente - müssten Sie denken: “Oh, ich werde jeden einzelnen Pixel auf meinem Bildschirm steuern”, und das ist nicht praktikabel.

Kieran Chandler: …wäre das, was Sie mit einem super low-level Ansatz erreichen könnten, und wenn Sie noch mehr low-level sein möchten, sagen Sie, nun, ich werde meine Grafikkarten direkt steuern, um eine super hohe Leistung zu erzielen, und das ist vielleicht das, was Sie tun würden, wenn Sie tatsächlich einen 3D-Engine für Videospiele entwickeln. Aber wenn Sie nur etwas Einfaches machen möchten, wie eine Webseite, würde es unendlich lange dauern, es auf diese Weise zu tun. Durch 3D-Videospiele ist es so viel einfacher und direkter, einfach durch IDs und ähnliches wie HTML zu gehen. Okay, und das ist ein Thema, mit dem wir bei Lokad sehr vertraut sind, da wir unsere eigene DSL generiert haben. Warum war es also etwas, das uns als Lieferkettenunternehmen so interessiert hat?

Joannes Vermorel: Das Problem bei der Lieferkette ist, dass die Probleme so vielfältig sind. Es ist buchstäblich so, dass es keine zwei Unternehmen gibt, die genau gleich sind. Sie haben nicht dieselbe Anwendungslandschaft. Einige Unternehmen haben ein ERP; viele haben aus schlechten Gründen zwei ERPs. Sie haben ein WMS; sie haben mehrere WMS. Sie haben 10 verschiedene ERPs, weil sie in zehn verschiedenen Ländern mit unterschiedlichen IT-Landschaften tätig sind. Sie haben die E-Commerce-Plattform, die später kam, was eine separate Sache ist. Sie haben zusätzliche Beschleuniger. Das Problem war, dass wir die Lieferkettenoptimierung machen wollten und ich während der ersten Jahre festgestellt habe, dass der klassische Ansatz, ein Framework zu haben, das man konfigurieren kann, einfach nicht funktioniert. Die Situationen waren einfach so vielfältig, dass wir für jeden einzelnen Kunden eine massive Menge an Anpassung und Konfiguration hatten. Und buchstäblich, wenn man darüber nachdenkt, Software zu haben, die komplett von der Stange ist, aber sechs Monate dauert, um sie zu konfigurieren, ist das wirklich Konfiguration? Ist es nicht eher so, dass man eine neue Software erfindet? Die Realität ist, ja, das tut man. Und deshalb haben wir uns entschieden, diesen Ansatz konsequent weiterzuführen, nämlich, okay, wenn wir jedes Mal, wenn wir mit einer Situation konfrontiert werden, eine andere Software benötigen, was ist, wenn wir etwas hätten, das diesen Prozess unterstützt, um ihn sehr produktiv, sehr schnell und sehr zuverlässig zu machen? Und tatsächlich stammt die Idee einer domänenspezifischen Sprache (DSL) daher.

Kieran Chandler: Wenn Sie also eine gängigere Programmiersprache verwendet hätten, würde diese Konfiguration viel mehr Zeit in Anspruch nehmen, während eine solche eingeschränkte Umgebung bedeutet, dass Sie Dinge viel schneller erledigen können.

Joannes Vermorel: Das ist interessant. Bei Lokad verwenden wir generische Programmiersprachen. Wir verwenden von Anfang an C-sharp, C-sharp.NET, was im Grunde der Programmierstapel von Microsoft ist, und später haben wir F-sharp und TypeScript für verschiedene Zwecke hinzugefügt. Wir verwenden also bereits umfangreich generische Programmiersprachen und ich bin mit dem vertraut, was man mit diesen Sprachen machen kann. Aber wir haben während der ersten Jahre von Lokad festgestellt, dass die Bearbeitung von Kundenanfragen mit diesen Programmiersprachen unglaublich träge und kostspielig war. Also brauchten wir etwas Besseres, und es war nicht das Problem, dass wir mit diesen Programmiersprachen nicht vertraut waren. Wir haben festgestellt, dass es etwas mühsam war, sie für jede einzelne Kundensituation zu verwenden. Und übrigens ist das auch ein Grund, warum all diese Lösungen für Lieferkettensoftware wie riesige Monster-Softwarestücke enden. Es liegt daran, dass sie versuchen, alles in ihre Software zu integrieren, und dann enden Sie mit einem Softwaremonster. Also haben wir beschlossen zu sagen, okay, was ist, wenn das Softwareprodukt

Kieran Chandler: Was ist, wenn das Softwareprodukt nur eine DSL und ihre Fähigkeiten wäre, also etwas, das wie ein super enges Kernstück wäre, und dann, wenn wir zu einem Kunden gehen, dann würden wir eine benutzerdefinierte Implementierung erstellen, die nicht in C-sharp, sondern in Envision, unserer eigenen DSL, implementiert ist? Aber der Compiler und die Umgebung für Envision sind tatsächlich nicht in Envision implementiert, sondern in C-sharp, F-sharp und TypeScript.

Joannes Vermorel: Okay.

Kieran Chandler: Sie haben erwähnt, dass Lieferketten unglaublich vielfältig sind und jeder Kunde unglaublich unterschiedlich ist. Führt die Verwendung einer DSL zu bestimmten Einschränkungen? Verhindert sie die Implementierung bestimmter Dinge?

Joannes Vermorel: Absolut, und das ist der ganze Punkt, so überraschend es auch sein mag. Sie sehen, zum Beispiel ein sehr grundlegendes Problem, mit dem Sie konfrontiert sind, wenn Sie eine große Lieferkette optimieren möchten und am Ende eine ziemlich große Datenmenge haben. Angenommen, Sie haben ein Terabyte an Daten. Es ist nicht absolut riesig; Sie können in einen Supermarkt gehen und eine 1-Terabyte-Festplatte für ungefähr 100 Euro kaufen, was ziemlich günstig ist. Es ist also eine große Datenmenge, aber nicht gigantisch. Das Problem ist nun, dass Ihr Datensatz jeden Tag aktualisiert wird und Sie beispielsweise einen Durchlauf über diesen Datensatz machen möchten, um intelligente entscheidungsbasierte Optimierungen in der Lieferkette vorzunehmen, wie zum Beispiel Entscheidungen über Warenbestand und Preise.

Das Problem ist, dass es sehr schwierig ist, sicherzustellen, dass die Berechnung in einer generischen Programmiersprache nur weniger als 60 Minuten dauert. Sobald Sie beliebige Schleifen oder Konstrukte haben, wird es extrem schwierig zu beweisen, dass Ihre Ausführung innerhalb eines bestimmten Zeitrahmens bleibt, was ein Problem sein kann, wenn die Berechnung, die Sie für bestimmte Entscheidungen, wie zum Beispiel Warenbestandsentscheidungen, durchführen, in einer engen Abfolge von Ausführungen in Ihren ERP-Systemen erfolgen muss. Sie müssen diese Ausführung wirklich in 60 Minuten erledigt haben, sonst stören Sie Ihre gesamte Lieferkette, weil die Berechnung zu lange dauert.

Das ist typischerweise die Art von Problem, bei der generische Programmiersprachen Ihnen diese Garantien nicht geben können, weil Sie genau genommen alles mit ihnen machen können. Es ist also sehr schwierig, irgendwelche Garantien von diesen Programmiersprachen zu erhalten. Aber mit einer DSL, die angemessene Einschränkungen hat, gibt es einen anderen Aspekt im Moment: das Design. Es ist tatsächlich sehr schwierig, eine Programmierumgebung anzubieten, die vollständig sicher ist, wenn man eine generische Programmiersprache verwendet. Mit generischen Programmiersprachen wie Java, Python oder C-sharp öffnen Sie sich für ganze Klassen von Sicherheitslücken. Wenn Sie alles mit einem Computer machen können, können Sie Dinge tun, die aus einer IT-Sicherheits-Perspektive relativ gefährlich sind.

Nochmals, wenn Sie eine DSL haben, bedeutet das, dass es ganze Klassen von Dingen gibt, auf die Sie überhaupt keinen Zugriff haben, wie zum Beispiel das Spielen mit dem Betriebssystem, und somit werden ganze Klassen von Problemen entfernt, die nicht einmal Ihre Sorge sind. Alles, worum Sie sich kümmern, ist die Optimierung der Lieferkette.

Kieran Chandler: Ja, und das haben wir in unserer Sicherheitsfolge besprochen. Schauen wir uns vielleicht die Entwicklung einer DSL an. Wie lange dauert es eigentlich, eine solche Sprache zu entwickeln? Wie lange hat es in Ihrer Position gedauert, Envision zu entwickeln?

Joannes Vermorel: Das ist eine gute Frage. Es dauert buchstäblich ein Jahrzehnt, was irgendwie verrückt ist. Wenn Sie ein Start-up sind, sagen Sie, bewegen Sie sich schnell und brechen Sie Dinge, lassen Sie uns ein Minimum Viable Product haben, das Sie innerhalb von sechs Monaten verkaufen können, und dann beginnen Sie, Ihre eigene DSL zu entwickeln, und es ist buchstäblich ein Prozess von

Kieran Chandler: Sicherlich, ein mehrjähriger Aufwand und die Hauptherausforderung besteht darin, dass Sie die Probleme, die Sie lösen, wirklich grundlegend überdenken müssen. Was sind die grundlegenden Aspekte der Probleme und welche logischen Grundelemente müssen Ihrem Verstand zur Verfügung stehen, um diese Probleme mit Computern zu lösen? Es ist noch schlimmer als nur neue Wörter zu erfinden; es geht darum, logische Grundelemente für die Verknüpfung von Konzepten zu erfinden, damit Sie am Ende ganze Klassen von Lösungen in dieser Sprache formulieren können, um Lösungen zu generieren, die vollständig von Computern automatisiert sind. Aber Sie denken buchstäblich über die Programmiersprache selbst nach, ihre Syntax, die Art der Operatoren, die Sie haben, was… und Sie möchten wirklich, dass diese Dinge vollständig mit dem Problem, das Sie lösen möchten, übereinstimmen. Wenn Sie also ein Start-up wären, das gerade erst anfängt, würden Sie empfehlen, diesen Weg einzuschlagen und diese Sprache zu entwickeln, was unglaublich zeitaufwändig und ziemlich schwierig sein kann, oder würden Sie eher empfehlen, an Ort und Stelle zu bleiben und mit gängigeren Programmiersprachen zu arbeiten?

Joannes Vermorel: Zunächst einmal ist das Entwickeln Ihrer DSL nichts, was Sie als Ersatz für gängige Programmiersprachen verwenden werden. Wenn Sie ein Softwareunternehmen sind und diese neue Sprache als Lösung für eine Klasse von Problemen entwickeln möchten, wie wir es für die Lieferkette tun, benötigen Sie einen Compiler und eine Laufzeitumgebung, um diese in diesen Programmiersprachen geschriebenen Programme auszuführen. Und dieser Compiler wird mit einer regulären Programmiersprache geschrieben. Es ist also nicht so, dass Sie den DSL-Weg einschlagen und keine Softwareingenieure mehr benötigen; im Gegenteil, Sie werden sogar noch mehr Softwareingenieure benötigen.

Wenn ich die Frage für Start-ups betrachte, finde ich sie interessant, weil der DSL-Weg so ehrgeizig ist, dass er bisher deutlich unterentwickelt wurde. Ich sehe viele Softwareunternehmen und Start-ups, die Probleme auf herkömmliche Weise angehen, weil sie es eilig haben, und sie enden mit etwas unbefriedigenden Produkten. Wenn ich mir anschaue, welche Art von Produkten sie auf den Markt bringen, sage ich, es ist interessant, aber sie steuern direkt auf ein großes Stück Unternehmenssoftware zu, was nicht unbedingt das ist, was Sie erreichen wollen.

Ein Beispiel dafür wären sogenannte “Multi-Channel-Auftragsverwaltungssysteme”. Es gibt eine Welle von Softwareprodukten, die diesen Weg eingeschlagen haben, und die größeren davon sehen mittlerweile ziemlich genau wie ERP-Systeme aus, mit buchstäblich Hunderten von Bildschirmen, Tausenden von Optionen, und es dauert Monate, um sie ordnungsgemäß einzurichten. Sie landen tatsächlich nicht an einem Ort, der so viel besser ist als die ERP-Systeme, die der Ausgangspunkt waren, um sich zu differenzieren und Produkte zu haben, die schlanker, schneller bereitzustellen usw. sind. Zehn Jahre später haben Sie etwas, das unglaublich ähnlich zu einem ERP-System ist, und vielleicht ist das genau die Art von Problem, bei dem der Einsatz einer DSL einen Unterschied gemacht hätte.

Kieran Chandler: Wir diskutieren die Unterschiede zwischen der Verwendung einer domänenspezifischen Sprache (DSL) und einer gängigen Programmiersprache für die Softwareentwicklung. Mit einer DSL könnten Sie jahrelange Kopfschmerzen haben, aber am Ende eine leistungsstarke und schlanke Lösung erhalten. Andererseits könnte die Verwendung einer gängigen Programmiersprache zu schnellerem Wachstum führen, aber zu einem unüberschaubaren System führen.

Joannes Vermorel: Es ist interessant festzustellen, dass eine der ersten erfolgreichen DSLs SQL war, die Abfragesprache für Datenbanken. Heutzutage verkauft im Grunde jeder Datenbankanbieter eine DSL, da die einzige Möglichkeit, mit einer Datenbank zu interagieren, darin besteht, Abfragen in einer domänenspezifischen Sprache zu schreiben. Wenn eine DSL unglaublich erfolgreich wird, vergessen die Leute oft, dass es sich um eine DSL handelt. Zum Beispiel ist HTML so verbreitet geworden, dass die Leute nicht mehr daran denken, dass es sich um eine DSL handelt. Ich glaube, es gibt viel Potenzial für DSLs in verschiedenen Branchen, wie der Optimierung der Lieferkette mit Lokad.

Kieran Chandler: Abgesehen von der Lieferkettenbranche, welche anderen Branchen könnten Ihrer Meinung nach von der Verwendung einer DSL profitieren?

Joannes Vermorel: Marketing ist eine Branche, die mir in den Sinn kommt. Ich sehe viele Unternehmen, die mit komplexen Softwarelösungen kämpfen, die nicht leistungsstark genug sind. Am Ende erledigen sie viel Arbeit mit Excel, was schwer zu pflegen und in die Produktion zu überführen ist. Auch im Bereich des Personalwesens könnten DSLs von Vorteil sein. Das Personalmanagement spiegelt oft die Unternehmenskultur wider, was es schwierig macht, eine Lösung zu finden, die für alle passt. Ich glaube, DSLs haben das Potenzial, in nahezu jeder Branche eine bedeutende Auswirkung zu haben, aber die Art und Weise, wie sie umgesetzt werden, kann von einem Problem zum nächsten stark variieren.

Kieran Chandler: Damit beenden wir es. Vielen Dank für Ihre Zeit heute, Joannes.

Joannes Vermorel: Gern geschehen.

Kieran Chandler: Das war alles für heute. Vielen Dank fürs Zuschauen, und wir sehen uns das nächste Mal. Bis bald.