Weiterentwicklung von JavaScript orientiert sich an Python

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

"Weiterentwicklung von JavaScript orientiert sich an Py

Beitragvon jens » Dienstag 23. Mai 2006, 09:20


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

Beitragvon keppla » Dienstag 23. Mai 2006, 10:03

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 ;)
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Dienstag 23. Mai 2006, 16:36

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
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Dienstag 23. Mai 2006, 16:47

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!

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

Beitragvon mitsuhiko » Dienstag 23. Mai 2006, 17:25

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

Beitragvon keppla » Dienstag 23. Mai 2006, 20:08

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?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 23. Mai 2006, 21:10

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 Modvoice
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Beitragvon keppla » Dienstag 23. Mai 2006, 21:26

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.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 24. Mai 2006, 14:34

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 Modvoice
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Beitragvon keppla » Donnerstag 25. Mai 2006, 05:21

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.
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Donnerstag 25. Mai 2006, 18:16

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

Beitragvon keppla » Donnerstag 25. Mai 2006, 18:35

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
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Mittwoch 3. Januar 2007, 08:00

...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.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
BlackJack

Beitragvon BlackJack » Mittwoch 3. Januar 2007, 11:24

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
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Mittwoch 3. Januar 2007, 11:33

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???

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder