Python / Pygame Webbrowser Plugin ... sinnvoll?

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
Arachnophobius
User
Beiträge: 23
Registriert: Mittwoch 7. April 2010, 11:51

Einen schönen guten Abend...

heute morgen im Halbschlaf vor der Arbeit bin ich auf etwas gekommen das
mein Interesse geweckt hat. Meine Überlegungen galten dem
Aufbau eines Flash-elementes gegenüber dem von Pygame erzeugten
Fenster durch aufruf an die SDL library bzw den Aufrufen an das jeweilige
Betriebssystem. Dann kam mir in den Sinn ob ein solches Fenster
nicht auch in einem Browser erzeugt werden könnte, also praktisch
dem Flashelement ähnlich. Denn damit gäbe es ein kostenloses pendant
zum kommerziellen erstellen von Flashelementen.
Seitdem brüte ich ein wenig darüber, ob so etwas:
1. überhaupt sinnvoll
2. bereits vorhanden
and last but not least überhaupt nachgefragt wird.
Den einzig sinnvollen Beitrag den ich dazu finden konnte, kann man hier bewundern: VelocityReviews

Demnach war so etwas anscheinend schon in der Entwicklung, wurde aber eingestellt.
Jetzt kommen wir zum Grund dieses Themas:
Findet Ihr solch eine solche Erweiterung für Browser sinnvoll und/oder
kennt Ihr ein solches bereits?

Ich hoffe in meiner grenzenlosen Ungeduld jetzt nicht etwas überlesen zu haben
was meine Frage(n) eigentlich schon beantwortet hätte.

MfG
deets

Darueber gab's hier grosse Diskussionen - Stichwort NaCL von Google Chrome. Das ist wohl am ehesten der Weg. Das Problem: ist halt an einen Browser gebunden.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Och ne, nicht schon wieder Browser-Plugins. Dachte die wären irgendwann gegen 2000 ihren verdienten Tod gestorben. Bei NaCl muss man schauen was passiert, aber ich habe irgendwie so Zweifel dass das Fuß fasst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Ich glaube nicht, dass neue Browser-Plugins gute Chancen auf eine signifikante Verbreitung haben.

Flash ist notwendig für Videos und das eine oder andere Spiel ist (noch) in Flash geschrieben, daher ist es IMHO ein notwendiges Übel, aber keine Software, die ich mich freue installiert zu haben. Tatsächlich akzeptiere ich Flash eigentlich nur, weil es integraler Bestandteil von Chrome ist und ärgere mich jedes Mal darüber, was für eine schlechte Performance Vimeo bei der Video-Wiedergabe auf dem Mac hat, die den Lüfter anlaufen lässt.

Speziell für Spiele hat Unity ebenfalls ein Plugin, das wohl einige installieren, weil sie entsprechende Spiele spielen möchten, doch ansonsten muss es schon einen verdammt guten Grund geben, ein Plugin zu installieren (Java habe ich schon seit Monaten deaktiviert und das "Internet" funktioniert trotzdem ;).

Kann nicht auch das HTML-Canvas-Element so ziemlich alles, was SDL und damit Pygame kann? Wenn das Pygame-API so anwenderfreundlich ist, kann man daher nicht ein identisches API für das Canvas-Element anbieten? Ob JavaScript oder Python als Sprache ist doch eher zweitrangig, oder?

Wer Python will, kann sich ja einen Cross-Compiler schreiben - oder mal Pyjamas ausprobieren oder dieses Python, das in JavaScript geschrieben ist oder dieses andere Python, das mit Emscripten kompiliert wurde.

Sollte Canvas nicht reichen, kann man immer noch schauen, ob eine Abstraktion über WebGL ein guter Weg ist. Das lässt allerdings zur Zeit mobile Browser außen vor, was doch total schade wäre, denn ich möchte schon auf meinem zukünftigen iPad 3 auch Spiele im Browser zocken :)

Stefan
Arachnophobius
User
Beiträge: 23
Registriert: Mittwoch 7. April 2010, 11:51

Die Meinung scheint ja absolut eindeutig zu sein ...

Ich persönlich bin eher ein Freund von installierter Software (sei es jetzt ein Spiel oder sonst etwas),
allerdings lagert ja sehr viel auf das Web aus. Deswegen galt meine Überlegung, irgendwie auch
Python und seine Eigenschaften direkt im Browser zur Verfügung zu haben.

Beim HTML5-Canvas-Element (soweit ich mich jetzt da durchgelesen habe), besteht der
hauptteil des Codes ja aus Javascript. Wie allerdings soll man den im HTML eingebundenen
JS durch Python-Code ersetzen? Mir persönlich kam da zuerst Django-Jython in den Sinn,
allerdings weiß ich nicht wie sich das verhält. Auf der Django-Jython Seite war dazu nicht viel zu finden.
Und auch sonst betreffen die meisten Dokumentationen eher die JVM welche (soweit mir bekannt)
auf lokalen rechnern läuft um dort Anwendungen zum laufen zu bringen.

Ansonsten wäre das natürlich eine angenehme Alternative, und Spiele / Multimedia-anwendungen
sind ebenfalls auf dieser Basis bereits entstanden. Demnach wäre die Idee von Plugins ja vom
Tisch.

@sma
Noch eine persönliche Frage:
Wieso entscheidet man sich für Google Chrome? Wenn es so stark Flash lastig ist (was ja anscheinend
nicht in deinem Sinne ist), wäre es ja ungeeignet.

MfG

Edit:
Hoppla, dass mit dem WebGL jetzt erst gesehen.
Allerdings hier auch wieder mein Problem mit dem JavaScript. Für den Rest gäbe es dann ja bereits
die PyOpenGL Library.
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Arachnophobius hat geschrieben:Beim HTML5-Canvas-Element (soweit ich mich jetzt da durchgelesen habe), besteht der
hauptteil des Codes ja aus Javascript. Wie allerdings soll man den im HTML eingebundenen
JS durch Python-Code ersetzen?
sma hat geschrieben:Wer Python will, kann sich ja einen Cross-Compiler schreiben - oder mal Pyjamas ausprobieren oder dieses Python, das in JavaScript geschrieben ist oder dieses andere Python, das mit Emscripten kompiliert wurde.
Ich bleibe übrigens auch der Meinung, dass man sich fürs Arbeiten mit Canvas recht gut mit JavaScript anfreunden kann.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Arachnophobius hat geschrieben:Beim HTML5-Canvas-Element (soweit ich mich jetzt da durchgelesen habe), besteht der
hauptteil des Codes ja aus Javascript. Wie allerdings soll man den im HTML eingebundenen
JS durch Python-Code ersetzen? Mir persönlich kam da zuerst Django-Jython in den Sinn,
allerdings weiß ich nicht wie sich das verhält. Auf der Django-Jython Seite war dazu nicht viel zu finden.
Und auch sonst betreffen die meisten Dokumentationen eher die JVM welche (soweit mir bekannt)
auf lokalen rechnern läuft um dort Anwendungen zum laufen zu bringen.
Hmm, JVM, Jython und Django haben überhaupt nichts mit JavaScript im Browser zu tun. Das ist so als würde man sagen Tetris hat was mit dem Terminator zu tun, weil beide mit T anfangen. sma hat bereits Pyjamas erwähnt und es gibt eine Menge Sprachen die zu JavaScript kompilieren, die bekanntesten sind wohl CoffeeScript mit all seinen Ablegern, Google's Dart und ClojureScript.
Arachnophobius hat geschrieben:Hoppla, dass mit dem WebGL jetzt erst gesehen.
Allerdings hier auch wieder mein Problem mit dem JavaScript. Für den Rest gäbe es dann ja bereits
die PyOpenGL Library.
PyOpenGL implementiert OpenGL, WebGL implementiert OpenGL ES. Und wenn man OpenGL in Python nutzen will ist Pyglet inzwischen vermutlich die populärere Wahl.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Arachnophobius hat geschrieben:@sma
Noch eine persönliche Frage:
Wieso entscheidet man sich für Google Chrome? Wenn es so stark Flash lastig ist (was ja anscheinend
nicht in deinem Sinne ist), wäre es ja ungeeignet.
Das ist nicht, was ich gesagt habe. Chrome kommt mit seiner eigenen Flash-Version, die automatisch aktualisiert wird. Sie ist außerdem in einer Sandbox eingeschlossen, sodass in Chrome meiner Einschätzung nach Flash (das wie gesagt für Videos immer noch notwendig ist) am sichersten benutzt werden kann. Das reduziert die mit Flash verbundenen Sicherheitsprobleme und macht es auch bequemer, denn ich muss nicht manuell das Plugin installieren bzw. periodisch aktualisieren, wie z.B. bei Safari oder Firefox.

Unabhängig davon, halte ich Chrome für den besten Browser. Er ist schnell, stabil, sicher und bietet (in der Developer-Version) die neusten HTML/CSS-Funktionen. Seine JavaScript-Engine aktuell die schnellste (wenn ich mir hier auch mehr ECMAScript 5/6 wünschen würde). Er aktualisiert sich automatisch, sodass ich eigentlich nichts weiter machen muss, als ab und zu mal neu zu starten. Chrome läuft bei mir als wichtigste App tagelang durch. Schließlich spricht Chrome SPDY, was den Zugriff auf Google Mail und andere Apps schneller macht als mit anderen Browsern (Firefox 11 will hier gleichziehen).

Um aber noch einmal auf die ursprüngliche Diskussion zurück zu kommen: Ich denke nicht, dass man mit irgendeinem neuen Plug-in eine signifikante Verbreitung erreichen kann. Selbst Google wird es mit NaCl schwer haben, irgend einen anderen Browser-Hersteller zu überzeugen, das zu integrieren. Ich würde es nicht Totgeburt nennen wollen, denn sie haben die selbe Chance wie IE früher, mit Chrome einen marktdominierenden Browser zu schaffen (was IMHO nicht schlecht ist, am IE war schlecht, dass der nur unter Windows lief und mit IE6 die Entwicklung quasi stoppte, weil Microsoft vielleicht glaubte, so den Windows-Desktop länger am Leben halten zu können), gute Werkzeuge zu schaffen und einen überzeugenden Entwicklungsprozess, der Dart auch auf dem Server bietet (das Rob Pike hier mit Go spielen darf, ist glaube ich nur seinem großen Namen zu verdanken).

Hinzu kommt, Browser unter iOS oder Android schon mal prinzipiell keine Plug-ins unterstützen und diese werden zukünftig die meist verbreiteten Plattformen sein. Somit bleibt nur JavaScript (oder Dart, wenn man ausschließlich auf Chrome setzt) als Sprache für clientseitige Programmierung von Browern übrig. Entweder man findet sich mit der Sprache ab und schaut sich an, wie man seine Lieblingssprache in JavaScript übersetzen kann. Leonidas und ich hatten dazu ja einige Lösungen erwähnt.

Stefan
Antworten