On Wed, 7 Jan 2009, Martin Koppenhoefer wrote:

P.S. Euer Sprachenstreit ist kindisch. Die Unterschiede in der Basisgeschwindigkeit der einzelnen Sprachen sind auf heutigen Plattformen nahezu uninteressant. Auch die Sprachen selbst übrigens.
Wichtig sind die Algorithmen.

schade, schon wieder eine andere Meinung, und ich hatte bereits gehofft, aus dieser Diskussion wenigstens ein paar Basics ueber den aktuellen Stand der Programmiersprachen zu ziehen, aber jetzt weiss ich nicht mehr, welcher Meinung ich wirklich trauen kann...

Das war schon immer so. Algorithmen sind das wichtigste und gute Algorithmen überleben auch die verschiedenen Sprachen.

Nimm mal an zwischen einer schnellen (z.B. C) und einer langsamen (z.B. Perl als Interpretersprache) liegt ein Faktor von 1:10 für eine identische Routine. Zwischen zwei Algorithmen können gut und gerne Faktoren von 1:1000000 liegen. Oder sogar eine Änderung der Komplexität, was sich bei größeren Datenmengen bemerkbar macht.

Durch die Weiterentwicklung der Rechner ist in den letzten Jahren das Grundniveau so hoch, das fast alle Standardaufgaben problemlos erledigt werden können. Es gibt natürlich immer noch numerisch sehr aufwendige Aufgaben, wo es wirklich auf die Sprache ankommt (und die wird es auch in Zukunft immer geben). Aber für fast alles andere ist die Sprache egal. Deswegen werden auch immer mehr eigentlich langsamere Sprachen verwendet, welche aber weniger Aufwand beim Entwickler fordern (z.B. eben Perl) und damit produktiver sind. Das numerisch aufwendige lagert man dann in eine Bibliothek aus.

So absolut stimmt obiges hinsichtlich Geschwindigkeit übrigens nicht. Ich habe vor ein paar Jahren auf dem Amiga mal mit Assembler gegen C gekämpft und gegen die Optimierung von GCC verloren. Das Ergebnis war dann, dass ich die Routinen in C geschrieben habe und nachher den Assembler-Code optimiert habe. Eine pauschale Aussage xxx ist besser als yyy wird zumindest bei modernen Sprachen nie klappen (und auch ein Geschwindigkeitsfaktor xxx/yyy ist Unfug).

Fazit: Nimm moderne Sprachen wie Perl, Python, Ruby wenn Du schnell Ergebnisse haben willst. C, C++ für alles andere. Ich persönlich würde Java nicht empfehlen, aber bestimmt gibt es auch gute Gründe für Java :-)

Nicht-portable Sprachen sollte man eher vermeiden (außer natürlich das Ergebnis ist per se nicht portabel).

Ciao
--
http://www.dstoecker.eu/ (PGP key available)
_______________________________________________
Talk-de mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/talk-de

Antwort per Email an