Tuesday, November 12, 2024

Xyna x Python

Xyna Bulletin #19

Liebe Freunde, Partner und Kunden von Xyna,

heute freuen wir uns über ein besonders schönes Thema – Xyna Factory wird voraussichtlich viele neue Freunde gewinnen. Denn mit der aktuellen Version von Xyna (10.1, verfügbar seit dem 4. Oktober) unterstützen wir Python!

Python-Skripte außerhalb der Factory aufzurufen war schon immer möglich; diesmal sprechen wir aber über vollständig integrierte Module, die auf alle Factory-Features zugreifen können, so wie es bei Java schon immer der Fall war.

Außerdem findet ihr einen Überblick über die aktuelle Supported Base (Systeminfrastruktur) von Xyna am Ende des Newsletters.

Viel Spaß beim Lesen!

Mit freundlichen Grüßen aus Mainz,

Alexander & Philipp

Xyna GmbH

Dr. Alexander Ebbes & Philipp Dominitzki

::

Xyna x Python 

Unsere Xyna Factory ist in Java implementiert, der langfristig gesehen populärsten Programmiersprache der Welt. Daher geschieht auch die Programmierung  der sogenannten Coded-Services in Java. Aber natürlich bleiben wir immer am Puls der Zeit: Kommend aus dem Bereich der Data Science und der KI ist aktuell Python die heißeste Programmiersprache für Neuentwicklungen. Python wird geschätzt für seine leichte Erlernbarkeit und seine effektiven Ausdrucksmöglichkeiten. 


Deshalb bieten wir ab Xyna Factory 10.1 Unterstützung für Python, um Coded-Services zu entwickeln. Diese Python-Module bieten die volle Integration, wie man sie von Java gewöhnt ist, also z.B. den Zugriff auf die Variablen im Workflow-Kontext. Es wird der originale Python-Sprachumfang angeboten und beliebige Packages können selbst geladen und genutzt werden. Beispielsweise die Libraries aus dem Cisco Developer Network oder die Automation Scripts von Juniper. Der Phantasie des Entwicklers sind da fast keine Grenzen gesetzt.


Bei der Implementierung sahen wir zwei große Alternativen: Entweder verwenden wir Jython, eine in Java implementierte Python Virtual Machine, dabei wird quasi aus Python eine durch eine JVM ausgeführte Sprache, wie Scala oder Kotlin. Oder wir setzen auf JEP, dabei wird mit CPython eine „echte“ PVM neben der JVM betrieben und die gemeinsam verwendeten Objekte werden in serialisierter Form über JNI zwischen beiden VMs ausgetauscht. – Wir haben uns für den zweiten Weg entschieden. Zwar war beim ersten die Integration enger, insbesondere gab es keine kopierten Objekte. Aber Jython unterstützt bis heute nur den Sprachumfang von Python 2.7, der inzwischen nicht mehr als „alternativ“, sondern nur noch als veraltet gilt. Mit JEP können wir immer die neuste führende Python-Implementierung (z.Zt. ist das 3.13) einsetzen und sind damit immer aktuell.


Damit sich Python-Programmierer in Xyna Factory so richtig heimisch fühlen, haben wir eine der „heiligen Kühe“ der Java-Community zwar nicht geschlachtet, aber doch optional gemacht: die Getter- und Setter-Methoden. Diese werden von Java-Programmierern als geradezu zwingendes Kriterium für guten Stil betrachtet. In Python vertraut man auf die kürzere Punkt-Notation und betrachtet das als pragmatisch und prägnant. Wir verstehen beide Ansätze und ihre jeweiligen Motivationen. Daher betrachtet Xyna Factory diese unterschiedlichen Programmier-Kulturen liberal und möchte alle Python-Programmierer als First Class Citizen begrüßen. Dafür haben wir ihre native Punkt-Notation als alternative Syntax implementiert und dem Funktionsumfang von JEP hinzugefügt. So ermöglichen wir es jedem Programmierer, sich gemäß der eigenen Prinzipien ausdrücken.

Wie immer: wer mehr erfahren möchte, spricht uns an.

::

Xyna Supported Base / Herbst 24

Im Laufe der Zeit aktualisiert sich die Supported Base von Xyna kontinuierlich. Getrieben durch die technische Weiterentwicklung und neue Releases der Hersteller, wie auch durch neue Anforderungen unserer Kunden.

Die aktuelle Supported Base (Xyna 10.1) stellt sich wie folgt dar: