@subgenius Mit Ingenieurs-Sicht meine ich, dass ich für Kunden arbeite und die Sprache in der ich entwickele schlicht nicht immer entscheiden kann. Es gibt Anforderungen durch die Wünsche des Kunden, Anforderungen durch die vorhandene Systemlandschaft und so weiter und so fort.
Meine eigentliche Maxime ist es da undogmatisch ran zu gehen und einfach (fast) alles zu lernen was mir unter die Finger kommt, damit ich flexibel bleibe.
Du sagst, dass man wenn man Performance will einfach C Bibliotheken einbinden kann.
C-Bibliotheken sind erstens ein Konsistenzbruch im System.
Sie haben ihre eigenen Probleme.
Du musst eine weitere Technologie lernen, betreuen und verwenden.
Ohne natives Interface ist Python extrem langsam, wie es die Natur einer interpretierten Programmiersprache ist. Außerdem halte ich das Argument, bei performance-orientierten Aufgaben die Hälfte in C oder C++ zu schreiben für ein SEHR schlechtes Argument für Python.
Da kann man im Grunde gleich alles in C++ schreiben, wenn man es eh lernen, verstehen und den Code betreuen muss.
Java hat hervorragende Bibliotheken für fast alle Standardanwendungen. Natürlich ist nicht jede gut aber viele sind verständlich, gut dokumentiert und sowohl im privaten als auch industriellem Umfeld intensiv verwendet (betreut und bezahlt). Die Servlet Engine ist immer noch eines der Maßstäbe für schnelles, integriertes und skalierbares Web.
Scala verwendet die ganzen Sachen nativ. Das heißt man kann eine Java-Klasse aufrufen und verwenden wie eine eigene Klasse.
Bei Python werden selbst zentrale Anwendungen von ambitionierten Freiwilligen betreut. Das hat oftmals zur Folge dass man da ein sicher tolles Werkzeug hat, mit einer fast inspirierten Idee dahinter, dass seit Monaten keine Commits mehr gesehen hat, weil die Freiwilligen sich ein neues Projekt gesucht haben.
Dokumentationen, wenn sie existieren, naja
subgenius schrieb:(Obwohl die API Dokumentation ständig 1 Jahr hinterherhinkt)
Was bringt dir eine Software die nicht dokumentiert ist? Software stirbt im Vakuum ebenso schnell wie biologische Lebewesen.
Letztlich kommt es eigentlich nicht auf die Sprache an. Sondern auf das Systemdesign, Coding-Konventionen, Sauberen Code und so weiter.
Python hat viele Vorteile aber ebenso viele Entwickler die sich auf diesen Vorteilen ausruhen und Spaghetti-Code ist nunmal in jeder Sprache hässlich, wie mächtig sie auch sein mag.
Wenn man mit seinem Team um sich selber kreist, kann man Python verwenden für Web-Applikation mit Django, leichtes skripten und von miraus auch eine komplexere Anwendung.
Aber im industriellen Umfeld und bei mehr als sagen wir 50 Entwicklern, wirst du Python wenig finden, wenn du nicht gerade zu Google gehst.