Weshalb wir Python nutzen
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.
Für uns sind die drei Hauptgründe für die Nutzung von Python:
- Niedrige Einstiegsschwelle => der Code ist auch für Informationswissenschaftler nachvollziehbar.
- Unterstützung aller von uns benötigten Technologien.
- Geeignet für Prototyping und für produktive Anwendungen.