Am 09.12.2012 12:45, schrieb Diez B. Roggisch: Hallo Diez,
Also ich sehe POC als normales Python an. Man benützt diese POC-Hierarchie in weiten Teilen, so wie man eine ganz normale Objekt-Hierarchie benützen würde.
Und warum benutzt man dann nicht einfach eine *echte* Python Objekthierarchie? Tust du doch. Wie ich Stefan schon geschrieben habe ist der Satz "verunglückt" Entschuldige bitte.
Fazit: Ich würde eher versuchen, ein Design zu entwickeln, dass sich gut in die normale Entwicklung mit Python einfügt. Meiner Meinung nach habe ich das gemacht. Aber na ja Geschmäcker sind verschieden; trotzdem hoffe ich, das ihr mein POC nicht in völlig in der Luft zerreißen werdet.:-)
Ich wuerde es schon gerne, aber ich fürchte, das ist Code, der dir am Herzen liegt… Ja das tut er...
Doch ich versuch's trotzdem mal, dir das auszureden. ... hätte mich gewundert wenn nicht. :-D
Im Java-Umfeld gibt es - ob der geringen Flexibilitaet der Sprache - oft XML als Konfigurations-Sprache, die an Maechtiggkeit den Umfang einer "echten" Programmiersprache annimmt.
Mich erinnert das ganze an alte ANT-Skripte, die ich schreiben musste. Im Grunde XML, aber dank "BeanShell" konnte man Jython einbetten. Und weil es ein paar Funktionalitaeten gab, die ANT nicht unterstuetzt hat, musste man das machen. Und es war ..schlimm.
Und POC ist das IMHO auch. Denn es faengt schonmal damit an, dass XML zu schreiben Menschen nicht zugemutet werden sollte. XML ist ein Serialisierungsformat, dass gut zwischen zwei Maschinen funktioniert. Aber es von Hand zu erstellen ist anstrengend. Wer zB mal Apache mit NGINX Konfigurationsdateien verglichen hat, weiss wovon ich rede. Also ANT kenne ich nicht dazu kann ich nichts Schreiben. Aber du behauptest das es schwer ist eine POC Datei zu schreiben, dann probiere ich das jetzt mal aus:
Quelle der Nachfolgenden Daten ist die Wikipedia: http://de.wikipedia.org/wiki/Die_Simpsons die Textauszüge sind als Zitate zu verstehen ---Dateianfang--- DOCTYPE = "VERSION : 1.3.0, CHARSET : UTF8, ESC : !/" # Sprachversion und Kodierung; [Simpsons] [Familie] [Eltern] vater = ("Homer Jay Simpson " 01.01.1970 Sicherheitsinspektor); vater_beschreibung = """ Homer Jay Simpson ist das Familienoberhaupt der Simpsons, Ehemann von Marge und Vater von Bart, Lisa und Maggie. Sein Alter schwankt je nach Episode zwischen 36 und 42 Jahren.... """; mutter = ("Marjorie !/„Marge!/“ Simpson", 1.1.1978 "Hausfrau und Mutter); mutter_beschreibung = """ Marjorie „Marge“ Simpson, geborene Bouvier, die 34-jährige Ehefrau von Homer und Mutter von Bart, Lisa und Maggie, ist die gute Seele im Hause Simpson. Sie lebt in aufopfernder Zuwendung für ihre... """; [/Eltern] [Kinder] bart = ("Bartholomew !/„Bart!/“ Jo-Jo Simpson" 01.1.2002 Schüler); bart_beschreibung = """ Bartholomew „Bart“ Jo-Jo Simpson, alias „El Barto“, alias „Bartman“, ist der zehnjährige Sohn von Homer und Marge und zwei Jahre und 38 Tage älter als Lisa. """; lisa = ("Lisa Marie Simpson" 1.1.2004 Schüler); lisa_beschreibung = """ Lisa Marie Simpson, acht Jahre alt, ist das zweite der Simpson-Kinder und mit einem IQ von 159 hochbegabt. """; maggie = ("Margaret !/„Maggie!/“ Simpson" 01.01.2011); maggie_beschreibung = """ Margaret „Maggie“ Simpson ist mit einem Jahr das jüngste Mitglied der Familie """; [/Kinder] [/Familie] [Serie] staffel1 = ("Die komplette 1. Staffel." " 27. September 2001" "13 Folgen") # Gekürzt; staffel2 = ("Die komplette 2. Staffel." " 6. Juni 2002" "22 Folgen") # Gekürzt; [/Serie] [/Simposons] ---Dateiende--- So das soll erst mal Reichen für das ganze habe ich 20 Minuten gebraucht und das obwohl ich Schwer-behindert bin und die Hände nicht immer machen was sie sollen. Das ist auch der Grund warum in listen, tuple, sets keine Kommas zwischen den Elementen stehen. Als ich wieder anfing zu Programmieren viel es mir noch schwerer als heute.
Dann darf ich zwar Python schreiben, aber nicht so richtig, weil du bestimmte Dinge 'doof' findest wie globals oder lokale Importe. Ich kann es nicht im Emacs bearbeiten mit all den Vorteilen von entweder einem XML-Modus oder einem Python-Modus. Oder zB mit Altova XMLSPY. Ich kann nicht unit-testen, ich kann nicht wiederverwenden, ich kann keine komplexeren Strukturen bauen.
Ist schon seltsam ich lese diese Liste schon lange und immer wenn jemand global gebrauchen will um globale Variablen anzulegen wird im davon abgeraten. Jetzt wo ich konsequenter Weise die Verwendung untersagen will wird das als Beschränkung empfunden ;-) Ach ja uni-testen kannst Du es :-) die ganze Bibliothek wird per unittest getestet und zwar sehr ausführlich.
Fuer bestimmte Python-Strukturen gibt es aequivalente Konstrukte - eine unnoetige Doppelung. Es gibt sogar noch eine dritte Syntax mit Semikola als Statement-Trenner, Python-Code ist irgendwie komisch in Strings einzubetten usw.
Du verraetst uns ja nicht, *wozu* du das geschrieben hast.
In erster Linie habe ich es für mich geschrieben. Nach meiner schweren Krankheit brauchte ich etwas was mich aufrichtet, etwas was mich Fesselt und Fasziniert. Wie ich dazu gekommen bin genau das zu scheiben kann ich heute nicht mehr sagen. Viele Grüße Albert