Python Tempo

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
henning
User
Beiträge: 274
Registriert: Dienstag 26. Juli 2005, 18:37

Beitragvon henning » Dienstag 23. August 2005, 09:45

Ganz ruhig :-)
Ich hab ja nie behauptet dass Dylan unersetzbar ist.
Für verschiedene Zwecke sind halt verschiedene Sprachen geeignet
auch wen Python für sehr sehr viele Zwecke geeignet zu sein scheint.

Dylan ist halt cool, wenn man ein Projekt baut, später merkt dass es immer größer wird, dann braucht man halt keinen C Code auszulagern sondern nur ein paar Typen festlegen und man holt ganz schnell performance raus.

Ich persönlich werde aber mittelfristig auch bei Python bleiben, zumal Dylan auch leider noch nicht so ausgereift ist.
(Und mir Python-Code auch wesentlich lesbarer erscheint als der von Gwydion-Dylan)
Tester

re

Beitragvon Tester » Dienstag 23. August 2005, 10:19

@Mawe:
danke für den Hinweis; nein, OCAML habe ich bislang nicht ausprobiert.
Von den Funktionalen Sprachen habe ich mir vor allem Haskell näher
angesehen; dessen Mathematik-ähnliche Notationen mit Abbildungspfeilen
und Mengeschreibweise finde ich zwar hübsch, aber die funktionelle
Denkweise ist mir irgendwie zu fremd, als daß ich in so einer Sprache
effizient programmieren könnte oder wollte. Ist wahrscheinlich auch eine
Frage der Übung.
Und LISP und Verwandte haben mir einfach zuviele runde Klammern, daneben
scheint es in der LISP-Welt etliche inkompatible Dialekte zu geben, sodaß
man nie Gewissheit hat, ob man dieses oder jene XLISP-Programm auch unter Common LISP zum Laufen bringen kann.
In allen diesen Hinsichten gefällt mir vorerst Python besser.

Und daß bei Python GUI-Module gleich mitgeliefert werden, die
plattformunabhängig sind und auch noch auf Anhieb laufen... daß man das noch mal bei einer Programmiersprache erleben darf...
schätze, ich bin ein bischen C/C++-"geschädigt". Bei solchen Sprachen
ist es nämlich meiner Erfahrung nach eher die Ausnahme, daß ein Quelltext A, der umfangreicher als eine kleine Konsolenanwendung ist, mit einem Compiler B läuft, Standard hin oder her. Von portablem GUI ganz zu schweigen.
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Beitragvon mawe » Dienstag 23. August 2005, 10:38

Hi!

jens hat geschrieben:Also da möchte ich gleich normal Werbung für Python machen

:) brauchst Du nicht, wir wissen alle dass Python cool ist :)
jens hat geschrieben:denn alle genannten Sprachen sind IMHO keine alternative für Python!

Wirklich? So toll Python auch ist, es ist nicht die geeignetste Sprache für alles. Und ein wenig über den Tellerrand schauen hat noch niemandem geschadet :)
jens hat geschrieben:Mit welcher kann man CGIs schreiben?

Mit jeder.
aber wenn man bei billigen Webspace Providern bleibt, dann führt kein weg an PHP oder Python vorbei.

Das ist natürlich ein Argument, aber ...
jens hat geschrieben:Nur mit Python kann man allerdings auch "normale" Programme realisieren...

... ist das auch ein Argument? :) Was sind "normale" Programme?

Zu Dylan muss ich sagen, dass ich schon viel Gutes darüber gehört habe, habs mir allerdings nur kurz angesehen. Die Syntax hat mich mal völlig abgeschreckt (ist aber anfangs bei fast jeder Sprache so), und besonders verbreitet scheint Dylan auch nicht zu sein (noch zu kleine Community?).

Bei OCaml gefallen mir halt einige Dinge:
- Ich kann funktional, prozedural und OO programmieren (ähnliches gilt für Python)
- die Performance ist beeindruckend
- wenn ich mal kurz was ausprobieren will, tippe ich auf der Kommandozeile ocaml und bin im interaktiven Modus (wie bei Python)
- Es gibt einen Interpreter, d.h. ich kann mein Programm einfach mit ocaml myprogram.ml ausführen.
- Ich will plattformunabhängigen Bytecode: ocamlc myprogram.ml
- Ich will native code: ocamlopt myprogram.ml

Naja, wie auch immer. Python ist meine Lieblingssprache und wird es wahrscheinlich auch bleiben. Aber wie schon vorhin gesagt, es ist nicht die geeignetste Sprache für jeden Zweck.

Gruß, mawe
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Beitragvon mawe » Dienstag 23. August 2005, 10:46

Tester hat geschrieben:aber die funktionelle Denkweise ist mir irgendwie zu fremd, als daß ich in so einer Sprache effizient programmieren könnte oder wollte. Ist wahrscheinlich auch eine Frage der Übung.

Ich finde gerade wenn Du von C/C++ und Konsorten kommst, solltest Du Dir mal eine funktionale Programmiersprache ansehen (natürlich SOLLST Du Dir auch Python ansehen :)).

Zu Lisp und den Klammern sag ich nur: Mit einem guten Editor ist das überhaupt kein Problem :)
henning
User
Beiträge: 274
Registriert: Dienstag 26. Juli 2005, 18:37

Beitragvon henning » Dienstag 23. August 2005, 15:22

Hmm dieses ocaml hört sich ja langsam echt interessant an, werd ich auch mal ein Auge drauf haben.
Was sind da so typische Einsatzgebiete?

Zu Dylan: Die Syntax ist ein bisschen gewöhnungsbedürftig und auch nicht so übersichtlich wie die in Python, aber in der Mailinglist zur Zeit noch in der Diskussion (so wollen viele LISP-artige Syntax).
Aber wenn man sich mal dran gewöhnt hat, scheint sie auch nicht
so wirklich unlogisch.
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Beitragvon mawe » Dienstag 23. August 2005, 15:58

Entwickelt wurde OCaml eigentlich für scientific computing (daher auch die Performance). Schau dir mal den Caml Hump an (änlich PyPI oder CPAN), da sieht man was die Leute so damit machen :)

Zu Dylan: Hatte das nicht ursprünglich Lisp ähnliche Syntax?
henning
User
Beiträge: 274
Registriert: Dienstag 26. Juli 2005, 18:37

OT: Dylan / Caml

Beitragvon henning » Dienstag 23. August 2005, 16:20

Caml: Hmm interssant, aber die Syntax scheint mir auch n bisschen strange mit den 2 Semikolons etc... (hab gerade A hundred lines of Caml angelesen)

Dylan: Weiß ich nicht, kann sein, dass das Original-Dylan so eine Syntax hatte, Gwydion-dylan
hat AFAIK aber eine andere Syntax

Henning
Tester

re

Beitragvon Tester » Mittwoch 24. August 2005, 05:50

Daß man in Dylan zur späteren Optimierung von Programmen "nachträglich" Typen festlegen kann, ist eine gute Idee. Das könnte man vielleicht auch in eine zukünftige Version von Python einbauen, ohne daß älterer Code
inkompatibel wird.
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Mittwoch 24. August 2005, 06:44

Find ich gut... Vielleicht würde es helfen, einen Compiler zu bauen, den ich mir sehr wünschen würde...
Wir haben eine Seite dafür im Wiki:
http://www.pythonwiki.de/PythonWunschliste

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Tester

re

Beitragvon Tester » Donnerstag 25. August 2005, 09:52

Gibt es tatsächlich keinen Compiler, der Python in native Binaries oder
zumindest nach C übersetzt ? Ist so etwas geplant ?
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 25. August 2005, 10:03

Aus der FAQ http://www.pythonwiki.de/PythonDeForum/ ... d0279836ed:
Um ganz exakt zu sein, ist CPython eigentlich ein "kompilierender Interpreter"; er kompiliert allerdings Python-Quellcode (PY) in Python-Bytecode (PYC). Aber gesucht ist wahrscheinlich eine Lösung um Pythonprogramme ohne Interpreter auszuführen. Solche Lösungen sind [WWW] py2exe, [WWW] Installer, [WWW] cx_Freeze. Einen anderen Ansatz verfolgt Python2C oder [WWW] PyPy.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
henning
User
Beiträge: 274
Registriert: Dienstag 26. Juli 2005, 18:37

Beitragvon henning » Donnerstag 25. August 2005, 10:21

Meines wissens nach bauen py2exe & co. aber im grunde auch nur nen interpreter mit bytecode zusammen oder?

Was mich interessieren würde:
Gibt es eine Untermenge der Sprache Python die man z.B. nach C übersetzen könnte, wenn man evtl. noch Typfestlegungen angibt?

Meine Überlegung ist folgende: Auch wenn Python-Bytecode ja irgendwie was compiliertes ist, muss er ja auch noch interpretiert werden, was das ganze ja halbwegs unperformant macht.

Dass das "volle" Python hingegen kaum mit Performancegewinn "wirklich" zu compilen ist, ist aber natürlich auch klar, da die Sprache dazu viel zu flexibel ist (in vielerlei hinsicht).
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 25. August 2005, 10:25

Also ich wünschte mir auch einen echten Python compiler und dachte das PyPy in die richtige Richtung geht, s. http://www.python-forum.de/viewtopic.php?t=3696

Also für extrem preformante Geschichten muß man zumindest Teile in C auslagern, was ja auch viele Python-Built-In-Module sind.

Python's stärke liegt halt nicht in der Preformance der Ausführung. Allerdings ist das mit den heutigen Rechnern IMHO fast immer egal.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
henning
User
Beiträge: 274
Registriert: Dienstag 26. Juli 2005, 18:37

Beitragvon henning » Donnerstag 25. August 2005, 10:43

Mag sein, aber man fühlt sich trotzdem sicherer, wenn man ein Projekt startet, dessen Umfang man vorher schlecht abschätzen kann, wenn man weiß, dass man seinen Code einfach (durch das hinzufügen von type-definitionen) schneller machen kann und das Rad nicht nochmal stellenweise nach C portieren muss ,-)
(auch wenn mir pythons Geschwindigkeit bis jetzt immer gereicht hat)

Übrigens gibts in PEP3000 auch nen Vorschlag zu dem Thema:
http://www.artima.com/weblogs/viewpost.jsp?thread=89161

edit: Ich hab gerade Python2C entdeckt, den find ich persönlich auch sehr interessant, wenn er auch noch seeehr ausbaufähig ist, aber so mancher Beispielcode
wird doch schon recht beeindruckend umgewandelt.
(Auch wenn syntaktische Analyse, etc... bis her noch fehlt.)
ProgChild
User
Beiträge: 210
Registriert: Samstag 9. April 2005, 10:58
Kontaktdaten:

Beitragvon ProgChild » Donnerstag 25. August 2005, 13:41

henning hat geschrieben:Mag sein, aber man fühlt sich trotzdem sicherer, wenn man ein Projekt startet, dessen Umfang man vorher schlecht abschätzen kann, wenn man weiß, dass man seinen Code einfach (durch das hinzufügen von type-definitionen) schneller machen kann und das Rad nicht nochmal stellenweise nach C portieren muss ,-)
(auch wenn mir pythons Geschwindigkeit bis jetzt immer gereicht hat)

Zwei Punkte: In Python sind Alles Objekte. Python arbeitet mit Referenzen.

Aus diesen Zwei Prinzipien ergibt sich, dass in Python auch Funktionen Objekte sind, die als Pointer in z.B. einer Klasse representiert werden. Für den Interpreter würde eine statische Typendeklaration keinen geschwindigkeits Vorteil geben. Lediglich ein compiler würde davon profitieren, da der Interpreter die z.B. Funktionen immer noch nachschauen müsste.

Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot]