Weshalb wir Python nutzen

Symbolfoto für die Programmiersprache Python. Photo by Michael Dziedzic on Unsplash.

Wir nutzen eine inzwischen 30 Jahre alte Programmiersprache und werden hin und wieder mit der Frage konfrontiert: Weshalb Python? Daher gibt es hier eine Liste von Alternativen und unsere Gründe bei Python zu bleiben.

C

Geschwindigkeit, Geschwindigkeit, Geschwindigkeit.

Durch die Verwendung von C anstatt Python können Berechnungen 10-100 mal schneller ausgeführt werden. Das ist insbesondere bei Aufgaben aus dem Bereich des Machine Learning und Massendatenverarbeitung relevant.

Mit Cython gibt es für Python eine Erweiterung, mit der dieser Geschwindigkeitsvorteil direkt in Python genutzt werden kann, ohne die komplette Code-Basis auf C umzustellen.

Elixir

Basierend auf der stabilen und robusten Erlang VM ist Elixir eine Lieblingssprache von Entwicklern von verteilen Systemen. Wir sind jedoch am Experimentieren und (noch?) nicht bei der Entwicklung verteilter Systeme.

Go

Mit Go können performante und leichtgewichtige Anwendungen programmiert werden, die sich besonders in kurzlebigen Containern im Cloudumfeld wohl fühlen. Ein Grund für uns die Sprache auf dem Schirm zu haben, jedoch für unsere aktuellen Use-Case ungeeignet.

Java

Ein großes Argument für Java ist die Verfügbarkeit von professionellen Entwicklern und Dienstleistern, sowie die Unterstützung von erprobten Big Data Technologien.

Java stellt einen erheblichen Overhead für die Entwicklung und Ausführung von Prototypen im Experimentierstadium dar. Für die für uns relevanten APIs und Bibliotheken gibt es Python SDKs oder Python Wrapper, die für unsere Zwecke bisher ausreichend waren.

Julia

Julia sieht toll aus und auch die Micro-Benchmarks sind überzeugend. Noch ist Python aber weitaus verbreiteter (siehe TIOBE-Index) und für uns daher attraktiver.

Nim

In manchen Kreisen wird Nim als Nachfolger von Python gehandelt, da es eine ähnlich verständliche Syntax hat, jedoch nativ unter anderem zu C und JavaScript kompiliert. Das ermöglicht eine hohe Performance und Lauffähigkeit auf unterschiedlichen Plattformen.

R

In vielen von uns bearbeiteten Bereichen sind R und Python von der Funktionalität her austauschbar und R ggf. sogar in der Performance überlegen. Wir bevorzugen jedoch das breitere Aufgabenspektrum und die verständlichere Syntax von Python.

Rust

Ähnlich wie Go für die Cloud ist Rust für das Web eine auf Performance ausgerichtete Programmiersprache. Für unsere Fokus aber ungeeignet.

Python

Neben einer Top 3 Platzierung im TIOBE-Index (2019, 2020 und 2021) war Python auch in der Stack Overflow Entwicklerumfrage 2020 die Nummer 3 der beliebtesten Programmiersprachen.

[Python](https://xkcd.com/353/) von Randall Munroe unter [CC BY-NC Lizenz](http://creativecommons.org/licenses/by-nc/2.5/).
Python von Randall Munroe unter CC BY-NC Lizenz.

Für uns sind die drei Hauptgründe für die Nutzung von Python:

  1. Niedrige Einstiegsschwelle => der Code ist auch für Informationswissenschaftler nachvollziehbar.
  2. Unterstützung aller von uns benötigten Technologien.
  3. Geeignet für Prototyping und für produktive Anwendungen.
Benjamin Rosemann
Benjamin Rosemann
Data Scientist

Ich evaluiere KI- und Software-Lösungen und integriere sie in den Archivalltag.

Ähnliches