Webcrawler - welche Umgebung

tomtitom

New Member
Hallo Leute,

In welcher Umgebung sind den Suchmaschinen (Webcrawler aka WebSpider) wie Google, Yahoo,... programmiert?

Hab mal gehört die sind in Perl programmiert!?!
Wäre es nicht logischer wenn die Webcrawler in C, C++ programmiert wären?

Danke, mfg tom
 
So blöd ist die Frage gar nicht und die Links sind alle relativ wage.
Aus der Google-Geschichte geht hervor, daß die beiden Google-Gründer-Studenten beide in Python programmiert haben.

Python und Perl sind beides sehr performante und flexible Scriptsprachen.
C/C++ bringen von der Geschwindigkeit rein gar nichts, da der Flaschenhals der Crawler das Netzwerk (sowohl das lokale als auch das Internet an sich) ist.
Und C bedeutet immer einen Mehraufwand an Entwicklungszeit da es nicht so flexibel ist wie die Script-Sprachen.

Häufig gebrauchte Funktionen beim Crawlen sind Hashes (==assoziative Arrays) und RegEx (== Regular Expressions) welche Python und Perl in Perfektion können. Perl hat hierbei die effizienteste RegEx-Bibliothek überhaupt.

huschi.
 
Danke Huschi,

Hast mir schon sehr geholfen.
Habe gute Kenntnisse in PHP und habe mir jetzt mal Python und Perl angesehen... Sieht garnicht kompliziert aus.

Kann mich aber nicht entscheiden für welche Sprache ich mich nun entscheiden soll, und mich vertiefen soll.

Könnt ihr mir vielleicht bei der Entscheidung helfen?

Hab gehört Python soll von der Perfomance her nicht zu schlagen sein, aber wie sieht es mit den API's und Funktionen aus?

Mit was bin ich besser am Start?

Vielen, vielen Dank, lg tom
 
Perl ist einfach genial.
Das Beste ist CPAN. Man muss fast nichts neu implementieren, da es für fast alle Sachen bereits fertige Module gibt.
 
Vom Funktionsumfang gleichen sich beide Sprachen ziemlich.
Perl gibt es länger und ist (häufigere Ansicht) leichter.
Dadurch gibt es auch mehr Tools, Module, Scripte, Bücher, etc. für und in Perl.
(Nachteil: man hat zu oft die Qual der Wahl.)

Die Performance macht sich durch die Compile-Zeit bemerkbar. Während Perl den Byte-Code nicht zwischen speicher, hat Python von Hause aus einen Compiler-Cache. D.h. wenn Du größere Scripte häufiger hintereinander startest hast Du dadurch einen Vorteil. Falls Du eher kleinere Scripte hast oder, wie im Fall einen Crawlers, ein Script welches fast dauerhaft durchläuft nimmt sich das nichts.

Ein wesentlicher Punkt bei dauerhaft laufenden Scripten ist der Garbage-Collector. Also der Teil der Speicher wieder frei gibt, wenn er nicht mehr gebraucht wird. Hier ist Python besser/sicherer, da alle Variablen klar deklariert werden und ihren festen Namensraum haben. In Perl ist es etwas komplizierter und daher auch nicht so sicher. Hier wird Speicher unter gewissen Umständen nie frei gegeben.
Klingt jetzt aber nur schlimmer als es ist. In der Realität handelt es sich nur um kleine Speicherbereiche.

Je nach Kenntnisstand in Programmiersprachen kann ich folgende Empfehlung abgeben:
Wenn Du schon C/C++ oder Java kannst, versuch es mal mit Python.
Wenn Du bisher nur PHP programmiert hast, wirst Du in Perl deutlich schneller voran kommen.

huschi.
 
Hier ist Python besser/sicherer, da alle Variablen klar deklariert werden und ihren festen Namensraum haben. In Perl ist es etwas komplizierter und daher auch nicht so sicher.
Wer Perl so codet, dass er Variablen nicht in einem bestimmten Scope deklarieren muss, der macht definitiv was falsch ... wobei das wohl auch als Punkt für Python gelten kann - dort ist Form gleich Funktion.
Was mir übrigens an Perl sehr gut gefällt: Man kann coden wie man will - was natürlich einen ordentlichen Stil verlangt, oder man codet nur Kraut.
Dafür kann man bei Perl einen persönlichen Stil haben - in Python hat man wohl eher den Python-Stil.

PS: Ich gestehe, von Python nicht so viel Ahnung zu haben. Vieleicht etwas, das mich für Perl voreingenommen macht.
 
Back
Top