Python in the browser

Django, Flask, Bottle, WSGI, CGI…
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Hat sich das schon jemand angesehen und kann was zu sagen?

http://ironpython.net/browser/index.html

Sehe gerade, das ganze nutzt dann IronPython in Silverlight :?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

das Beispiel auf der Startseite ist aber ziemlich doof - dafür braucht man kein Python.

Wenn man sich die andere Beispiel anschaut wird klar, dass, wie jens schon sagt, der Python Code via Silverlight aufs .NET-Framework respektive IronPython umgebogen wird.

Daher ist der Nutzen IMHO doch etwas... äh ...eingeschränkt. Die Anzahl der Browser, wo auf dem System zusätzlich Silverlight und IronPython installiert ist, dürfte nicht allzu groß sein. ;-)

Aber interessant ist es trotzdem.

Gruß, noisefloor
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

noisefloor hat geschrieben:Daher ist der Nutzen IMHO doch etwas... äh ...eingeschränkt. Die Anzahl der Browser, wo auf dem System zusätzlich Silverlight und IronPython installiert ist, dürfte nicht allzu groß sein. ;-)
IronPython muss ja nicht zusätzlich installiert sein. So wie ich das verstehe kann die Seite einfach das IronPython-Assembly beilegen und dann braucht man nur Silverlight resp. Moonlight.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

interessant wäre noch, ob das "Ding" den vollen Funktionsumfang von Python unterstützt - also auch alles, was os und sys so bieten. Das ist ja was, was man nicht unbedingt (zumindest als Nutzer...)

Oder schiebt dem Silverlight einen Riegel vor? Habe mich damit noch nie beschäftigt...

Gruß, noisefloor
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Man benötigt nur ein installiertes SIlverlight 3 oder besser im Browser, sonst nichts. Microsoft behauptet, etwa 25% aller Browser (wahrscheinlich meinen sie allerdings nur Desktop-Browser) haben Silverlight installiert. Mein Problem: Ich nutze Chrome 6 (dev) und Safari 5 auf dem Mac, beides Browser, die nicht von Silverlight unterstützt werden. Mit dem aktuellen Chrome 5 unter Windows hätte man ebenfalls Pech. Man bräuchte FF3 oder IE7 oder IE8.

Das Silverlight-Plugin ist auf dem Mac 13 MB groß. Unter Windows ist es etwa 6 MB.

Will man jetzt IronPython benutzen benötigt man eine 37k große JS-Datei (komprimiert knapp 8k) die das Gestalt-Plugin initialisiert, sodass man einfach "<script type=text/python>" statt "<script type=text/javascript>" schreiben kann. Das lädt eine 680k große DLR-DLL und dan eine 870k große Bibliothek für IronPython oder eine 750k große Bibliothek für IronRuby. Hat man also erst einmal Silverlight installiert, ist der Overhead 1,5 MB. Ich meine eigentlich auch, dass diese DLLs nur einmal geladen werden müssen und dann von Silverlight gecacht werden. Jython als Applet - zum Vergleich - wäre deutlich größer.

Der Trick mit dem Script-Element ist übrigens nicht weiter schwer. Angenommen, ich hätte JQuery geladen, könnte ich folgendes machen:

Code: Alles auswählen

<script>
$(function(){
  $("script[type=text/sma]").each(function(){
    $(this).replaceWith("<script>" + compileSma(this.text) + "<\/script>");
  });
});
</script>
wobei jetzt `compileSma` eine JavaScript-Funktion ist, die ein ein Stück Quelltext in der Sprache "sma" in JavaScript übersetzt und den Rest dem Browser überlässt. Man könnte hier z.B. CoffeeScript benutzen. Oder man baut einen Python nach JavaScript-Übersetzer, bzw. eine Sprache, die syntaktisch so aussieht wie Python, aber die Semantik von JavaScript hat, weil das viel einfacher und effizienter zu übersetzen ist.

Stefan
Antworten