Warum benutzen viele Firmen die Programmiersprache Python?
Hallo Leute,
ich bin ein Anfänger in Sachen programmieren. Ich habe mich etwas über die verschiedenen Programmiersprachen erkundigt, und hab gesehen, dass viele Unternehmen Python für ihre Anwendungen benutzen, darunter Google, Youtube, Instagram und Spotify.
Nun, die Programme bzw Apps die der Nutzer herunterlädt sind damit wohl eher nicht gemeint, sonst bräuchte ja jeder einen Python Interpreter installiert. Ich schätze es geht hier eher über die Webserver oder die Firmen benutzen Python zur Datenauswertung. Aber warum Python?!? Python wird doch nicht kompiliert und ist deshalb langsamer, warum sollte gerade Google es zur Datenauswertung verwenden?!? Oder kompilieren die ihre Python Programme? Warum benutzen die dann aber keine Sprache, die auf das kompilieren ausgelegt ist?
6 Antworten
Python ist eine der typischen glue languages mit der sich aufgrund ihrer Einfachheit sehr schnell auf hohen Abstraktionsebenen entwickeln lässt.
Ein etwas öfter herumgetragener Leitspruch zu Google's Entscheidung, Python als eine seiner offiziell genutzten Sprachen aufzunehmen, ist dieser:
Python where we can, C++ where we must
Er beschreibt ein ganz einfaches Prinzip: Einfachheit und Wartbarkeit stehen im Vordergrund.
Ebenso interessant werden wohl die Antworten in diesem StackOverflow-Thread sein: Heavy usage of Python at Google.
... Wobei die viel C++ durch Go abgelöst haben was ich so mitbekommen habe. Ohne jetzt die fast religiösen Auswüchse der Pro- und Kontra-Diskussionen bei der Sprachenwahl besonders genau zu beachten oder diese "Welche Sprache ist die Beste" Statistiken.
Warum benutzen die dann aber keine Sprache, die auf das kompilieren ausgelegt ist?
Weil Hardware billig und Entwickler teuer sind.
Python wird üblicherweise für Frontend (Webserver) oder Big Data bzw. Data Science (z.B. Machine Learning) Anwendungen verwendet. In beiden Anwendungsgebieten kann man i.d.R. einfach mehr Maschinen hinstellen, wenn für mehr Last/Daten hochskalieren werden muss.
Dazu kommt, dass Python relativ einfach erlernbar und zugänglich ist, was z.B. Data Scientist, die keine formale Ausbildung in Informatik haben, oder neuen Entwicklern, die sich in ein System einarbeiten müssen, hilft.
Python ist eine der typischen glue languages ...
Mit anderen Worten:
Wenn ein wesentlicher Teil der Funktionalität einer geplanten Anwendung schon verfügbar ist in Form von Code, der fehlerfrei zu sein scheint und sich mit Python am besten integrieren lässt, dann wird man Python verwenden.
In jedem anderen Fall würde ich lieber ein Subset von C++ verwenden (das kaum mehr zu sein braucht als C erweitert um das Klassenkonzept aus C++), denn ich kann dann den Code so gestalten, dass es einfach wird, darin Fehler zu finden, sobald sie entdeckt werden. Wenn in eingebundenem Python Code, den jemand anders schrieb, Fehler auftauchen, wird man Mühe haben, ihre Ursache zu finden (falls jener Code nicht nur ganz einfache Logik implementiert).
Lies auch:
Fakt ist: In Python implementierter Code arbeitet um einen Faktor 50 bis 150 langsamer als in C geschriebener. Somit ist Python nur geeignet für Programme, bei denen es nicht darauf ankommt, wie schnell sie antworten.
Ganz einfache Sache:
Es gibt natürlich für speziellere Dinge kompilierte Module, die dann auch relativ performant typische Berechnungen für den Bereich ausführen können (sowas wie numpy z.b.).
Der Rest ist eine Frage der Wirtschaftlichkeit. Für das Jahresgehalt eines Entwicklers kaufe ich im Zweifelsfall dutzende Rechner. Wenn die Sprache also relativ einfach ist, und komplexe Dinge schnell und einfach umsetzbar sind, dann spare ich unterm Strich immernoch. Zumal ich die zusätzlichen Arbeitskräfte ja längerfristig beschäftigen und zahlen müßte.
Danke für eure schnellen und hilfreichen Antworten.
Python wird also hauptsächlich wegen seiner Einfachheit benutzt.
Ich kann mir nur irgendwie schwer vorstellen, dass die auf ihren Servern den Python-Interpreter installiert haben... Apropo Server - Welches Betriebssystem benutzen die eigentlich auf ihren Servern? Oder haben sie ihr eigenes programmiert
Oh doch! Zum Großteil laufen Webserver und der überwiegende Teil der Internet-Infrastruktur auf Linux und da ist in der Regel Python vorinstalliert! Allein schon weil viele Tools der diversen Distributionen in Python geschrieben sind.
Welches OS, welchen OS-Zoo etc. Google z.B. genau nutzt, wieviele Teiel/Komponenten sie ausgetauscht oder selbst entwickelt haben (wie GoogleFS z.B.) weiß wohl nur Google selbst.
Bei den meisten Linux-Distributionen ist Python mit dazugepackt. Auf meinen (v)Servern ist Python sogar integraler Bestandteil der Distribution und wird ohnehin benötigt. Auch diverse Dienste nutzen Python durchaus intensiv.
(Samba ohne Python ist quasi nicht machbar)