Franky hat geschrieben:Wahrscheinlich ist es meinem Prof nur entgangen, der uns im zweiten Semester grad Python beibringen wollte, aber wär´s zuviel verlangt, mir mal die Vorteile der Sprache zu erklären?
Hm, ich will nicht sagen, Vorteile und Nachteile. Aber Stärken/Schwächen kann ich dir sagen, wie ICH sie empfinde.
Die Batterien sind dabei. Die Standarlibs, die mit Python daherkommen, decken schon sehr viel Ab. Python besitzt durchaus auch einige Stärken von Perl, ist also beim Verarbeiten von Texten, Strings,.. sehr mächtig. Man kann mit wenig Code viel erreichen, aber mit leichter lesbarer Syntax als in Perl. Das macht Python gerade im Bereich der Webentwicklung zu einem Kandidaten, siehe Zope, Plone, TurboGears. Googles Suchmaschine arbeitet im Hintergrund mit Python und AFAIK sind auch Teile von YouTube damit implementiert. Es eignet sich auch sehr gut für "administrative Sachen", also kleine, "dreckige" Scripte, wie man sie sonst in der Bash macht, um mal schnell etwas zu erledigen.
Schwächen hat Python bei der GUI Programmierung. Es gibt nicht "das" Toolkit und alle verfügbaren sind so unterschiedlich wie die Völker der Erde. Somit ist zwar für jeden Geschmack etwas dabei, aber RAD gibt es da nicht. wxPython (ein wxWindows Ableger) ist sehr umfangreich und stellt viele, viele Möglichkeiten auf den großen Plattformen (Win, Linux/Unix, Apple) bereit, aber ist IMHO auch komplex. Die anderen (pyGTK, pyQT/KDE, Tkinter, pyFLTK) sind so... naja.
Last but not least: Es gibt unterschiedliche Implementierungen. IronPython für Mono/.NET, Jython für die JVM und cPython (und noch ein paar andere, wie Stackless Python, PyPy...).
Die Community ist sehr aktiv, viele Libs, Hilfen, ...
Performance darf man sich aber von einer dynamisch typisierten Sprache, die interpretiert wird, allerdings nicht erwarten!
Ich stimme ts-soft übrigens zu: GUI/RAD: C# oder ObjectPascal (Delphi ist für mich tot. CodeGear/Borland schaufelt sich langsam aber sicher eine Grube, ich rate zu Lazarus).
Ich sach nur
starten und den Taskmanager beobachten.
Wenn du range() statt xrange() nimmst, kann ich auch nix für. ^^
PyHelp hat geschrieben:class xrange(object)
| xrange([start,] stop[, step]) -> xrange object
|
| Like range(), but instead of returning a list, returns an object that
| generates the numbers in the range on demand. For looping, this is
| slightly faster than range() and more memory efficient.
|
Ausserdem gibt es da noch ein paar andere Tricks...