Python stürmt die Charts

Python
Kybernetik
Autor:in

Johannes Kaisinger

Veröffentlichungsdatum

18. Oktober 2021

Python stürmt die Charts

Im Jahr 2021 hat Python viele Spitzenplätze in Rankings eingenommen. Im Folgenden wollen wir die Rankings ein wenig genauer studieren und klären, für welche Bereiche Python derzeit geeignet ist.

TIOBE Index

Im Oktober 2021 hat Python zum ersten Mal den 1 Platz im TIOBE Index erobert. Dieser Index versucht die Beliebtheit von Programmiersprachen zu messen. Dazu werden verschiedene Daten wie Anzahl der angebotenen Kurse, und Anzahl der Services von Drittanbieter verwendet. Zusätzlich werden auch Daten von Suchmaschinen wie Google, Bing, Yahoo, Wikipedia, Amazon, YouTube und Baidu miteinbezogen.

In den letzten 20 Jahren hat entweder Java oder C diesen Index angeführt. Auf Platz 3 war meist die Sprache C++ zu finden, deren Beliebtheit jedoch stark abgenommen hat. Daran dürften auch Sprachen wie Go und Rust nicht schuldlos sein. Matlab erreichte 2021 den 13 und 2020 den 15 Platz.

Rang 2021 Rang 2020 Sprache Anteil 2021 Veränderung
1 3 Python 11.27 % -0.00 %
2 1 C 11.16 % -5.79 %
3 2 Java 10.46 % -2.11 %
4 4 C++ 7.50 % +0.57 %
5 5 C# 5.26 % +1.10 %
6 6 VB 5.24 % +1.27 %
7 7 Javascript 2.19 % +0.05 %
8 10 SQL 2.17 % +0.61 %
9 8 PHP 2.10 % +0.01 %
10 17 AL 2.06 % +0.99 %

PYPL PopularitY

In diesem Index nimmt Python im Oktober 2021 den ersten Rang ein. Dieser Index wird aus Google Trends Daten und Suchanfragen erstellt. Seit 2017 belegt Python immer den ersten Platz in diesem Ranking (2017, 2018, 2019, 2020, 2021). Matlab erreichte 2021 den 12 und 2020 den 11 Platz.

Rang 2021 Rang 2020 Sprache Anteil 2021 Veränderung
1 1 Python 29.66 % -2.10 %
2 2 Java 17.18 % +0.80 %
3 3 JavaScript 8.81 % +0.40 %
4 4 C# 7.30 % +1.10 %
5 6 C/C++ 6.48 % +0.70 %
6 5 PHP 5.92 % +0.10 %
7 7 R 4.09 % +0.20 %
8 8 Objective-C 2.24 % -1.20 %
9 10 TypeScript 1.91 % +0.10 %
10 12 Kotlin 1.90 % +0.30 %

IEEE Spectrum - Top Programming Languages 2021

Auch in diesem Index nimmt Python im Jahr 2021 den ersten Rang ein. Dieses Ranking besteht aus einem gewichteten Index basierend auf 11 Metriken aus acht Quellen. Seit 2017 belegt Python immer den ersten Platz in diesem Ranking (2017, 2018, 2019, 2020, 2021). Matlab erreichte 2020 den Platz 10 bzw. 2019 den Platz 8.

Rang 2021 Rang 2020 Sprache Anteil 2021 Anteil 2020
1 1 Python 100.0 % 100.0 %
2 2 Java 95.4 % 95.3 %
3 3 C 94.7 % 94.6 %
4 4 C++ 92.4 % 87.0 %
5 5 JavaScript 88.1 % 79.5 %
6 - C# 82.4 % -
7 6 R 81.7.4 % 78.6 %
8 8 Go 77.7 % 73.1 %
9 - HTML 75.4 % -
10 9 Swift 70.4 % 70.5 %

Stackoverflow - 2021 Developer Survey

Stackoverflow erstellt jedes Jahr eine umfangreiche Zusammenfassung über Programmiersprachen und IT-Technologien. Auf der Stackoverflow-Liste der beliebtesten Programmiersprache nimmt Python meist Top 10 Plätze ein. Bemerkenswert ist, dass diese Liste seit 2016 von Rust angeführt wird (2016, 2017, 2018, 2019, 2020, 2021). Auch Rust könnte eine wichtige Sprache für die Kybernetik werden. Es gibt auch mit RustPython einen Python Interpreter der in Rust geschrieben ist. Rust wird oft als ein Konkurrent für C/C++ gehandelt, weil diese Sprache auch direkt auf Hardware laufen kann. Die vorhandene Codebasis von C/C++ ist jedoch gewaltig und wird wohl so schnell nicht ersetzt werden.

Beliebteste Sprache Rang 2021 Rang 2020 Rang 2019
Rust 1 1 1
Clojure 2 - 7
TypeScript 3 2 3
Elixir 4 - 8
Julia 5 6 -
Python 6 3 2
Dart 7 7 12
Swift 8 9 6
Node.js 9 - -
Go 10 5 9

Python erobert die Wissenschaft und Technik

In den letzten 10-15 Jahren hat Python einen enormen Aufstieg in den Programmiersprachen Rankings hingelegt und ist dabei viele andere Sprachen abzulösen. Das liegt erstmal daran, dass Python frei von Lizenzansprüchen ist. Die Lizenzansprüche von C#, Java und Matlab haben deren Weiterverbreitung sicher behindert. Vor 15 Jahren wurden auch die Grundlagen für NumPy und SciPy gelegt. Diese beiden Python Module erlauben das einfache Verwenden, Kombinieren und Implementieren von fortschrittlichen Algorithmen.

Natürlich ist Python stark mit dem Aufstieg des maschinellen Lernens verbunden. Gerade die Bibliotheken Sklearn, Tensorflow und Pytorch haben den Aufstieg von Python enorm befördert. Diese Bibliotheken sind entweder in Python geschrieben oder bieten die beste API in Python an.

Python für Mikrocontroller

Mit Micro- und Circuitpython (2013, 2017) können seit einigen Jahren auch Mikrocontroller programmiert werden. Dabei sei angemerkt, dass Micro und Circuitpython jedoch nicht auf CPython basieren, sondern auf C. In den nächsten Jahren könnte Python für Mikrocontroller, Anwendungen im Bereich der Robotik (z.B micro-ROS) und dem Maschinellen Lernen (z.B. TensorFlow Lite für Mikrocontroller) stark beeinflussen. Derzeit werden dort aber noch die Programmiersprachen C/C++ bevorzugt.

Python für SPS und Indutrie PC - derzeit nicht

Die Programmierung leistungsfähiger Echtzeitsysteme wird zurzeit sicher von C/C++ dominiert. Wenn es um die Programmierung von SPS und moderne Steuerungssysteme geht, scheint Python noch keine große Rolle zu spielen. Dennoch hat Wind River schon 2019 angekündigt, VxWorks auf den Einsatz von Rust und Python vorzubereiten (VxWorks - Rust und Python). Eine pratiktische Relevanz hat Python hier noch nicht. Für das Auslesen von Steuerungen über TCP oder OPC UA eigenet sich Python aber schon jetzt.

Python und Geschwindigkeit

Als ein Argument gegen Python wird oft die Geschwindigkeit angeführt. Gerade die Julia-Community argumentiert, dass Julia schneller als Python ist (Julia-Benchmarks). In diesen Benchmarks ist Python in etwa so schnell wie Matlab, aber eben deutlich langsamer als Julia. Aktuell gibt es Pläne, die Geschwindigkeit von Python deutlich zu erhöhen (Python-doppelte Geschwindigkeit). Das betrifft insbesondere die Versionen 3.10, 3.11 und höher. Sollte dieses Vorhaben gelingen, ist wohl anzunehmen, dass Python noch einige Zeit in den Rankings vor neueren Sprachen liegen wird. Eine weitere Möglichkeit bietet die Vartiation Cython, welche das Ziel verfolgt Python nach C zu Übersetzen. CPython und Cython sollten nicht verwechselt werden.

Fazit

Mit Python können wir beinahe alle Aspekte der Kybernetik studieren. Selbst Mikrocontroller können zunehmend mit Python programmiert werden. Für industrielle und IoT Anwendungen müssen wir teilweise noch auf C/C++ ausweichen. Gerade Echtzeitanwendungen stellen noch ein Hindernis für Python dar. Wir werden in den nächsten Jahren sehen, ob Python auch die SPS und Industriesteuerungen erobern kann. Ausgeschlossen scheint es jedenfalls nicht.

Referenzen