Python

Flink, flexibel, funktional

Beim Training von generativen KI-Modellen kommen fast immer Python-Libraries zum Einsatz, weswegen wir mit dieser Sprache Erfahrung sammeln und sie mit agilen Methoden und XP verknüpfen.

Python ist eine dynamisch typisierte, interpretierte Programmiersprache mit starker Verbreitung im akademischen Umfeld, weshalb man damit oft schon im Studium in Berührung kommt. Python-Code ist leichtgewichtig und ideal für Prototyping und Notebook-Ansätze (z.B. Anaconda, Jupyter), aber auch für Serverless Computing (bspw. bei AWS oder Azure), bei dem Code ad-hoc ausführbereit sein muss. 

Gleichzeitig lassen sich mit Python auch ganze Software-Produkte erstellen, die modular in Projekte und Bibliotheken unterteilt sind und in einem Continuous Integration-Prozess geprüft und zusammengesetzt werden. Es gibt Libraries en masse, für UIs und Webapplikationen stehen einschlägige Frameworks zur Verfügung. Open Source ist bei Python Standard, sodass Sicherheitslücken behoben werden und Weiterentwicklung immer möglich ist. Tests und andere Maßnahmen zur Qualitätssicherung werden ebenfalls gut unterstützt.

Aufgrund der reduzierten Syntax stellt Python algorithmischen oder datengetriebenen Code besser dar als andere Sprachen, und wo Performanz kritisch ist, kann man auch kompilierten C-Code einbinden. Die Typisierung ist bei Python weniger stark ausgeprägt als bei anderen "Hochsprachen". Deshalb ist man als Entwickler auf IDEs angewiesen, es erfordert auch eine gewisse Disziplin und Teamregeln, wie man den Code schreiben und annotieren will. Zur Unterstützung gibt es Libraries für mehr Typsicherheit zur Laufzeit.

Viele große Player wie Microsoft und Google fördern die Weiterentwicklung von Python mit der Python Software Foundation. Durch Felder wie Machine Learning und Data Engineering wird die Sprache immer mehr an Bedeutung gewinnen, auch um Produkte ganzheitlich auf einem Tech-Stack zu entwickeln. Dass sich Python und ASE-Praktiken gut ergänzen, zeigen wir bei andrena mit dem Clean-Code Training, von dem wir inzwischen eine Python-Variante anbieten.

Max Bechtold, Softwareentwickler

"Auch wenn man Python erst mal mit kleinen Skripten, KI-Training oder Datenanalyse verbindet, ist die Sprache sehr flexibel. Sie erlaubt alle ASE-typischen Praktiken und Pattern, die wir bei andrena im Sinne des agilen, professionellen Engineerings für unverzichtbar halten – und die wir auch bei etablierten Stacks wie Java und .NET einsetzen. Zwar kenne ich nur PyCharm als IDE mit gutem Python-Support, aber das wird sich in Zukunft hoffentlich noch bessern. Und für Softwareentwickler anderer Sprachen gibt es keine Hürden beim Einstieg – mit snake_case wird man sich früher oder später anfreunden."