Seite 3 von 3

Verfasst: 11.06.2008 16:40
von Alves
Brainfuck.
oder LOLCODE

Verfasst: 11.06.2008 16:58
von bembulak
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

Code: Alles auswählen

 for a in range(100000000):
        b=a+1
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...

Verfasst: 11.06.2008 17:12
von ZeHa
Ich programmiere zur Zeit mit 'nem Kumpel eine Game Engine in C++, die später mit Python geskriptet werden kann. Der Vorteil: Die wichtigen, performance-hungrigen Dinge werden komplett in C++ erledigt. Die Spiel-spezifischen Dinge, also das Verhalten der Gegner usw. (z.B. KI) wird in Python gemacht (sehr lesbar, braucht kein Kompilieren, kann notfalls auch mal von 'nem Level-Designer oder Grafiker angepaßt werden (der nicht besonders gut programmieren zu können braucht)), etc etc.

Es geht halt fix weil die Sprache so hübsch ist und vieles bietet. Das ist schon ein mächtiger Vorteil. Python-Code sieht oftmals sehr stark nach Pseudo-Code aus :) und ist daher auch sehr leicht nachzuvollziehen und übersichtlich.

Verfasst: 11.06.2008 17:30
von Vermilion
@ZeHa: Gibbet davon schon irgendwas wie Projektseite? ^^ Wie weit seit ihr denn?

Verfasst: 11.06.2008 17:54
von ZeHa
Gibt es, aber das ist noch nicht der Rede wert ;) wir kommen leider nicht allzu oft dazu... aber das soll sich ändern :mrgreen:

Naja sobald es einigermaßen taugt werd ich es hier sicherlich mal kurz vorstellen, auch wenn's mit PB nicht viel am Hut hat. Aber vielleicht kann ja jemand 'ne Anbindung machen :)