Seite 2 von 2

Re: Python 2 oder Python 3 lernen?

Verfasst: Dienstag 24. Mai 2011, 18:03
von Jooohny.py
Ich glaube Flash wird uns noch lange erhalten bleiben,
da das programmieren, damit viel leichter ist als mit Javascript.

Ich habe selber lange Zeit mit Javascript programmiert,
und kann mir deshalb ein Urteil darüber erlauben.

Die performence von Javascript kann man mit der von Flash überhaupt nicht vergleichen.

Das Programmieren mit Javascript ist wegen der Eigenheiten der Browser sehr mühselig,
oft kommt es bei größeren Projekten vor das man mit Browserweichen arbeiten muss,
heißt also denselben Code mehrmals schreiben, damit jeder Browser damit zurechtkommt.

Nur eins von vielen Beispielen ist die tranzparenz hier arbeiten alle Browser mit unterschiedlichen Funktionen(-moz-opacity:,filter:alpha(opacity=) und opacity:).

Ich wollte mal einen WYSIWYG Editor programmieren und musste den Code fast für jeden Browser einzeln schreiben :x

Das ist auch ein Hauptgrund warum Frameworks wie etwa JQuery so beliebt sind.

Bei Flash programmiert man halt nur eine Version und sie geht überall,
und die performence ist viel besser,
Adobe baut in der nächsten Version des Flash Player eine 3D API ein,
dann wird es möglich sein richtige 3D Spiele zu programmieren,
das ist mit webGL wegen der schlechten performence von Javascript nicht möglich,
zumindest nicht so anspruchsvoll.

Ich selber werde aber trotzdem nach Python weiter Javascript lernen,
da ich nicht vor habe größere Sachen auf dem Client zu entwickeln,
wenn wäre aber wie für viele andere auch Flash die erste Wahl.

Zurück zum Thema:
Ich wollte nichts schlechtes zu Python sagen,
ich wollte nur sagen das die ersten Schritte mit PHP leichter ablaufen als mit Python also vom Einrichten bis zum Hello World,
selbstverständlich ist das programmieren mit Python leichter als mit PHP aber die ersten Schritte bei der Webentwicklung könnten leichter sein.
Am besten so leicht wie das Entwickeln von Destopanwendungen,
man installiert Python und ruft IDLE auf und schon kann es los gehen,
so leicht müsste das mit der Webentwicklung auch sein.

Am besten wäre es wenn man den Python Installer auf einem Server installiert das man dann direkt wenn man eine Pythondatei anlegt wo print "Hello World :)" drin steht,
der Interpreter die Datei beim Aufruf der Datei über den Browser ausführt,
und man sich nicht erst einlesen muss welches Tool(mod_python usw) man nehmen muss,
oder wie das entwickeln darüber geht :?

Das wenn man sich einmal eingelesen hat,
das als einfach ansieht ist mir klar,
aber es könnte noch viel leichter sein,
und ich finde da sollte man noch nachbesser damit Python auch weiterhin sein killer kriterium der Einfachheit beibehält :D

Ein Python Plug In für den Browser wäre auch nicht schlecht,
ich hatte auch C# in betracht gezogen,
weil man damit viel machen kann ASP.net, Silverlight und Destopanwendungen(leider nur für Windows deshalb habe ich mich für Python entschieden),
ich denke wenn es so ein Plug In mal geben würde,
würden noch mehr zu Python wechseln,
und vielleicht sogar Flash verdrängen weil die Syntax von Actionscript im Vergleich zu Python viel schwerer ist,
das Plug In müsste aber so schnell starten wie das Flash Plug In,
ein Hauptgrund keine Applets im Browser einzusetzen ist der langsame Start von dem Applet.

Re: Python 2 oder Python 3 lernen?

Verfasst: Dienstag 24. Mai 2011, 22:04
von BlackJack
@Jooohny.py: Die ”performence” (sic!) einer Programmiersprache gibt es nicht, du kannst höchstens Implementierungen miteinander vergleichen. Und JavaScript mit Flash zu vergleichen ist sowieso ein wenig problematisch, weil das eine eine Programmiersprache ist und das andere eine Programmiersprache mit einer ”Grafik-/Laufzeitumgebung”. Du müsstest dann schon entweder nur die Programmiersprachen miteinander vergleichen, also JavaScript und ActionScript. Oder zu JavaScript noch irgend eine Umgebung dazu nehmen, damit die Funktionalität mit Flash verglichen werden kann.

Von welcher Implementierung sprichst Du denn? Die von Microsoft? V8? Da sind ziemliche Unterschiede in der Performance.

Unterschiede in den Browsern gibt es nicht mehr wirklich. Wer selber Browserweichen programmiert, verwendet die falschen Bibliotheken. Du erwähnst ja jQuery selbst. So etwas gehört heutzutage zum clientseitigen Teil einer Webanwendung einfach dazu. ”Nacktes” JavaScript für mehrere Browser mit Flash zu vergleichen, wäre Unsinn.

Das man in Flash nur eine Version programmiert, die dann überall läuft, stimmt nicht. Zum Beispiel schon mal dort nicht wo es kein Flash gibt.

Wenn die Leistungsfähigkeit von JavaScript so schlecht wäre, könnte man damit wohl kaum einen PC-Emulator im Browser laufen lassen, auf dem ein Linux läuft. Bei 3D-Anwendungen dürfte das also kein Problem sein. Die sind von Hardwarebeschleunigung abhängig und hängen sicher nicht so sehr an der Geschwindigkeit der Implementierung der Sprache in der die Spiellogik geschrieben ist.

Webanwendungen in Python könnten nicht viel einfacher sein. Schau Dir bitte nochmal das "Hello World"-Beispiel in Bottle an und sag was man da noch einfacher machen könnte. Ausser die Programmiersprache direkt mit Templates zu vermischen, geht das nicht wirklich einfacher. Und *den* Weg möchte sicher niemand gehen, der weiss warum er PHP nicht haben will. Das Killerkriterium bei Python ist mitnichten ”Einfachheit” sondern der Fokus auf Lesbar- und Wartbarkeit. Da gehört eine gewisse Einfachheit dazu, aber die ist kein Selbstzweck.

Die Vorkonfiguration eines Webservers mit einer WSGI- oder FastCGI-Schnittstelle ist keine Aufgabe der Programmiersprache. Da musst Du die Entwickler deines Webservers oder der Distribution drauf ansprechen.

Und wir reden hier auch von Web*anwendungen* und nicht einfachen 1:1-Abbildungen von URLs auf Skriptdateien wie bei PHP. Vergleich mal den Aufwand zum Beispiel bei den üblichen Jave-Rahmenwerken für Webanwendungen mit dem bei Python-Rahmenwerken. Dann sag noch mal Python müsste einfacher werden. ;-)

Ich würde an Deiner Stelle nicht auf ein Python-Plugin für Browser warten. Und auch die anderen Sprachen werden dort IMHO in Zukunft immer mehr JavaScript weichen. Im Gegensatz zu Java-Applets, Silverlight, oder Flash ist das nämlich wirklich nahezu universell vorhanden. Und mit HTML5 und dem was da so mit kommt, wird auch die Umgebung für JavaScript-Programme im Browser immer interessanter. Zusätzlich findet man JavaScript auch in immer mehr anderen Produkten als eingebettete Sprache, so dass es viele Leute gibt, die diese Sprache ”sprechen” und es sich umgekehrt mehr lohnt es zu lernen. Im Gegensatz zu einer ”Nischensprache” wie ActionScript.

Bei Java-Applets war ein langsamer Start früher vielleicht mal ein Problem. Ich denke eher, dass es sich auf die Grösse der Laufzeitumgebung verlagert hat, die man oft relativ umständlich zusätzlich installieren musste, wo Flash oft schon mit dem Browser zusammen ausgeliefert wurde.

Re: Python 2 oder Python 3 lernen?

Verfasst: Dienstag 24. Mai 2011, 22:22
von Leonidas
Jooohny.py hat geschrieben:Ich habe selber lange Zeit mit Javascript programmiert,
und kann mir deshalb ein Urteil darüber erlauben.
Ja, aber wenn dann offenbar vor Jahren, da die von dir angesprochenen Punkte von Libraries wie jQuery, Modernizer etc. gelöst wurden.
Jooohny.py hat geschrieben:Das Programmieren mit Javascript ist wegen der Eigenheiten der Browser sehr mühselig,
oft kommt es bei größeren Projekten vor das man mit Browserweichen arbeiten muss,
heißt also denselben Code mehrmals schreiben, damit jeder Browser damit zurechtkommt.
Browserweichen nutzt man nicht sondern Feature-Probing. Und selbst das macht man idR nicht direkt sondern nutzt ne Library die über die Browser
Jooohny.py hat geschrieben:Nur eins von vielen Beispielen ist die tranzparenz hier arbeiten alle Browser mit unterschiedlichen Funktionen(-moz-opacity:,filter:alpha(opacity=) und opacity:).
Total egal? Dafür existieren Libraries, dafür kann die Sprache ja nix wie die CSS-Selektoren funktionieren. Zudem sich die meisten Browser einigermaßen an CSS2.1 und CSS3 halten.
Jooohny.py hat geschrieben:Das ist auch ein Hauptgrund warum Frameworks wie etwa JQuery so beliebt sind.
Siehst du, Lösung erkannt.
Jooohny.py hat geschrieben:Ein Python Plug In für den Browser wäre auch nicht schlecht,
ich hatte auch C# in betracht gezogen,
weil man damit viel machen kann ASP.net, Silverlight und Destopanwendungen(leider nur für Windows deshalb habe ich mich für Python entschieden),
ich denke wenn es so ein Plug In mal geben würde,
würden noch mehr zu Python wechseln,
und vielleicht sogar Flash verdrängen weil die Syntax von Actionscript im Vergleich zu Python viel schwerer ist,
das Plug In müsste aber so schnell starten wie das Flash Plug In,
ein Hauptgrund keine Applets im Browser einzusetzen ist der langsame Start von dem Applet.
Prinzipiell mit NaCl möglich, aber ich halte das für unwarscheinlich. Eher wird sich JavaScript als portabler "Assembler" durchsetzen und Compiler machen aus Python (Byte)code dann Javascript-Code der beim User ausgeführt wird. Ähnliche Ansätze gibt es bereits mit CoffeeScript, Scheme und einigen anderen Sprachen.

Re: Python 2 oder Python 3 lernen?

Verfasst: Mittwoch 25. Mai 2011, 13:27
von mkesper
Um mal zu zeigen, welche Anwendungen bisher schon im Browser möglich sind, ist http://libreprojects.net/ eine gute Quelle. Und alles ohne Flash... :)

Re: Python 2 oder Python 3 lernen?

Verfasst: Mittwoch 25. Mai 2011, 17:50
von sma
Jooohny.py hat geschrieben:Ich glaube Flash wird uns noch lange erhalten bleiben,
da das programmieren, damit viel leichter ist als mit Javascript.
Unbestritten hat Flash (die VM) ihre Vorteile und somit ihren Platz in Desktop-Browsern. Dennoch tue ich mich mit einem Vergleich zwischen Flash und JavaScript schwer.

Flash kann eine IDE, eine VM, eine Grafikbibliothek sein. Die Programmiersprache ist ActionScript. Diese kann man mit JavaScript vergleichen. Erklärtes Ziel von Macromedia (jetzt Adobe) war, möglichst kompatibel zu JavaScript zu sein. Tatsächlich dachte man, ganz weit vorne damit zu sein, die Ideen von JavaScript 2.0 (aka ECMAScript 4) umzusetzen, doch nachdem sich dieses Projekt zerschlagen hat, ist ActionScript 3 nun eine eigene Sprache, die Richtung Java tendiert.

Ob sich das einfacher programmiert ist IMHO nicht einfach zu entscheiden. Ich fand das in Kombination mit Flex 3 jedenfalls recht schwerfällig, zumal die FlexBuilder IDE im Vergleich zu Java IDEs eher schlecht war (das hat sich wohl ein bisschen gebessert), die Sprache - und insbesondere die Flex-Bíbliothek - aber auch nicht so leichtgewichtig wie JavaScript war, als das man auf die IDE komplett verzichten könnte.

Gerade wenn die Projekte klein sind, programmiert sich JavaScript einfacher. Schon deshalb, weil man keinen Compile-Schritt braucht, der die SWF-Datei erzeugt.
Jooohny.py hat geschrieben:Die performence von Javascript kann man mit der von Flash überhaupt nicht vergleichen.
Weil... schneller oder langsamer? Ich weiß nur, dass die Tamarin VM nicht mit V8 mithalten kann, was die JIT-Optimierungen angeht. Daraus würde ich schließen, dass V8 schnelleren Code erzeugt als Tamarin. Das kann man verallgemeinern zu JavaScript (unter V8) ist schneller als ActionScript (unter Tamarin). ABC (ActionScript-Bytecode) für ActionScript 3 ist näher an Java denn an JavaScript dran und ich könnte mir vorstellen, das dies besser optimiert werden kann als JavaScript, welches sehr freie und schlecht zu optimierende Property-Zugriffe unterstützt. Tatsächlich ist ABC ausdrucksstärker als die JVM. Dennoch, es gibt AFAIK keine Benchmarks, die irgendwelche JavaScript-Interpreter mit ActionScript-Interpretern vergleichen würden.
Jooohny.py hat geschrieben:Das Programmieren mit Javascript ist wegen der Eigenheiten der Browser sehr mühselig,
oft kommt es bei größeren Projekten vor das man mit Browserweichen arbeiten muss,
heißt also denselben Code mehrmals schreiben, damit jeder Browser damit zurechtkommt.
Diese Aussage haben schon andere korrigiert. Aus dieser Aussage und auch der Bemerkung zu Java-Applets schließe ich irgendwie, dass deine Informationen möglicherweise mehrere Jahre veraltet sind.
Jooohny.py hat geschrieben:Nur eins von vielen Beispielen ist die tranzparenz hier arbeiten alle Browser mit unterschiedlichen Funktionen(-moz-opacity:,filter:alpha(opacity=) und opacity:).
Das ist CSS, kein JavaScript und damit kein Argument.
Jooohny.py hat geschrieben:Ich wollte mal einen WYSIWYG Editor programmieren und musste den Code fast für jeden Browser einzeln schreiben :x
Da hat dich der DOM gequält, ebenfalls kein JavaScript und damit kein Argument.
Jooohny.py hat geschrieben:Bei Flash programmiert man halt nur eine Version und sie geht überall,
Überall, außer auf mobilen Geräten. Auf iOS nicht wegen Order Mufti, auf Android (immer noch) nicht praktikabel.
Jooohny.py hat geschrieben:Adobe baut in der nächsten Version des Flash Player eine 3D API ein,
dann wird es möglich sein richtige 3D Spiele zu programmieren,
das ist mit webGL wegen der schlechten performence von Javascript nicht möglich,
Das mit 3D in Flash ist interessant, macht aber glaube ich eher Unity Konkurrenz als WebGL, was mangels Unterstützung von Microsoft noch ein paar Jährlichen ein Schattendarsein auf modernen Browsern führen zu verdammt ist. Und ich denke nicht, dass die Geschwindigkeit von JavaScript sich signifikation auf 3D Grafik auswirkt. Hier ist die Performance der Hardware dominierend. Ich sah neulich einen Fraktalgenerator, der per Pixelshader in Echtzeit Fraktale generiert hat. Den in JavaScript zu initialisieren ist nicht performance-kritisch und danach spielt JS keine Rolle mehr.
Jooohny.py hat geschrieben:Ich selber werde aber trotzdem nach Python weiter Javascript lernen,
da ich nicht vor habe größere Sachen auf dem Client zu entwickeln,
Programmiersprachen lernen ist immer eine gute Idee :)
Jooohny.py hat geschrieben:Zurück zum Thema:
Ich wollte nichts schlechtes zu Python sagen,
ich wollte nur sagen das die ersten Schritte mit PHP leichter ablaufen als mit Python also vom Einrichten bis zum Hello World,
selbstverständlich ist das programmieren mit Python leichter als mit PHP aber die ersten Schritte bei der Webentwicklung könnten leichter sein.
Ich finde bottle extrem einfach. Siehe auch http://www.screenr.com/QDd
Jooohny.py hat geschrieben:Am besten so leicht wie das Entwickeln von Destopanwendungen,
man installiert Python und ruft IDLE auf und schon kann es los gehen,
so leicht müsste das mit der Webentwicklung auch sein.
Da stimme ich dir zu. Ich hasse es, wenn ich erst irgendwelche Server konfigurieren muss, vielleicht sogar Pakete nachinstallieren oder Datenbanken konfiguieren muss. Daher gefallen mir Microrahmenwerke wie Bottle oder Flask (oder Sinatra unter Ruby), wenn ich einfach nur ein bisschen experimentieren will. Und solange ich nicht 100.000 User erwarte, reicht häufig auch für meine 5+ gleichzeitigen User der eingebaute Entwicklungsserver. Ich habe einige Jahre lang prima mit Djangos eingebautem Server hausinterne Anwendungen als Prototypen erstellt und ausgeliefert.
Jooohny.py hat geschrieben:ich hatte auch C# in betracht gezogen,
weil man damit viel machen kann ASP.net, Silverlight und Destopanwendungen(leider nur für Windows deshalb habe ich mich für Python entschieden),
Dank Mono ginge das theoretisch auch plattformübergreifend, doch wie sich Praxis und Theorie hier unterscheiden weiß ich nicht. Jetzt wo Miguel und Co aber von Novell entlassen wurden und ihre eigene Firma gegründet haben und jetzt mit Mono Geld verdienen wollen (müssen), denke ich, dass sie sich auf mobile Geräte, Unity und vielleicht den Mac als kommerzielle Angebote konzentrieren und nicht so sehr darauf, perfekte Kompatibilität zu .NET herzustellen.
Jooohny.py hat geschrieben:ein Hauptgrund keine Applets im Browser einzusetzen ist der langsame Start von dem Applet.
Applets waren schon vor 5 Jahren tot, selbst als das langsame starten technisch kein Problem mehr war.

Stefan