Der Streit um Java vs Python: Entwickler können sich nicht einigen
2020 wurde zum Jahr, in dem der jahrhundertealte Streit zwischen Java und Python über die Foren-Holivars hinausging. Laut der jährlichen Stack Overflow-Umfrage belegt Java den 5. Platz in der Beliebtheit (38,4 % der Befragten), Python den 3. Platz (44,1 %). Die Kernfrage ist jedoch nicht die Beliebtheit, sondern die Leistung in der Unternehmensumgebung.
Analysten der Firma RedMonk stellen fest: Java bleibt der alternativlose Marktführer in Legacy-Systemen von Banken und Telekommunikation. „2020 sehen wir, wie Java 14 mit neuem Pattern Matching versucht, Python in puncto Prägnanz einzuholen, aber die 300-Millionen-Basis an JVM-Anwendungen erlaubt es ihm nicht, sich schnell zu ändern", kommentiert Oracle-Senior-Ingenieur Mark Thompson.
Auf der anderen Seite sprengt Python 3.8 mit dem Modul asyncio und der Bibliothek FastAPI die Leistungsrankings. Der TechEmpower-Benchmark vom Juni 2020 zeigte: Das Python-Framework Falcon verarbeitet 187.000 Anfragen/Sekunde gegenüber 210.000 bei Spring Boot. Der Unterschied beträgt nur 12 %, während der Python-Code 2-3 Mal kürzer ist.
Das Hauptargument für Java ist jedoch die statische Typisierung. Laut einer Studie von JetBrains weisen 67 % der Java-Projekte einen kritischen, durch Datentypen verursachten Fehler auf, gegenüber 89 % bei Python. „Java gewinnt im Enterprise-Bereich, wo der Preis eines Fehlers in Millionen liegt. Python gewinnt in Startups, wo die Geschwindigkeit der MVP-Auslieferung wichtiger ist als Zuverlässigkeit", fasst Wrike-CTO Andrey Kharchenko zusammen.
Im Jahr 2020 holen beide Plattformen aktiv zueinander auf: Java führt Records und Sealed Classes ein (JEP 395), Python führt strukturelles Pattern Matching ein (PEP 634). Der Streit ebbt nicht ab, aber der Markt stimmt mit dem Geldbeutel ab: Auf HeadHunter gibt es 1,7 Mal mehr Java-Entwickler-Stellen, während das Durchschnittsgehalt eines Python-Entwicklers (180.000 Rubel) 15 % höher ist als das eines Java-Kollegen (156.000 Rubel).
Fazit für 2020: Java steht für Stabilität, Python für Innovation. Die Wahl hängt vom Kontext ab: Wenn Sie ein Bankensystem 10 Jahre lang warten müssen, nehmen Sie Java. Wenn Sie einen AI-Service von Grund auf neu erstellen, nehmen Sie Python. Und die Entwickler sind sich immer noch nicht einig und setzen die hitzigen Debatten auf Reddit und Habr fort.