Python
Eine Sprache die in letzter Zeit immer mehr ins Zentrum meiner Aufmerksamkeit gerückt ist, ist ganz eindeutig Python. Nicht nur dass immer mehr Software die ich verwende in dieser Sprache geschrieben ist (von Dingen die permanent laufen wie Gajim bis hin zu so abstrusen Frickelsachen wie PlayOnLinux) auch scheinen alle in meiner Umgebung auf diese Sprache umzusteigen bzw. Projekte in ihr zu beginnen. (z.B. Wangoo, Crackpod oder Seufz)
In der Tat gibt es auch genug Möglichkeiten Python einzusetzen es ist leicht zu lernen, eignet sich sowohl für Desktopanwendungen als auch für Homepages, ist platformunabhängig und scheint subjektiv ziemlich schnell zu sein.
Da Googles Appengine nach einigen Anfangsschwierigkeiten jetzt auch endlich sinnvoll Nutzbar ist, wird es auch möglich sehr gut eine Web-Anwendung zu entwickeln und aufzusetzen, inkl. Datenbank und allem was sonst noch so dazu gehört, aber ohne grundsätzlich Geld für das Hosting bezahlen zu müssen (Negativseite: der Guhgl-Datenkrake wird die DB gleich 1:1 in den Rachen geworfen). Einen sehr schönen Beitrag zum Thema findet ihr auch bei Terminally-Incoherent
Wem die mitgelieferten Fähigkeiten (die übrigens auch prima dokumentiert sind, ich empfehle Einsteigern unbedingt das Lesen der Einführung) nicht ausreichen, kann das ganze sogar noch mit beliebigen anderen Frameworks oder Bibliotheken in Python kombinieren (z.B. dasDjango-Webframework)
Auf der Seite der Desktopanwendungen scheinen sich im allgemeinen auch sehr schnell Erfolge und Aha-Effekte einzustellen.. so gesehen z.B. bei:
Importierte/Alte Kommentare:
#384: 24.Jul.2008 09:07 von profmakx
Es ist nicht so als würd ich das nicht schon seit Jahren predigen ;).
Nur schnell is Python nicht wirklich (zumindest im Vergleich zu kompostierten Sprachen nicht).
#385: 24.Jul.2008 10:07 von Dr. Azrael Tod
Naja... dass man eine interpretierte Sprache nicht mit x86-Binärkot vergleichen kann ist klar, allerdings mit anderen interpretierten/präcompilierten oder sonstwie emulierten Umgebungen verglichen sieht Python garnicht so schlecht aus.
Auch wenn andere Systeme wie z.B. Java während des Durchlaufes evtl. schneller sind und mathematische Operationen ziemlich schnell durchführen, muss man das imho nicht unbedingt generell als schneller ansehen.
Wenn ich eine Java-Anwendung starte und die Java-VM in meinen Speicher geladen wird erzeugt allein dieser Overhead schon so viel RAM-Verschwendung und Ladezeit dass auf meinem alten Notebook JAVA-Anwendungen generell einen Schmerz im Hinterteil darstellen. Da ist mir ein Python oder gar ein PHP-Interpreter der irgendwo mit ein paar kb-Ramverbrauch rumrennt schon lieber.
Rein von derartigen, subjektiven Gesichtspunkten aus gesehen fühlt sich Python für mich ziemlich schnell an und reicht für viele kleine Tools die hier so rumrennen durchaus.
#386: 24.Jul.2008 11:07 von sirsnookie
Ich muss DAT recht geben, auch bei .NET ist das nicht viel anders. NET saugt sich ersteinmal voll. Läd x-Tausend DLLs und bringt die Kiste richtig zum "röddern". Wie ich im Wangoo schon geschrieben habe, das Tray Icon unter NET brauchte bis zu 3 Sekunden zum erscheinen. In Python war es so fix das ich es nicht messen konnte. Mit z. B. Py2Exe steht auch ein netter "Compiler" zur verfügung. Ebenso kann man den Python Optimierer einschalten indem man dem man die Shebang Zeile in #!/usr/bin/python -O oder ggf. -OO abändert.
Für Python Einsteiger kann ich vor allem das Galileo Openbook Python empfehlen. Zu finden unter:
http://www.galileocomputing.de/openbook/python/
Die ersten Kapitel kann man sicherlich überspringen, dennoch zum fix mal nachschlagen super geeignet.
#387: 24.Jul.2008 01:07 von Dr. Azrael Tod
Zu dem "Openbook" wurde mir mal der folgende Link vorgeschlagen.. soll wohl etwas buggy sein
#388: 24.Jul.2008 08:07 von CracKPod
Jep, hier auch schon erwähnt. Buggy würde ich es nicht nennen, eher unkomplett, nicht auf den neuesten Standards bzw. schlampig verfasst.
Zurück zur Pythons Ausführungsgeschwindigkeit:
AFAIK ist Python eine der schnellsten interpretierten Scriptsprachen im Durschnitt.
Es kann natürlich sein das Java z.B Rechenoperationen schneller auf die Reihe bekommt, aber das dann auch nur weils ca. 100mb RAM frisst und erstmal die VM beim starten laden muss was sich in der Geschwindigkeit bemerkbar macht.
Versteht mich nicht falsch, ich sage nicht das Java schlecht ist sondern nur das es Python in der allgemeinen Geschwindigkeit nicht das Wasser reichen kann, genauso wie viele andere interpretierte Programmiersprachen.
PS: Eine Alternative zum Openbook ist A Byte of Python.
MfG,
CracKPod
#389: 24.Jul.2008 08:07 von Dr. Azrael Tod
Wenn du es nicht sagst, dann sage ich es:
Ich finde Java einfach nur grottig, ich halte es für eine der vielen Sprachen in letzter Zeit die Objektorientiert und formalisiert entworfen wurden bis zum letzten und bis diese "Optimierung" die Verwendung erschwert hat.
Ich will mich nicht damit rumschlagen wie ich etwas genau formulieren will, ich will dem Computer sagen was er tun soll. Für genau diesen Zweck wurden Programmiersprachen entwickelt und die höheren Sprachen wurden erschaffen um dies noch weiter zu erleichtern indem man die CPU-Befehle weiter abstrahiert hat und so alles verständlicher ausformulieren konnte.
Java und ähnliche Systeme hingegen betreiben Formalisierung zum Selbstzweck.
#390: 25.Jul.2008 09:07 von profmakx
Erstmal wird immer und immer wieder der Fehler gemacht, die Geschwindigkeit von Sprachen zu vergleichen. Das ist totaler Mist. Würde man Java kompilieren wie C++ würde man wahrscheinlich nahe an null Geschwindigkeitsunterschiede feststellen. Genauso verhält es sich mit Python. Es geht immer um die Implementation die man Vergleicht. Also zum Beispiel Java auf der SunVM oder Python in der Standarddistri.
Die Javaimplementation auf der aktuellen Sun VM ist verdammt schnell, man hat viel Arbeit da reingesteckt ein kaputtes Sprachkonzept zu retten.
Die Standard Python Implementation ist auch schnell.
Die beiden zu vergleichen ist eine Äpfel-Birnen Sache. Vielleicht verfasse ich da später mal nen kleinen Artikel zu, ich habe mich damit ja nicht nur einmal befasst.
Wer ein bischen vergleichen will kann sich ja hier die Benchmarks zusammenstellen die die eigene Lieblingssprachimplementation am besten dastehen lässt.
Bei den oben genannten Benchmarks ist Java auf der Sun VM bis zu 136 mal schneller als Python und braucht manchmal auch weniger Speicher (vorsicht! erst nachschauen wie der speicherverbrauch gemessen wird!)
Vergleicht man mit (teilweise)kompiliertem Python von PsyCo sieht das schon wieder ganz anders aus.
Was Python "schneller" als Java macht ist, dass man nicht eine Quadrillionen Zeilen Tippen muss (oder eine Quadrillionen Codezeilen erzeugen muss) um eine einfache Applikation zu schreiben. Da gibt es viele viele Sprachen die das einfach besser machen. Und Python machts wie die Werbesprüche es sagen "uncluttered".
#391: 25.Jul.2008 09:07 von profmakx
Nicht zu vergessen, dass man auch einen Algorithmus oder Verwendungszweck spezifizieren sollte. Es gibt einfach Aufgaben für die python schlicht nicht geeignet ist.