python code radikal verkuerzen

Du hast eine Idee für ein Projekt?
Costi
User
Beiträge: 544
Registriert: Donnerstag 17. August 2006, 14:21

Donnerstag 16. November 2006, 21:00

wie wärs mit einer vereinfachung vom python-syntax:
bei einer argumenten-uebergabe keine kommas, kein ":" nach if, for und while, wie in ruby wenn nicht noetig "send "halo"" statt "send("halo")", wenn nich noetig bei bedingungsabfragen nur einen "=" statt zwei.
eine funktion wird ohne "()" ausgeführt, wenn man den funktions-object will, einfach zb einen "?" hinten ransetzen....

uvm


der interpreter wuerde in python selbst geschrieben sein und muesste nur python-scripts parsen und ausführen


klar - just vor fun
cp != mv
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

Donnerstag 16. November 2006, 21:06

:D kann mans auch übertreiben? :D

Mir gefällt die größe der Scripte, die ich schreibe...


MFG EnTeQuAk
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 16. November 2006, 21:07

Costi hat geschrieben:wie wärs mit einer vereinfachung vom python-syntax:
Bei der du die Python-Syntax nicht mehr eindeutig machst, sondern mehrdeutig - wie bei Ruby, wo man nicht immer sofort sieht, was passiert, da die Syntax nicht genug Informationen hergibt, um dies auf den ersten Blick zu erkennen. Frag blackbird, der gibt dir gerne ein Ruby-Beispiel, bei welchem es nicht möglich ist, ohne weiteres abzuschätzen, was passieren wird.
Costi hat geschrieben:bei einer argumenten-uebergabe keine kommas, kein ":" nach if, for und while,
Guck dir doch mal einen Lisp-Dialekt wie Common Lisp oder Scheme an.
Costi hat geschrieben:wie in ruby wenn nicht noetig "send "halo"" statt "send("halo")"
Eben, und wann ist es nötig. Das ist gar nicht so einfach wie man denkt. Ich fand es schon in Visual Basic so ätzend mit den Funktionsklammern.
Costi hat geschrieben:eine funktion wird ohne "()" ausgeführt, wenn man den funktions-object will, einfach zb einen "?" hinten ransetzen....
Und wenn man die Globale Variante will dann setzt man ein $ davor, die Klassenglobale ein @, für die Stringversion ein $ dahinter usw. Tolle Ideen die Perl-Code so unlesbar machen, Basic-Strings so seltsam aussehen lassen usw.
Costi hat geschrieben:der interpreter wuerde in python selbst geschrieben sein und muesste nur python-scripts parsen und ausführen
Und wie würdest du das implementieren? Als Python-Präprozessor oder mit Hilfe von PyPy einen AST aus deinem Quellcode machen, der vom richtigen Python-Interpreter ausgeführt wird?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Donnerstag 16. November 2006, 21:09

Costi hat geschrieben:wie wärs mit einer vereinfachung vom python-syntax:
bei einer argumenten-uebergabe keine kommas, kein ":" nach if, for und while, wie in ruby wenn nicht noetig "send "halo"" statt "send("halo")", wenn nich noetig bei bedingungsabfragen nur einen "=" statt zwei.
eine funktion wird ohne "()" ausgeführt, wenn man den funktions-object will, einfach zb einen "?" hinten ransetzen....
D'oh. Nimmt mir einfach meine First-Class Functions weg. Und meinem Editor das auto indent. darn...
TUFKAB – the user formerly known as blackbird
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Donnerstag 16. November 2006, 21:15

Radikal... meines Erachtens nach würde das kaum 3,742% Code einsparen, und um was für einen Preis?

[76,2731% aller Prozentangaben sind viel zu genau angegeben]
Costi
User
Beiträge: 544
Registriert: Donnerstag 17. August 2006, 14:21

Donnerstag 16. November 2006, 21:16

*diesen beitrag ignoriren*
(warte erstmal auf mehr antworten)
cp != mv
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 16. November 2006, 22:00

Hi!

Ich will Python programmieren! Da mir aber die Syntax nicht gefällt, muss mir irgendjemand das Python so anpassen, dass es sich wie BASIC anfühlt. Also, was ist??? Los jetzt!

:P :lol: :twisted:

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Donnerstag 16. November 2006, 22:05

Python ist nicht Ruby. Bei Python gilt: "explicit is better than implicit". Noch Fragen, Kienzle?


Aber wie wäre es, wenn man im Gegenzug bei Ruby einfach das 'end' weglassen und dafür mit Einrückungen Blöcke definieren würde?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 16. November 2006, 22:22

Y0Gi hat geschrieben:Aber wie wäre es, wenn man im Gegenzug bei Ruby einfach das 'end' weglassen und dafür mit Einrückungen Blöcke definieren würde?
RCR 299 und RCR 300 wollen genau das. Und sicher noch etliche andere.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Costi
User
Beiträge: 544
Registriert: Donnerstag 17. August 2006, 14:21

Donnerstag 16. November 2006, 22:26

* Beatnik (Wörter stehen für ihre Scrabble-Werte)
* Befunge (zweidimensionale Sprache)
* Brainfuck (winziger Compiler)
* Brainfuck2D (Brainfuck auf die Ebene projiziert)
* Chef (Code sieht aus wie ein Kochrezept)
* Cow (Code besteht aus Kuhlauten (Moo) )
* Emoticon (hat Emoticons als Befehle)
* INTERCAL (sollte das Programmieren erschweren)
* Iota and Jot (hat nur 2 Befehle)
* Malbolge (erklärtermaßen schlimmste Programmiersprache)
* Ook! (Syntax besteht einzig und allein aus dem Wort „Ook“, sowie den Zeichen: .?!)
* Piet (Programmcode besteht aus Bildern)
* Shakespeare (Code sieht aus wie ein Stück von Shakespeare)
* Taxi (Wegbeschreibung an einen Taxifahrer)
* Unlambda (Minimale funktionale Programmiersprache)
* Whitespace (Code besteht nur aus nichtdruckbaren Zeichen)


haaaaaa?!
naaaaa!?

hat das irgendeinen sinn?

und genau so geht dat hier auch, es ist ziemlich egal ob das irgendwelche python-philosfien bricht oder einfach nur =//&=$ ist
ich glaube man koennte python um vieeeeel, mehr als "3,742%" kuerzen, mir fallen hier voll die genaialen sachen ein, mindestens 30% sage ich!

edit:
RCR 299 und RCR 300 wollen genau das. Und sicher noch etliche andere.

ich auch, das wuerde zu ruby einfach viel besser passen
cp != mv
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Donnerstag 16. November 2006, 22:33

Costi hat geschrieben:* Beatnik (Wörter stehen für ihre Scrabble-Werte)
* Befunge (zweidimensionale Sprache)
* Brainfuck (winziger Compiler)
* Brainfuck2D (Brainfuck auf die Ebene projiziert)
* Chef (Code sieht aus wie ein Kochrezept)
* Cow (Code besteht aus Kuhlauten (Moo) )
* Emoticon (hat Emoticons als Befehle)
* INTERCAL (sollte das Programmieren erschweren)
* Iota and Jot (hat nur 2 Befehle)
* Malbolge (erklärtermaßen schlimmste Programmiersprache)
* Ook! (Syntax besteht einzig und allein aus dem Wort „Ook“, sowie den Zeichen: .?!)
* Piet (Programmcode besteht aus Bildern)
* Shakespeare (Code sieht aus wie ein Stück von Shakespeare)
* Taxi (Wegbeschreibung an einen Taxifahrer)
* Unlambda (Minimale funktionale Programmiersprache)
* Whitespace (Code besteht nur aus nichtdruckbaren Zeichen)
Und? Willst du eine neue esoterische Programmiersprache erfinden oder etwas mit dem man vernünftig arbeiten kann?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 16. November 2006, 22:47

Costi hat geschrieben:hat das irgendeinen sinn?
Ähnlich viel, wie den Python-Verschnitt, den du dir da gerade aus den Fingern saugst. Ich habe nichts gegen das Design von neuen Sprachen, das hat murphy mal mit LOVE gemacht, aber das muss schon Plan haben. Bei dir sind das alles einfach nur in den Raum geworfene Ideen.
Costi hat geschrieben:und genau so geht dat hier auch, es ist ziemlich egal ob das irgendwelche python-philosfien bricht oder einfach nur =//&=$ ist
Dann solltest du mal lernen das Programmiersprachen eben für bestimmte Philosophien stehen. Die Philosophie von Lisp ist anders als die von Python, die von Ruby anders als die von Visual Basic etc.
Costi hat geschrieben:ich glaube man koennte python um vieeeeel, mehr als "3,742%" kuerzen, mir fallen hier voll die genaialen sachen ein, mindestens 30% sage ich!
Belege? Du Willst nur ein paar Sonderzeichen kürzen, die der lesbarkeit dienen. Wenn ich eine Sprache auf der Basis von python entwickeln würde, dann würde sie vermutlich länger sein - statt der Pie-Decorator-Syntax würde ich eher J2 verwenden und sonst ein paar Klinigkeiten. Aber da es mich nie besonders gestört hat, habe ich keinen Python-Dialekt gemacht, weil sich die Mühe nicht lohnt.
Costi hat geschrieben:ich auch, das wuerde zu ruby einfach viel besser passen
Kannst ja eine DSL machen, das ist in der Ruby-Welt recht populär.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 16. November 2006, 22:48

Y0Gi hat geschrieben:Aber wie wäre es, wenn man im Gegenzug bei Ruby einfach das 'end' weglassen und dafür mit Einrückungen Blöcke definieren würde?
Heeh! :wink: Jetzt kommen wir der Sache schon näher. 8) Genau so machen wir's.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Donnerstag 16. November 2006, 22:54

Leonidas hat geschrieben:
Y0Gi hat geschrieben:Aber wie wäre es, wenn man im Gegenzug bei Ruby einfach das 'end' weglassen und dafür mit Einrückungen Blöcke definieren würde?
RCR 299 und RCR 300 wollen genau das. Und sicher noch etliche andere.
Hm, da wird Ruby mir doch gleich deutlich sympatischer. Schön, dass auch einige Rubyisten erkannt haben, dass die angesprochenen Dinge mehr als "einfach nur blöd" sind.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 16. November 2006, 22:58

Costi hat geschrieben:und genau so geht dat hier auch, es ist ziemlich egal ob das irgendwelche python-philosfien bricht oder einfach nur =//&=$ ist
ich glaube man koennte python um vieeeeel, mehr als "3,742%" kuerzen, mir fallen hier voll die genaialen sachen ein, mindestens 30% sage ich!
Dann guck dir mal die Lösungen vom pycontest an. Da hast du radikal gekürzte, funktionfähige Programme. Die Lesbarkeit und verständlichkeit kann man natürlich vergessen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten