Seite 1 von 2
Ich spreche Internet...aber was genau? (Python zu JS, PHP)
Verfasst: Mittwoch 13. Juni 2012, 11:21
von Faerelis
Hallo Zusammen,
ich bin z.Z. dabei mich mehr mit WEB-Development zu beschäftigen, dabei sind HTML(!) und CSS kein Problem, aber für mich stellt sich die Frage was noch wichtig ist zu wissen. JavaScript steht zur Zeit bei mir auf dem Plan.
Ich habe folgende Fragen die ich leider bis jtz nicht ausreichend beantwortet sehen konnte...
...HTML5 ist dermaßen umfangreich und ausgeprägt, dass einiges mit HTML5 möglich ist wozu vorher andere Optionen genutzt werden musste (siehte PHP), man siehe das Canvas was mit HTML5 kommt und viele andere Elemente die HTML5 zur Zukunft des Web 2.0 machen. Im Blick auf die Fragestellung "hat PHP neben HTML5 eine Zukunft?", was wäre da eine realistische Anwort?
...Mein "lieblings" Sprache Python würde ich gerne umfangreicher einsetzen, auch in Sachen Webgestalltung, aber wo positioniert sich Python in bezug zu JavaScript und PHP, sind sie austauschbar zu Python? oder wo hat sich Python in der Webgestalltung eingeordnet?
Da ich selbst noch wenig Übersicht habe, ist es für mich verwirrend und dort wo ich bis jtz nachgeforscht habe wurden die Unterschiede, Gemeinsamkeiten, Anwendungsgebiete, Verhalten zu einander, nicht herausgearbeitet. Ich möchte mit Python auch an Webseiten arbeiten, kann ich es wie JS nutzen, oder ist es sowas wie PHP?
Sollte ich da was nicht richtig gefragt haben, werde ich mich gerne klarer ausdrücken, sollte es nötig sein.
MfG
P.
Re: Ich spreche Internet...aber was genau? (Python zu JS, PH
Verfasst: Mittwoch 13. Juni 2012, 11:29
von Hyperion
Dir fehlt irgend wie der komplette Background, was die essenziellen Webtechnologien und -protokolle anbelangt. Das kann man imho sehr einfach durch wikipedia / google selber recherchieren (wenn man sich die Mühe macht).
Machen wir es kurz und "lügen" ein wenig:
JavaScript -> Client (embedded im Webbrowser)
Python, PHP, *whatever* -> Server
Python hat im Webbereich also praktisch die gleiche Rolle wie PHP.
Vielleicht ist es am einfachsten, wenn Du Dir mal ein Web-Framework anguckst. Flask oder Bottle böten sich für einen schnellen Einblick an.
JS wird z.B. für Dinge wie AJAX gebraucht; also Logik, die Client seitig durchgeführt werden soll.
Weiterführendes kannst Du auch in unserem Wiki finden: wiki.python.de.
Re: Ich spreche Internet...aber was genau? (Python zu JS, PH
Verfasst: Mittwoch 13. Juni 2012, 11:41
von Leonidas
Faerelis hat geschrieben:...HTML5 ist dermaßen umfangreich und ausgeprägt, dass einiges mit HTML5 möglich ist wozu vorher andere Optionen genutzt werden musste (siehte PHP), man siehe das Canvas was mit HTML5 kommt und viele andere Elemente die HTML5 zur Zukunft des Web 2.0 machen. Im Blick auf die Fragestellung "hat PHP neben HTML5 eine Zukunft?", was wäre da eine realistische Anwort?
Naja, das ist so ein wenig wie Fragen ob Windows zu Zeiten von HTML noch Zukunft hat. Sind ganz verschiedene Sachen. Meist wird HTML am Server mittels PHP oder Python oder What-have-you generiert und dann im Browser dargestellt, mittels HTML und CSS.
Natürlich kann man die ganze Seite auch in JS und HTML realisieren, ein wenig so wie GMail das macht, aber um irgendwelchen Code der Serverseitig läuft wirst du nicht herumkommen.
Re: Ich spreche Internet...aber was genau? (Python zu JS, PH
Verfasst: Mittwoch 13. Juni 2012, 12:11
von Faerelis
Danke für die schnelle Antwort. Wie bereits angedeutet bin ich relative neu, von daher ergeben sich manchmal solche Grundsatzfragen.
JS = Client, Python etc. Server, klar; Aber mich wundert auch der Zusammenhang... JS ist eine Scriptsprache wie Python und hat Objekte, Strings, Prozeduren etc. wie Python, also einen (für meine Sicht) ähnlichen/gleichen Aufbau, warum ist dann nur JS auf ClientSeite nutzbar? Wenn ich mir das so ansehe, dürfte es doch auch möglich sein ganze Programme mit JS zu schreiben, so lange diese nicht auf den NutzerRechner zugreifen.
((Ich werde hier keine speziellen Fragen stellen, wie mache ich dies oder jenes, aber es werden nur immer solche speziellen Fragen beantwortet wenn ich irgendwo nachschaue. Möchte ich aber solche Fragen beantwortet haben (wie oben) dann bekomme ich Antworten "arbeite dich ein" oder "das ist schwer zu erklären". ))
Re: Ich spreche Internet...aber was genau? (Python zu JS, PH
Verfasst: Mittwoch 13. Juni 2012, 12:18
von webspider
Mittlerweile ist dank node.js JavaScript auch auf der Serverseite nutzbar (wenn auch der Fokus eindeutig auf paralleler, nicht-blockierender Programmierung liegt).
Re: Ich spreche Internet...aber was genau? (Python zu JS, PH
Verfasst: Mittwoch 13. Juni 2012, 12:26
von Hyperion
Naja, JS ist eben von Haus aus Sandboxed - Python nicht. Natürlich könnte man in einen Browser auch Python als Scriptsprache anbieten - gibt / gab dazu doch auch schon Ansätze.
Re: Ich spreche Internet...aber was genau? (Python zu JS, PH
Verfasst: Mittwoch 13. Juni 2012, 12:41
von Leonidas
Faerelis hat geschrieben:JS = Client, Python etc. Server, klar; Aber mich wundert auch der Zusammenhang... JS ist eine Scriptsprache wie Python und hat Objekte, Strings, Prozeduren etc. wie Python, also einen (für meine Sicht) ähnlichen/gleichen Aufbau,
Das siehst du ganz richtig. Essentiell sind Python und JavaScript nicht so unterschiedlich. In den Details natürlich unglaublich verschieden, aber das ist natürlich an dieser Stelle nicht relevant.
Faerelis hat geschrieben:warum ist dann nur JS auf ClientSeite nutzbar? Wenn ich mir das so ansehe, dürfte es doch auch möglich sein ganze Programme mit JS zu schreiben, so lange diese nicht auf den NutzerRechner zugreifen.
Da hast du ungenau formuliert, weil man kann das zweierlei auslegen (und wenn ich Hyperions und webspiders Posts anschaue, dann wird das auch so gemacht): "Warum ist nur JS auf Client-Seite nutzbar" oder "Warum ist JS nur auf Client-Seite" nutzbar.
Um die erste Formulierung zu beantworten: Weil Browser in der Regel nur Interpreter für JavaScript haben. Es gibt etwa Forks wie
Dartium, die neben JavaScript auch Dart verstehen, aber sogar die Entwickler raten vom Einsatz als ´Pprimärbrowser ab, weil das eher eine Tech-Demo ist und kein fertiges Produkt. Nun, natürlich kann man auch Sprachen zu JavaScript kompilieren, wie Beispielsweise CoffeeScript oder ClojureScript machen. Eine durchaus beachtliche Liste solcher Lösungen
findes du im CoffeeScript-Wiki.
Um die zweite Formulierung zu beantworten: Ist es nicht. Es spricht nichts dagegen JavaScript auch auf Server-Seite auszuführen. Die bekannteste Lösung dazu ist zurzeit Node.js, wovon ich aber nur mäßig begeistert bin. Daneben gibt es noch zig weitere Implementationen wie RingoJS etc.
Faerelis hat geschrieben:Möchte ich aber solche Fragen beantwortet haben (wie oben) dann bekomme ich Antworten "arbeite dich ein" oder "das ist schwer zu erklären".
Wo? Hier werden auch allgemeine Fragen oftmals durchaus umfangreich beantwortet.
Re: Ich spreche Internet...aber was genau? (Python zu JS, PH
Verfasst: Mittwoch 13. Juni 2012, 13:20
von Faerelis
(das mit dem Beantworten galt nicht diesem Forum)
Re: Ich spreche Internet...aber was genau? (Python zu JS, PH
Verfasst: Mittwoch 13. Juni 2012, 13:25
von Faerelis
Ok, danke an alle, das hilft meinem Verständnis schon weiter.
Im Grund liegt es also nur den Interpretern, wenn in den gängigen Browser, z.B. ein Python, Interpreter eingebaut wäre, könnte man, aufgrund der erweiterten Möglichkeiten Pythons, auf sensible Daten auf dem Nutzerbrowser zugreifen und sich die dollsten Sachen ausdenken? na das wäre ja ein Hackerparadis

Re: Ich spreche Internet...aber was genau? (Python zu JS, PH
Verfasst: Mittwoch 13. Juni 2012, 13:26
von webspider
Sandboxing, kennst du es?
Irgendwie werde ich den Eindruck nicht los Leute sollten sich besser zumindest elementare Programmierkenntnisse zulegen bevor sie anfangen über "Hacker" zu reden. Der Hinweis sich einzulesen kommt ja nicht von ungefähr.
Re: Ich spreche Internet...aber was genau? (Python zu JS, PH
Verfasst: Mittwoch 13. Juni 2012, 13:38
von Sr4l
Faerelis hat geschrieben:Im Grund liegt es also nur den Interpretern, wenn in den gängigen Browser, z.B. ein Python, Interpreter eingebaut wäre, könnte man ...
... könnte man Python im Browser nutzen, kann man aber nicht, weil alle großen Browser sich zur Zeit auf JavaScript beschränken. Theoretisch könnten sie jede Sprache unterstützen.
Faerelis hat geschrieben:... z.B. ein Python, Interpreter eingebaut wäre, könnte man, aufgrund der erweiterten Möglichkeiten Pythons, auf sensible Daten auf dem Nutzerbrowser zugreifen und sich die dollsten Sachen ausdenken? na das wäre ja ein Hackerparadis

Nein, wenn Browser Python unterstützen würden, dann würde die sich darum kümmern das man damit keinen Schaden anrichten kann, ist bei JS nicht anders.
Das "Hackerparadis" gibt es doch schon durch die Browser Plugins, also durch Java, Flash und Co.
Re: Ich spreche Internet...aber was genau? (Python zu JS, PH
Verfasst: Mittwoch 13. Juni 2012, 13:51
von Hyperion
Sr4l hat geschrieben:
Nein, wenn Browser Python unterstützen würden, dann würde die sich darum kümmern das man damit keinen Schaden anrichten kann, ist bei JS nicht anders.
Dann wäre es aber kein "Python" mehr, sondern eine Sprache, die eine Untermenge von Python darstellte

Sicherlich kommt es hier auf die Art und Weise an, wie man Python definiert. Ich sehe die Standardlib als essenziellen Bestandteil an - und der beinhaltet ja zig IO-Funktionalität.
Re: Ich spreche Internet...aber was genau? (Python zu JS, PH
Verfasst: Mittwoch 13. Juni 2012, 14:25
von deets
@Hyperion: du hast da eine komische Definition von "Untermenge einer Sprache". Die standardlib ist da sicher nur sehr beschraenkt bis gar nicht ausschlaggebend in allen anderen Kontexten von "Untermenge einer Sprache".
Selbstverstaendlich wuerde ein Browser-Python sowas wie itertools beinhalten. Aber ich halte os.path zB nicht fuer Teil des Sprachumfangs von Python...
Re: Ich spreche Internet...aber was genau? (Python zu JS, PH
Verfasst: Mittwoch 13. Juni 2012, 14:44
von Hyperion
deets hat geschrieben:
Selbstverstaendlich wuerde ein Browser-Python sowas wie itertools beinhalten. Aber ich halte os.path zB nicht fuer Teil des Sprachumfangs von Python...
Und wo würdest Du da eine (sinnvolle) Grenze ziehen?
Es mag natürlich immer auf den Kontext drauf ankommen, aber wenn ich irgend wo lese, dass ein Programm Python als Scriptsprache anbietet, dann würde ich erwarten, dass ich damit alles machen kann, was ein Stand-alone Python mir auch bietet. Aber vielleicht sehe ich das ja wirklich anders als die "Mehrheit"

Re: Ich spreche Internet...aber was genau? (Python zu JS, PH
Verfasst: Mittwoch 13. Juni 2012, 15:11
von deets
Es geht um die *Semantik* einer Programmiersprache. Die haengt nunmal nicht von Bibliotheken ab. ueblicherweise. ausser irgendwelchen sprach-internen Funktionen benoetigen die. Das waere dann aber sicher auch nix das Sandbox-relevant waere. *Ausser* jemand entwickelt eine Sprache mit eingebauten File-Operatoren oder sowas.
Re: Ich spreche Internet...aber was genau? (Python zu JS, PH
Verfasst: Mittwoch 13. Juni 2012, 15:14
von BlackJack
@Hyperion: Nach der Definition kann kein Browser Java.
Den Sprachumfang inklusive Standardbibliothek könnte man im Browser ja zur Verfügung stellen. Es ist halt nur der Sandkasten, der die Verwendbarkeit einschränkt. Wenn Du ein normales Python in einer jail-/chroot Umgebung ausführst, wo Python weder Schreibberichtigung auf dem Dateisystem hat, noch die Erlaubnis Sockets zu öffnen, ist das doch auch noch Python und nicht plötzlich eine Untermenge der Sprache.
Zumal im Browser schreiben auf Dateien innerhalb und lokal zum Sandkasten und öffnen von Sockets mit einer „same origin policy” ja durchaus möglich sein könnten.
Re: Ich spreche Internet...aber was genau? (Python zu JS, PH
Verfasst: Mittwoch 13. Juni 2012, 15:25
von Hyperion
Ok, ich sehe ein, dass ich da wohl die Lage falsch beurteilt habe.
@deets: Stimmt, die Semantik (und Syntax) prägen eine Sprache. Ansonsten könnte man ja sogar nicht von "JavaScript" sprechen, da ja letztlich jede Integration in ein Programm besondere Funktionalität zugänglich macht (JS im Browser != JS in Plasma / Qt). Da habe ich mich wohl verrannt.

Re: Ich spreche Internet...aber was genau? (Python zu JS, PH
Verfasst: Mittwoch 13. Juni 2012, 16:28
von CasualCoding.org
Re: Ich spreche Internet...aber was genau? (Python zu JS, PH
Verfasst: Mittwoch 13. Juni 2012, 20:44
von Faerelis
BlackJack hat geschrieben:...Wenn Du ein normales Python in einer jail-/chroot Umgebung ausführst, wo Python weder Schreibberichtigung auf dem Dateisystem hat, noch die Erlaubnis Sockets zu öffnen...
Das finde ich interessant; Wenn man ein Interpreter in einen Browser einbaut und diesem Interpreter, seitens des Browsers, nur beschränkte Rechte gibt, dann kann doch der Sprachumfang ja größer sein, als man durch beschränkte Rechte letztendlich nutzen kann. Von daher wäre es doch egal ob Browser verschiedenste Interpreter implementiert haben...oder wäre dann der Browser so weit manipulierbar, dass man diese beschränkten Rechte umgehen kann? Daraus wäre dann ja geschlossen, dass man dann keine zusätzlichen Interpreter implementiert.
ps: dies sind Fragen eines Wenigbewanderten, ich bitte um Nachsicht
pps: SolitaryMan; jtz haben wir alle gesehen, wo du mich überall gefunden hast, danke
ppps: ich weiss was Hacker und was Hacker sind, aber Reden und Reden sind zwei Sache...
Re: Ich spreche Internet...aber was genau? (Python zu JS, PH
Verfasst: Mittwoch 13. Juni 2012, 22:24
von deets
Es ist so: wenn die Sprache es erlaubt, dass zB Maschinen-Code generiert wird (explizit, oder durch Ausnutzung von Luecken in zB JIT-Implementationen), dann gibt es nur ein Mittel, um eine Sprache einzufangen: Sandboxen, wie zB Chrome sie implementiert. Wenn die Bug-frei sind, dann kann die Sprache versuchen was sie will, sie wird nicht rauskommen.
Python ist zwar von der Sprache selbst her ziemlich sicher, d.h. wenn man alle System-nahen Module abklemmt, dann ist man da recht sicher. Aber sie ist nicht mit dem Ziel geschrieben worden eine sichere Sprache zu sein.
Insofern muesste man sie eben einsperren, wie Chrome das ja auch tut.
Aber das alles ist theoretisches Geschwaetz - auf Browsern ist im Moment JS verfuegbar. Punkt. Mittels Plugins koennte man auch Python verfuegbar machen, aber das ist nicht wirklich realistisch. Bliebe noch sowas wie die Chrome Pepper API - aber dann ist man halt auf 30% des Browsermarktes beschraenkt.