python-thread


Seite: 1 2
Autor Beitrag
xame
17.08.07 - 21:21:50 Uhr

is python das php der zukunft? oder was is python , mal in 3 sätzen erklärt? unterschiede? wer kann python und wer verwendet es?die meisten (free) hoster bieten das ja (noch ?) nicht an

hab da keine ahnung von ^^

aber python könnte ja namensmässig gut zu pytal passen
(und ja hab noch nirgends bei pytal was darüber gefunden)
Achtzig
17.08.07 - 21:26:54 Uhr

Python ist die geilste Interpretersprache die ich bis jetzt kennengelernt habe. Schau Dir einfach Mal die Quelltexte an. Keine überflüssigen Zeichen. Komplett Objektorientiert. Als Pascal-Programmierer vermisse ich allerdings die Destruktoren (http://www.python-forum.de/topic-10839.html habe die Pascal-Struktur dennoch aufgezwungen. Aber nicht petzen).
sinn3r
17.08.07 - 21:33:56 Uhr

ich kann auch ein wenig python. finde das recht cool

aber das schwerste ist wohl, das die syntax keiner anderen Sprache gleicht.
wolfgangfellger
17.08.07 - 22:07:09 Uhr

Die Syntax von Python ist wirklich sehr elegant. Sogar der ternäre Operator ist in Python lesbar:
  1. def func(value, bla):  
  2.     return value if bla else 0  

Blöcke grundsätzlich per Einrücken, daher keine Markierungszeichen wie {}, deren Verschachtelung ein Mensch sowieso nur mit viel Aufwand nachvollziehen kann.

Hinzu kommen Elemente aus der funktionalen Programmierung.

Teilermenge = [x for x in range(1, 43) if 42%x == 0]

Ja, das ist eine ganz normale Listendefinition. Und immer noch keinesfalls kryptisch, obwohl es extrem knapp formuliert ist.
ixiter
17.08.07 - 23:46:13 Uhr

Ich kenne Python nicht.
Das erste Beispiel ist zwar nachvollziehbar, aber einen wirklichen Vorteil kann ich darin nicht sehen. Es ist ungewohnt weil die Syntax anders ist als in anderen Sprachen. Will man z.B. von PHP zu Python umsteigen, muss man also erst einmal Vokabeln und Syntax lernen. Das Argument, dass man z.B. keine {} benötigt sondern alles durch Einrückungen bestimmt, finde ich unzureichend. Meine PHP Codes kann man genauso gut lesen, da ich neben {} ohnehin konsequent mit Einrückungen arbeite.

Das zweite Beispiel empfinde ich sehr wohl als kryptisch. Ohne vergleichenden PHP Code ist mir nicht klar, was das macht. Die Syntax '42%x' finde ich sehr hyroglyphisch, was auch immer es bezwecken mag.

Wichtig ist ja auch das primäre Einsatzgebiet einer Sprache. Ob Python für die Webentwicklung die optimale Sprache ist, kann ich nicht entscheiden. Dagegen spricht aber schon die ungewohnte Syntax.
Man kann sehr schnell und einfach PHP, Delphi, Pascal, C, C++ und ein paar andere lernen, wenn man eine davon kennt. Eben weil sie sich so ähneln. Dass das bei Python nicht der Fall ist, betrachte ich zunächst einmal als immensen Nachteil.

Gibt es eine Enwicklungsumgebung mit den Qualitäten von ZEND IDE oder .NET für Python?

Von Python lese und höre ich immer wieder seit ca. 2 Jahren. Eine Webanwendung wie ein Forum oder CMS habe ich bisher nicht gesehen. Kennt da jemand etwas, das auch im Produktiveinsatz ist und mehr als ein Gerüst darstellt?
wolfgangfellger
18.08.07 - 00:26:25 Uhr

>Das erste Beispiel ist zwar nachvollziehbar, aber einen wirklichen Vorteil kann ich darin nicht sehen.

Es ist keine Sonderzeichenwüste wie bla?value:0 .

>Es ist ungewohnt weil die Syntax anders ist als in anderen Sprachen.

Soviel anders ist sie nicht, wie kommst du darauf? Und da sie sehr aufgeräumt ist, sollte es keinerlei Probleme geben.

>Meine PHP Codes kann man genauso gut lesen, da ich neben {} ohnehin konsequent mit Einrückungen arbeite.

Eben, damit sind die {} vollständig redundant. Wozu also hinschreiben?

>Das zweite Beispiel empfinde ich sehr wohl als kryptisch.
>Ohne vergleichenden PHP Code ist mir nicht klar, was das macht.

Der Variablenname sollte einen Hinweis geben. In PHP kriegst du das in einer Zeile nicht lesbar hin.

>Die Syntax '42%x' finde ich sehr hyroglyphisch, was auch immer es bezwecken mag.

Der Operator % bewirkt präzise das gleiche wie in PHP, C oder Java: Modulus, also Divisionsrest. Ja, da hätte man "mod" von Pascal nehmen können, aber nichts ist perfekt

>Gibt es eine Enwicklungsumgebung mit den Qualitäten von ZEND IDE oder .NET für Python?

http://en.wikipedia.org/wiki/List_of_...for_Python
Wie gut die sind, keine Ahnung. Mir war das mitgelieferte IDLE bisher noch gut genug.

>Kennt da jemand etwas, das auch im Produktiveinsatz ist und mehr als ein Gerüst darstellt?

Ist Youtube und Google Produktiveinsatz genug?
ixiter
18.08.07 - 23:39:34 Uhr

> Es ist keine Sonderzeichenwüste wie bla?value:0 .

Naja .. Sonderzeichenwüste. Bisschen übertrieben. Ich finde die PHP Syntax sehr leicht zu lesen und wende sie regelmäßig an.
Deine Verwendung des Begriffs "Sonderzeichenwüste" ist das rethorische Mittel der Übertreibung. Es wird dann angewendet, wenn eine Sache an sich nicht das hergibt, was durch die Übertreibung aber als Tatsache hingestellt werden soll. Zusätzlich zur Übertreibung verwendest du auch noch eine Metapher, wodurch es dann völlig ins Unsachliche entgleist.

> Soviel anders ist sie nicht, wie kommst du darauf? Und da sie sehr aufgeräumt ist, sollte es keinerlei Probleme geben.

Ich finde es nachteilig, dass Variablen nicht deutlich erkennbar sind. Probleme gibt es schon, weil ich dadurch Variablen nicht von Text, Schlüsselwörtern, Konstanten usw. unterscheiden kann.

> Eben, damit sind die {} vollständig redundant. Wozu also hinschreiben?

Um deutlicher zu machen, wo ein Block anfängt und wo er aufhört. Die Einrückung alleine stellte eine hohe Fehlerquelle dar. Einmal zu oft auf space oder tab gedrückt, und schon hat man einen Fehler im Code.

> Der Variablenname sollte einen Hinweis geben. In PHP kriegst du das in einer Zeile nicht lesbar hin.

Der Operator % bewirkt präzise das gleiche wie in PHP, C oder Java: Modulus, also Divisionsrest. Ja, da hätte man "mod" von Pascal nehmen können, aber nichts ist perfekt


Der Variablenname sagt mir nichts. Wie würde das denn nun in PHP aussehen?

> http://en.wikipedia.org/wiki/List_of_...for_Python
Wie gut die sind, keine Ahnung. Mir war das mitgelieferte IDLE bisher noch gut genug.


Ist IDLE für Windows und Linux? Ich werde nachher auch mal in der Wiki nachlesen.

> Ist Youtube und Google Produktiveinsatz genug?

Warum so ein herablassendes , Wolfgang? Es besteht kein Grund die Augen zu verdrehen. Ich stelle lediglich Fragen. und hoffe das die mir von jemandem beantwortet werden, der sich in der Sache besser auskennt. Eine Gegenfrage ist nur ein rethorisches Mittel um einer Antwort auszuweichen, aber eben keine Antwort. Es zwingt den eigentlichen Fragesteller zur Antwort.
Nun denn, ich möchte deine Frage trotzdem beantworten.

Nein. MSN, Siemens, RWE und viele andere reichen mir auch nicht, um .NET Sprachen als Web Sprachen ausreichend gut zu heissen. Mich würde viel mehr interessieren, welche "großen" OpenSource Projekte es gibt. pyForum, pyCMS oder um konkreter zu werden evtl. ein pyJoomla. Sowas in der Art. Wo man auch mal sehen kann wie etwas umgesetzt wird. Bisher habe ich nur mitbekommen, das Python nicht primär als Websprache konzipiert ist und man zuerst einmal ein Web Framework eines Drittanbieters einbinden muss. Will man das nicht, muss man Sessions, Cookies, HTTP Header usw. alles erst einmal selber schreiben. Also hunderte oder sogar tausende Zeilen Code, bevor man eine Webseite überhaupt ausliefern kann. Dazu braucht es dann auch noch das Know How wie man überhaupt HTTP Header usw. selber generiert, was dabei zu beachten ist usw. usf.
Als Frameworks bieten sich zwei konkurrierende Produkte an, soweit ich mich erinnern kann. Vertraut man auf das eine, hat man das Lager des anderen sofort gegen sich.

Es gibt meiner Meinung nach viel mehr und auch wichtigere Aspekte die den Einsatz einer Sprache rechtfertigen. Eine vermeintlich einfache Syntax ist längst nicht alles. Wenn es nur darum ginge, sollte man sich mal AppleScript anschauen. Ein auf wenige Vokabeln reduziertes Englisch, mit dem man wunderbar lesbare Scripte schreiben kann. Es liest sich fast wie ein einfacher englischer Text. Dort ist es z.B. möglich sowas zu schreiben:

Set the name of the first user of the userlist to "Wolfgang"

Die Sprache kommt gänzlich ohne {} und Einrückungen aus. Zu Schlüsselwörtern die einen Block einleiten, gibt es auch ein entsprechendes Schlüsselwort, das das Ende des Blocks beschreibt. Logischerweise mit dem Wort End eingeleitet. Einrückungen sind kein Bestandteil der Syntax, sondern dienen nur der Lesbarkeit.

  1. Tell application "Photoshop"  
  2.   Tell document 1  
  3.     draw line from top left to bottom right  
  4.   End Tell  
  5.   save all documents  
  6. End Tell  


Die AppleScript Beispiele können etwas falsch sein. Aber sie beschreiben das Prinzip in AS.
Wen es interessiert, der kann ja bei Apple gucken.



________________
Pytalhost Suche - Durchsuch die Pytal Userseiten
chemiegik
19.08.07 - 00:45:48 Uhr

Drei OpenSource-Projekte in Python sind:
Trac - ein Enwickler-Wiki
MoinMoin - ein normales Wiki und
PyLucid - ein CMS das ich noch bei google gefunden hab um nicht nur Wikis in der Liste zu haben.
wolfgangfellger
19.08.07 - 14:23:36 Uhr

>Naja .. Sonderzeichenwüste. Bisschen übertrieben. Ich finde die PHP Syntax sehr leicht zu lesen

Dann werden wir uns in diesem Punkt nicht mehr einig. Ich finde die Python-Lösung wesentlich verständlicher.

>Deine Verwendung des Begriffs "Sonderzeichenwüste" ist das rethorische Mittel der Übertreibung.

Hey, statt Eulen nach Athen zu tragen, könntest du auch einfach sagen "Lass mich doch bitte mit dem Quatsch in Ruhe" Ok, tut mir leid, dich mit rhetorischen Figuren gelangweilt zu haben. Ich versuche mich zu bessern.

>Ich finde es nachteilig, dass Variablen nicht deutlich erkennbar sind.

Weil vor den Bezeichnern kein $ steht? Naja. Ich halts für überflüssig.
Kann daran liegen, dass ich mit Pascal angefangen habe und vergessene $ immer noch zu meinen Lieblingsfehlern beim Schreiben von PHP-Code gehören.

>Probleme gibt es schon, weil ich dadurch Variablen nicht von Text, Schlüsselwörtern, Konstanten usw. unterscheiden kann.

Text wird in Anführungszeichen eingeschlossen; dass man versehentlich ein Schlüsselwort verwendet wird vom Syntaxhighlighting verhindert (in den seltenen Fällen wo ein solcher Variablenname Sinn machen würde muss man sich eben was anderes überlegen); und Konstanten gibt es in Python in dieser Form gar nicht, nur per Namenskonvention (zugegeben, ein Nachteil).

>> Eben, damit sind die {} vollständig redundant. Wozu also hinschreiben?[/i]
>Die Einrückung alleine stellte eine hohe Fehlerquelle dar. Einmal zu oft auf
>space oder tab gedrückt, und schon hat man einen Fehler im Code.

Genau so gut könnte ich sagen "einmal zu oft/wenig auf { oder } gedrückt, und schon hat man einen Fehler im Code". Einrückung hat dabei den großen Vorteil, dass man den Fehler fast nicht übersehen kann, weil man als Mensch die Einrückung visuell einfach viel besser erfassen kann als verschachtelte Blockmarkierungen mitzuzählen.
Ich halte die gezwungene Synchronisation zwischen Blöcken für Mensch (Einrückung) und Maschine (Blockmarkierung) für eine große Fehlerquelle, die von Python eliminiert wird.

>Der Variablenname sagt mir nichts. Wie würde das denn nun in PHP aussehen?

Huch, wirklich nicht? Die Teilermenge einer Zahl ist die Menge natürlicher Zahlen, die bei einer Division einen Rest von 0 ergeben.
Abgesehen von der Optimierung, nur den Bereich zwischen 1 und der Zahl (hier 42) zu betrachten, ist der Python-Code praktisch die Definition hingeschrieben.

In PHP ginge zum Beispiel:
  1. $Teilermenge = array();  
  2. for($x = 1; $x<43; $x++)  
  3. {  
  4.     if(42%$x == 0)  
  5.         $Teilermenge[] = $x;  
  6. }  


>Ist IDLE für Windows und Linux?

Ja.

>Warum so ein herablassendes , Wolfgang?

Hmm. Herablassend war das nun nicht gemeint. Allerdings kam mir deine Frage nach "nutzt das wer produktiv" doch etwas schnippisch vor. Vermutlich falsch verstanden, denn:

>Mich würde viel mehr interessieren, welche "großen" OpenSource Projekte es gibt.

Du fragtest nach "Produktiveinsatz im Web". Wenn du dich spezifisch für verfügbare OpenSource-Lösungen interessierst, musst du jemand anderen fragen, da ich hier noch keine Erfahrung gesammelt habe.
Ich kann dir an dieser Stelle lediglich Zope (Framework inklusive Server) und Plone (CMS) nennen.

>Bisher habe ich nur mitbekommen, das Python nicht primär als Websprache konzipiert ist und man zuerst
>einmal ein Web Framework eines Drittanbieters einbinden muss.

Richtig. Python ist eine All-Purpose-Sprache wie Java oder Perl.

>Als Frameworks bieten sich zwei konkurrierende Produkte an, soweit ich mich erinnern kann.

Ich nehme an, das schon genannte Zope sowie Django. In wie weit die sich überschneiden kann ich dir nicht sagen, die Konzeption unterscheidet sich ja schon etwas.

>Es gibt meiner Meinung nach viel mehr und auch wichtigere Aspekte die den Einsatz einer Sprache rechtfertigen.

Selbstverständlich. Deshalb werde ich auch weiterhin PHP verwenden, und sei es nur der Verfügbarkeit und Standardbibliothek wegen. Aber wieso Python deshalb keine Möglichkeit geben, seine Eignung für Webprogrammierung zu beweisen?

>Eine vermeintlich einfache Syntax ist längst nicht alles.

"Einfach" ist das falsche Wort. Was mich an Python fasziniert, ist die gelungene Kombination einer aufgeräumten Syntax und gleichzeitig eines mächtigen Sprachumfangs. Es fehlen nicht, wie in BASIC oder Pascal, Sprachelemente wie der ternäre Operator oder Inkrements. Gerade dadurch, dass auch Einschläge aus der funktionalen Programmierung verfügbar sind, kann man in Python oft knapp formulieren, ohne dass es dabei so kryptisch wird wie in C. Abgerundet wird das durch den Verzicht auf Blockmarkierungen, was weitere Schreibarbeit erspart.


Dein Beispiel von AppleScript ist vermutlich ähnlich im Konzept wie BASIC: Einfache Syntax durch eingeschränkten Sprachumfang.
Ob man als Blockmarkierung nun die Symbole "{" / "}" oder "Tell" / "End Tell" verwendet, bleibt sich relativ gleich. Das macht Pascal (und optional PHP) ja auch nicht anders.
fraunholz
04.11.15 - 18:18:01 Uhr

Hallo zusammen,
wird Python bei Pytal unterstützt?
Wollte nur fragen, weil ich ein Skript für einen Bilderwechsel hätte.

Vielen Dank.

Viele Grüße
Reinard
Seite: 1 2

- Obige Beiträge stellen keine Äußerung oder Meinung von Pytal oder dessen Betreiber dar -