PHP Umsteiger - einige Fragen

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.
Antworten
xxanonymousxx
User
Beiträge: 7
Registriert: Sonntag 25. September 2011, 14:21

HI Leute,


ich kann bisher PHP/MYSQL (ohne Probleme ..... eigene Programme und "Hacks" wie Filtern von Infos anderer Seiten .... Begriffe wie arrays, for/while-Schleifen usw. sind mir geläufig und verstehe Sie alle (in der Web-Programmierung))

Als ich beim C4 einen Vortrag über die Nachteile von PHP gehört hab und Alternativen gehört habe (Python) hab ich mich fleißig ans Python lernen gemacht (mit dem ebook -> The Hard Way is the Easy Way - Learn Python (oder so enlich))

schnell musste ich feststellen, das dies nicht auf Webprogrammierung spezialisiert war - kein Problem .... kurz gegoogelt und auf Django gestossen ;) ( welches ich mir noch genauer anschaun muss)

nun meine Fragen :

1. Gibt es ein sehr gutes Wiki, wo es eine Liste von Python-Befehlen gibt ? ( wie bei php -> php.net )
Oder muss man Befehle durch Module extern erst einbinden ? falls ja, wo finde ich diese und in welcher Sprache sind diese geschrieben ? Bin da wohl sehr von php verwöhnt, einfach den Befehl eingeben und es frunzt ;) (Ich mein so Befehle wie string-Buchstaben-Filtern oder bcdiv (wo man sagen kann wieviele Nachkommastellen ausgegeben werden sollen))

2. (An die Open-Source-Gemeinde und Hacker) Wenn PHP so unstrukturiert ist und so unvorteilhaft - warum sind dann alle bekannten Open-Source-Projekte (z.B. Wikipedia) in PHP ?

3. (Lehnt sich an 1. an) Gibt es kurze knappe Infoseiten wo gezeigt wird, wie Django/Python mit Session, POST/GET-Variablen, MYSQL Anbindung arbeitet !?

4. (Allgemeine Frage) mit PHP/Python kann man ja auch Software für außerhalb des Webs programmieren. Nun denke ich, das Programmiersprachen wie Python im Gegensatz zu C (Compilersprachen) sehr langsam ist, weil der Code ja bei jeder Abfrage erst neu interpretiert werden muss, welches aber bei Compilersprachen ja nur 1x gemacht werden muss) wann stoßen Interpretersprachen auf ihre Grenzen ??? hab schon von Multimedia-Interface in Python gehört ......



so das wars ;) - dankr schonmal für eure Antworten ;)



mfg

XX
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Zu 1) http://docs.python.org/
Zu 2) PHP hat den "Vorteil" speziell für das erstellen von dynamischen Webseiten "designed" worden zu sein. Desweiteren kommen da größtenteils historische Gründe mit hinzu.
Zu 3) Die Informationen findest du alle in der Dokumentation des Webframeworks deiner Wahl, im Fall von Django hier. Beachte dass man bei relationale Datenbanken üblicherweise ein ORM verwendet.
Zu 4) Zum einen kann man nicht strikt zwischen Sprachen die interpretiert und kompiliert werden unterscheiden, zum anderen sind Interpreter zumindest theoretisch schneller als Compiler. Der Python Interpreter des PyPy Projektes ist inzwischen schnell genug um Videos in Echtzeit zu analysieren.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

ad 1: Python strukturiert stärker als PHP und gruppiert so die meisten Funktionen in Module oder als Methoden in Klassen. Auf die Python-Dokumentation wurde schon verlinkt. Sie ist recht gut. Es hilft bei der Programmierung auch, immer den Python-Interpreter in einer Shell (aka Eingabeaufforderung) laufen zu lassen und dann dort zu Befehlen, die man nicht kennt mit "help" (z.B. `help(str.lower)`) kurze Erklärungen anzuzeigen oder einfach mal auszuprobieren, was der Befehl wohl macht.

ad 2: Alle bekannten Projekte ist sicherlich eine Übertreibung. PHP hat aber den Vorteil, dass man auf jedem X-beliebigen Hoster im Internet einfach ein paar PHP-Seiten abladen kann und schon funktioniert es. Andere Scriptsprachen wie Python, Ruby, JavaScript usw. benötigen spezielle Ablaufumgebungen, die sich Hoster in der Regel teurer bezahlen lassen. Bei Heroku kann man aber z.B. Ruby-Anwendungen (und mit nur wenig mehr Arbeit inzwischen auch Django-Anwendungen) noch bequemer hosten. Zum Spielen kostet das auch nichts, danach lassen sie sich den Komfort aber recht teuer bezahlen. Für Django gibt es ebenfalls spezialisierte Hoster, die ähnlich vorgehen, d.h. man kann das Projekt direkt aus der Versionsverwaltung (meist git, manchmal auch mercurial) deployen. Hinzu kommt, dass die wenigsten erfolgreichen Projekte streng geplant wurden, sondern aus Provisorien und schnellen Hacks erwachsen sind - und diese gingen mit PHP offenbar recht einfach zu bauen. Die Macher von Wordpress haben sich garantiert am Anfang nicht träumen lassen, einmal die beliebteste Blogging-Software, die sich inzwischen ja auch CMS nennt, zu bauen. Und schließlich gilt: Ein guter Entwickler kommt auch mit PHP klar. PHP macht es leider den schlechten Entwicklern sehr einfach, auch verdammt schlechten Code zu schreiben. Bei Python finde ich das nicht so extrem.

ad 3: Django hat eine verdammt gute Dokumentation inklusive einem guten Tutorial. Dort sollten sich eigentlich deine Fragen beantworten lassen. Das Request-Objekt, welches einer View-Funktion übergeben wird, hat entsprechende Attribute. Es auch gibt mindestens ein freies Buch und wenn das nicht reicht, findet man auch einige deutschsprachige Ressourcen, z.B. http://www.django-workshop.de/ was mir Google gerade lieferte.

ad 4: Python ist auch nicht langsamer als PHP (vielleicht sogar schneller) und wenn GUIs oder sonst was programmiert werden, sind das eh alles native Bibliotheken, d.h. Performance-Probleme (im Vergleich zu C) sind in der Praxis kaum relevant. Dafür arbeitet man in der Regel schneller und kann ein bisschen dieser Zeit dann ggf. in Performance-Optimierungen stecken. Möglicherweise ist auch Pypy schneller als CPython, die Referenzimplementierung.

Wenn's dir um Web-Programmierung geht und du ganz weit vorne sein willst, lohnt IMHO auch ein Blick auf Node.js, vielleicht zusammen mit Express oder Strata als Web-Rahmenwerk. Node selbst ist Faktor 2-3 schneller als CPython und durch den Zwang, alles I/O event-gesteuert zu programmieren, kann man sehr effiziente Server-Systeme bauen. Allerdings gibt es von Zed Shaw noch kein "Learning JavaScript the Hard Way" ;)

Stefan
xxanonymousxx
User
Beiträge: 7
Registriert: Sonntag 25. September 2011, 14:21

danke ;)

da hab ich ganz viel zu lesen/ zu tun ;)
xxanonymousxx
User
Beiträge: 7
Registriert: Sonntag 25. September 2011, 14:21

interpreter Sprachen sind schneller als compiler Sprachen ?????


die Sprache ist relativ egal, da ich einen root server besitze und alles drauf machen kann, was ich will ;P

wie gesagt, ich schau mir mal die Alternative zu php an ...... will auch später mal in "richtige Programmierung" schnuppern - also C ..... von OOP lass ich im Moment die Finger ........

Java/JavaScript ist ja für dynamische Darstellung .... das schau ich mir auch noch an - aber danke ... ich schau mir The Hard Way auch mal ;)


mfg

XX
BlackJack

@xxanonymousxx: Die Grenze zwischen Compiler und Interpreter ist teilweise fliessend. Java und Python (zumindest die Referenzimplementierung) haben Compiler die den Quelltext in Bytecode compilieren. Der wird dann von einem Interpreter abgearbeitet. Ausserdem besteht die Möglichkeit einen JIT-Compiler vor/während der Ausführung den Bytecode in Maschinensprache kompilieren zu lassen.

Und diese Kombination kann tatsächlich schneller sein als statisch erzeugter Maschinencode, weil JIT-Compiler zum Beispiel auch noch Laufzeitinformationen in die Übersetzung einbringen können.

OOP sollte man sich IMHO eigentlich auch als PHP-Programmierer mittlerweile angeeignet haben. Bei Python kommt man da nicht wirklich drum herum.

Bei „Java/JavaScript” scheinst Du zwei total verschiedene Sprachen in einen Tops zu werfen. Java ist sicher nicht nur für „dynamische Darstellung” da, sondern eine allgemeine Programmiersprache, die für alles Mögliche verwendet wird, und bei JavaScript meinte sma durchaus auch die Server-Seite und nicht nur beim Client im Browser. JavaScript hat zwar genau wie PHP das Image eine Nischensprache für eine bestimmte Anwendung zu sein, ist aber deutlich besser für andere Aufgaben geeignet als PHP. Und wird in letzter Zeit auch recht oft ausserhalb des Browsers eingesetzt. Zum Beispiel als Abfragesprache in diversen NoSQL-Datenbanken und eben mit node.js als Sprache um Server zu implementieren.
Antworten