Google und Python

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
mx
User
Beiträge: 23
Registriert: Donnerstag 4. August 2005, 15:29
Kontaktdaten:

Donnerstag 9. Februar 2006, 16:22

Hallo Leute,

obwohl ich recht wennig mit python zu tun habe ( leider!), hab ich scho paarmal gehört, dass es für google benutzt wird. andererseits hab ich auch gehört, dass python (relativ) langsam ist! Nur verstehe ich nicht wie das zusammenhängt... eine langsame programmiersprache für eine möglichst schnelle suchmaschine? könnte mich jemand mal kurz aufklären? für nen guten Link gibts sogar extrapunkte :wink:

sers
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Donnerstag 9. Februar 2006, 16:56

Erstens: eine Programmiersprache ist weder langsam noch schnell. Der kompilierte Maschinen-Code den Du ausführst ist langsam oder schnell auf der Maschine auf der es ausgeführt wird, und da Python eine hochdynamische Sprache ist kann der Interpreter der Virtuellen Maschine von Python leider nicht allzuviel optimieren, was eben bedeutet dass es für die selbe Aufgabe länger braucht als zum Beispiel wenn man es in C baut, wo der Interpreter der Virtuellen Maschine die Maschine selbst ist.

Zweitens: Google setzt Python für Prototyping ein, nicht für das was nachher auf google.com und Verwandten läuft (das ist meißtens in C++, wenn man Alex Martelli glauben darf).

Sonst: es ist meißtens einfacher eine Maschine zu kaufen die mächtiger ist als ein Programm in einer "lowlevel"-Programmiersprache wie C oder C++ zu entwickeln. Deswegen ist für die allermeißten belange die Geschwindigkeit der Python-VM mehr als ausreichend. Wenn's irgendwo was zeitkritisches gibt, kann man schließlich auch per Erweiterungsmodul auf C ausweichen. Die sind superangenehm und einfach zu programmieren.
--- Heiko.
mx
User
Beiträge: 23
Registriert: Donnerstag 4. August 2005, 15:29
Kontaktdaten:

Donnerstag 9. Februar 2006, 19:03

also nur prototyping... OK, klingt interessant! (oder ich habs falsch verstanden)
muss man nachdem man den prototyp in python programmiert hat wieder total von vorne mit C anfangen, oder wie wird das gemacht?
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Donnerstag 9. Februar 2006, 20:24

Beim Prototyping geht's darum die Algorithmen die man nachher implementiert abzustecken. Python ist (unter anderem) für sogenanntes "rapid prototyping" gedacht, da man eben viele "very-high-level"-Datentypen und Sprachkonstrukte wie Listen, Dicts, Iteratoren, Speichermanagement, etc. nicht selbst implementieren muß, sich also im Endeffekt auf die Implementierung des Algorithmus konzentrieren kann.

Wenn man dann einen Überblick darüber hat wie ein Programm aussehen soll (also im Prinzip ein fertiges Programm vor sich hat), geht die Implementierung in C++ o.Ä. natürlich sehr viel schneller und leichter, da man schon weiß was man implementieren muß, und auch den Rahmen abgesteckt hat, und mögliche algorithmische Fehler im Vorfeld ausräumen kann.

Sonst: Python ist natürlich nicht nur zum "rapid prototyping" geeignet. Nur: Google ist darauf angewiesen dass seine Produkte einer riesigen Menge an Anfragen nachkommen können, das ist mit Python und "very-high-level"-Programmierung eben einfach nicht mehr in vertretbarem Hardwarerahmen zu schaffen.

Siehe Wikipedia, die bauen auf PHP auf und haben ich glaube knapp 1000 Server die das Wikimedia-Skript hosten, die auf Rotationsbasis aufgerufen werden. Das ist der Preis den man bezahlt wenn man die Dynamizität auch im ausführbaren Programm behalten will die eine Skriptsprache bietet, die aber eben bei Google im Endeffekt nicht mehr benötigt wird. Denen geht es nur darum möglichst viel Bandbreite möglichst effektiv zu benutzen. Deswegen halt auch die Endimplementierung in einer hardwarenahen Sprache wie C++.
--- Heiko.
mx
User
Beiträge: 23
Registriert: Donnerstag 4. August 2005, 15:29
Kontaktdaten:

Donnerstag 9. Februar 2006, 20:41

danke...
langsam versteh ich es! jedenfalls verstehe ich etz wahrscheinlich auch, wieso bei mir wikipedia dauernd so langsam geladen wird... :wink:
Benutzeravatar
Mr_Snede
User
Beiträge: 387
Registriert: Sonntag 8. Februar 2004, 16:02
Wohnort: D-Dorf, Bo

Freitag 10. Februar 2006, 00:45

mx hat geschrieben:jedenfalls verstehe ich etz wahrscheinlich auch, wieso bei mir wikipedia dauernd so langsam geladen wird... :wink:
Naja DAS liegt bestimmt nicht an der verwendeten Programmierprache, sondern eher daran dass google über einen gewaltig größeren Finanzrahmen verfügt als Wikipedia. Daher hat google, wenn ich richtig informiert bin das derzeit größte Gridsystem um eben diese Performance zu bieten.

cu Sebastian
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Freitag 10. Februar 2006, 00:51

Naja DAS liegt bestimmt nicht an der verwendeten Programmierprache, sondern eher daran dass google über einen gewaltig größeren Finanzrahmen verfügt als Wikipedia.
Das liegt sehr wohl auch an der verwendeten Programmiersprache. PHP ist nun mal eine dynamische Spache, und auch nicht die schnellste dabei. Sprich: wenn man Wikimedia in seiner Form in C++ reimplementieren würde könnte man die Performance ohne weitere Serverkosten steigern.

Dass der Performancewahn natürlich blödsinnig ist, da muß man nichts zu sagen. Nur: für Google lohnt sich es auf jeden Fall. Für Wikimedia eher nicht, da es ja so tut wie es tut.
--- Heiko.
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Freitag 10. Februar 2006, 08:18

modelnine hat geschrieben:Dass der Performancewahn natürlich blödsinnig ist, da muß man nichts zu sagen. Nur: für Google lohnt sich es auf jeden Fall. Für Wikimedia eher nicht, da es ja so tut wie es tut.
Ist halt ein Rechenexempel... Wenn du 100 Rechner mit C++ brauchst oder 200 Rechner mit PHP/Python, dann macht das bei den Stromkosten schon einiges aus :)

Was ich noch sagen wollte... google bietet einige Schnittstellen die man u.a. mit Python ansprechen kann um Lustige dinge zu machen.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Freitag 10. Februar 2006, 11:02

Na ja, und wieviel kostet ein Programmierer der C++ in der geforderten Qualität schreiben kann?

SCNR,
Christian
Antworten