Weiterentwicklung von JavaScript orientiert sich an Python

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:


GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

definitiv interessant. aber zwei Aussagen halten meine Euphorie in Grenzen:
"Lustige neue Features" und "Rückwärtskompatibilität".

In meinen Augen ist Python unter anderem so cool, weil es eben nicht aus vielen lustigen Features, sondern wenigen durchdachten Konzepten besteht. Zb nicht 4 Sorten von Schleifen, sondern 2, die die anderen Elegant abdecken.

Ich vermute mal, "von Python lernen" heist hauptsächlich, dass man erkannt hat, dass, wenn man eine Skriptspache designed, man etwas mehr auf eleganz und bequemlichkeit setzen sollte, also etwas, was man nicht erreicht indem man in die Java/C++-Ecke guckt.

Meine Vorhersage: von Python lernen heist, dass Javascript2 Tupel, und vielleicht etwas mit yield vergleichbares kann.

Gerade soviel, als dass man etwas vom Ruhm von Python abbekommt ;)
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Argh. Dafür könnt ich Brendan killen. Genau der falsche Weg. Eine neue Programmiersprache muss her. Ohne scheiß Altlasten, ohne prototype, mit Hashes ohne Object() in der Form wie es das aktuell gibt und vor allem mit Operatorüberladung und packages.
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Im Grunde JavaScript weg, Python her ;)

Warum nicht eine abgespeckte Version von Python als vollständiger Ersatz, das wäre es oder? ;)

Könnte man eigentlich auch als Plugin realisieren... Das wäre schön!

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

jens hat geschrieben:Warum nicht eine abgespeckte Version von Python als vollständiger Ersatz, das wäre es oder? ;)
Nope. Python ist unbrauchbar für Webanwendungen am Client Seite. Schon alleine wegen den Whitespaces, der Tatsache, dass es keine Sandbox hat, dass es niemals so praktisch zu verwenden wäre wie javascript es jetzt ist. Dazu müsste man schon superglobale einführen und dann wäre das nicht mehr pythonic. Auch die anonymen funktionen (lambda ist hier kein ersatz) würden für webanwendungen fehlen, wo man programmcode direkt in den onclick attributen unterbringen kann.

Nein. Python für die Benutzerseite ist nix. Ich wünsch mir einfach ein Javascript ohne prototype und mit operator overloading, und packages.
TUFKAB – the user formerly known as blackbird
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Python ist unbrauchbar für Webanwendungen am Client Seite.
Schon alleine wegen den Whitespaces,
Erstens glaube ich nicht, dass Whitespaces so ein elementarer Teil von Python sind, auch, wenn wir aufrund der ewigen Flames sie mit religiöser Inbrunst verteidigen (siehe Spyce), und zweitens, warum braucht man denn eine whitespaceunabhängige Sprache? in eingelinkten Dateien ist es nicht nötig, für 3-4-Zeiler kann man ja Semikola nehmen, und alles, was darüber geht, kann ruhig innerhalb seines Tags ordentlich formatiert werden.
Vielleicht hätte das ganze die positive Pädagogische Nebenwirkungen, dass man sich mehr Gedanken um eine sinnvolle Trennung von Code und Text macht (hab da neulich was von Ansätzen gelesen, die Scriptverhalten per CSS einbinden wollten).
Aber ok, Whitespaces kann man von mir aus für Pythonscript weglassen. Versöhnt vielleicht etwas mit der Rubygemeinde (oder lässt sie hämisch lachen, je nach dem ;) )
der Tatsache, dass es keine Sandbox hat
Ja, dass ist tatsächlich ziemlich wichtig. Aber, so eine Sandbox wäre ein Feature, was ich auch gerne so in Pyhton sehen würde (da war mal was, afaik, was dann nicht weiterentwickelt wurde).
Und ich glaube, es geht hier ja hauptsächlich um die Syntax, nicht um die Implementation. Wenn man schon ein neues Javascript schreibt, könnte man doch auch mit vergleichbarem Aufwand ne Sandbox für Python programmieren, oder ein "Ballless"-Python kompilieren.
dass es niemals so praktisch zu verwenden wäre wie javascript es jetzt ist.
Was für Aspekte meinst du genau? Was geht in JS besser? (ehrlich interessiert, ich kann JS nur leider bisher nichts positives abgewinnen)
Auch die anonymen funktionen (lambda ist hier kein ersatz) würden für webanwendungen fehlen, wo man programmcode direkt in den onclick attributen unterbringen kann.
Halte ich das nicht unbedingt für einen guten Stil, aber warum würde da sowas wie
onclick="for i in range(4): alert('i am the annoying alertbox');alert('i still am')" nicht gehen?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

keppla hat geschrieben:Erstens glaube ich nicht, dass Whitespaces so ein elementarer Teil von Python sind, auch, wenn wir aufrund der ewigen Flames sie mit religiöser Inbrunst verteidigen (siehe Spyce)
Spyce hat sogenannte Python-Chunks. Ohne die hätte ich Spyce nie genutzt, da es sich einfach schlecht programmieren würde.
keppla hat geschrieben:Halte ich das nicht unbedingt für einen guten Stil, aber warum würde da sowas wie
onclick="for i in range(4): alert('i am the annoying alertbox');alert('i still am')" nicht gehen?
It sucks. Die Worte Sucks und Python passen nicht zusammen, daraus folgt, dass es eine nervende Sprache wäre und nicht Python. Das wäre dann so wie Java<->JavaScript und Python<->PythonScript, wo die Spachen bis auf den Namen nichts miteinander zu tun haben (Marketing eben).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

It sucks. Die Worte Sucks und Python passen nicht zusammen, daraus folgt, dass es eine nervende Sprache wäre und nicht Python.
Das ist jetzt nicht unbedingt eine nachvollziehbare Argumentationskette. Denn das _wäre_ keine andere Sprache, sodern es ist auch jetzt schon komplett legaler Pythoncode, und dass es blöd aussieht, liegt daran, dass es blöd ist, mehrere Dinge in eine Zeile zu packen (ich frage mich eh, warum das Semikolon nach python gefunden hat)

for(i=0;i<4:i++){alert("i am the annoyer");alert("i still am);}

sieht nicht minder bescheiden aus.
Spyce hat sogenannte Python-Chunks. Ohne die hätte ich Spyce nie genutzt, da es sich einfach schlecht programmieren würde.
Ja, also scheint es doch eine gute zu Möglichkeit sein, die Whitespace-probleme zu umgehen.
Aber wie gesagt, eigentlich sehe ich das whitespace-Problem (noch?) gar nicht als gegeben.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

keppla hat geschrieben:dass es blöd aussieht, liegt daran, dass es blöd ist, mehrere Dinge in eine Zeile zu packen (ich frage mich eh, warum das Semikolon nach python gefunden hat)
Das frage ich mich allerdings auch. Das einzige was mich daran freut ist, dass es zum Glück keiner nutzt. Wobei, wenn man die ganze JavaScript-Horde darauf loslässt schreiben die alles, weil es einfach geht, nicht weil es sinnvoll ist.
keppla hat geschrieben:for(i=0;i<4:i++){alert("i am the annoyer");alert("i still am);}

sieht nicht minder bescheiden aus.
Stimmt.

Edit: Achja, und ich glaube nicht dass JavaScript jemals besonders Python-ähnlich wird. Dann wäre es auch kein JavaScript mehr und dann müssten sich die Entwickler umstellen. Umstellungen tun ja schrechlich weh, deswegen wird das eher nicht passieren ;)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

gerade Python war für mich eine Umstellung, die nur einseitig Wehtut, nämlich, wenn ich wieder von Python weg zu PHP, Java und Konsorten muss.

Wenn die Umstellungen nicht einfach nur die übliche Komplexitätssteiegerung, die etwas unhübsch eingezwängt wird und, verglichen mit dem Anpassungsaufwand kaum einen Zeit- oder Eleganzwerten Vorteil bringt, sondern eine grundlegene Überarbeitung der Konzepte, die zu einer besseren Sprache führt, glaube ich nicht, dass die Umstellung abgelehnt würde.

Aber dass das passiert, bezweifele ich bei einer Sprache, die die Syntax von c++ hat, und dementsprechen auch so programmiert wird.
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Code: Alles auswählen

<a href="javascript:;" onclick="myframework.MyAnimation('fade', 1000, this, function(el) {
    el.style.display = 'none';
}">click me</a>
Sowas mein ich. Und was ich mit praktisch mein: globales "document", "browser"... Superglobale gibts in python nicht. Und sowas kann ich mir nicht als praktisch vorstellen:

Code: Alles auswählen

import browser

def test_it():
    handle = browser.get_active_handle()
    el = handle.document.create_element('div')
    el.append_child(handle.document.create_text_node('Test'))
als ersatz für

Code: Alles auswählen

test_it = function() {
    var el = document.createElement('div');
    el.appendChild(document.createTextNode('Test'));
}
TUFKAB – the user formerly known as blackbird
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

zum ersten beispiel: erstens halte ich es generell für eine schlechte idee, mehrzeiler in attribute zu schreiben, ich hätte da lieber eine art "script-sheet", á la

body a {
onclick: "print 'hier der code, zur not als heredoc' "
}

und zweitens, warum sollte das nicht mit python gehen? zumindest in diesem beispiel wäre da lambda völlig ausreichend.

zum zweiten beispiel:

wo ist der grossartige Unterschied? beides mal vier zeilen für die Funktion, das importstatement wird niemanden umbringen (und hat den netten nebeneffekt, dass man schon an der stelle mittels try..catch rauskriegen könnte, ob der browser überhaupt alle funktionalitäten bietet).
Dass der Inhalt der Funktionen anders ist, liegt der Verwendung von unterschiedlichen Bibliotheken.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

...nochmal den thread wecken...

Sagt mal, gestern hab ich mir so überlegt, das doch bestimmt irgendwer auf die Idee gekommen ist, ein Python als Browser-Plugin zu schreiben, oder nicht?
Also so ähnlich wie ein Java-Plugin, wobei sich Java-Client-Apps nicht wirklich durchgesetzt haben, gerade weil es ein Plugin ist und weil das niemand installiert hat oder aktivieren will.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
BlackJack

blackbird hat geschrieben:Sowas mein ich. Und was ich mit praktisch mein: globales "document", "browser"... Superglobale gibts in python nicht.
Klar gibt's in Python "Superglobale" -> das `__builtin__`-Modul. Da könnte ein Interpretierer, der im Kontext eines Browsers läuft, auch Objekte wie `document` oder `browser` anbieten.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Irgendwie finde ich die Idee, faszinierend, Python statt JavaScript zu nutzten ;)

Ich hab mal ein wenig gesucht, aber nicht viel gefunden:
http://mail.python.org/pipermail/python ... 70308.html
http://mail.python.org/pipermail/python ... 31449.html

Im letzten Post wird erwähnt, Jython als Web-Applet zu nutzten. Ob das wirklich geht???

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

Auf der Jython-Webseite scheints ja zu gehen ;)

Hmm... Wäre ja ganz schön :D Python in der Webseite...

Weil ich hab mir Jython noch net genauer angeschaut. Aber es ist doch von der Syntax doch seeehhhr stark wie Python (wäre auch sclimm wenn net) :D

Fänd ich cewl..

Nur überlege ich noch im Allgemeinen, wofür diese Applets so überall eingesetzt werden

MfG EnTeQuAk
BlackJack

EnTeQuAk hat geschrieben:Weil ich hab mir Jython noch net genauer angeschaut. Aber es ist doch von der Syntax doch seeehhhr stark wie Python (wäre auch sclimm wenn net) :D
Jython *ist* Python.
cracki
User
Beiträge: 72
Registriert: Montag 25. Dezember 2006, 05:01

wenn javascript die features von python haette, wuerd ich von python zu js wechseln.

js hat gescheite lambdas, du kannst damit eigene flow-konstrukte basteln, z.b. koenntest du das while neu erfinden:

Code: Alles auswählen

while = (condition, block){
    loop = {
        if (condition()) {
            block()
            loop()
        }
    }

    loop()
}

a = 0
while({a < 10}, {
    print a**2
    a += 1
})
(dies setzt natuerlich tail call recursion voraus)
an diesem code ist die *benutzung* des while interssant. du kannst einfach mal so bloecke erstellen und nutzen. das kannst du mit nested functions wie in python nicht so elegant nachbauen.
...meh...
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Man kann über ActiveScripting durchaus Python im Browser nutzen. Zudem ist in der Firefox-Roadmap eine Python-Integration eingetragen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

@cracki

Wenn Dir so etwas gefällt, dann solltest Du mal Ruby oder eine funktionale Programmiersprache anschauen.

Das Beispiel ist nicht wirklich überzeugend, da es ``while`` in beiden Sprachen schon gibt. Also ist die Frage, welche Kontrollflusstrukturen man üblicherweise so "erfinden" muss, die sich nicht auch anders lösen lassen.
Antworten