Moin,
* Bernd Brodesser
* Bernhard Walle schrieb am 05.Jun.2002:
Hm, ich kann mir für diese Aussage nur drei Begründungen vorstellen:
a) Du bist außerirdisch. b) Du hast noch nie etwas kompliziertere Stringoperationen in C programmiert. c) Du programmierst in Perl wie in C.
Alleine schon die Tatsache, dass ich mich bei Perl um keinen Speicher kümmern muss (also malloc() & Co.) beschleunigt die Entwicklung ungemein. Ist in C oft auch überflüssig. Ja, und oft eben auch nicht. Ich habe gerade eine Funktion für NEdit fertiggestellt, in der Strings eine wichtige Rolle spielen. Der Pseudocode sah so aus: if (isSet($NEDIT_HOME)) if (!exists($NEDIT_HOME)) create($NEDIT_HOME) use($NEDIT_HOME/nedit.rc, $NEDIT_HOME/nedit.history, $NEDIT_HOME/autoload.nm) else if (isFile(.nedit)) use(~/.nedit, ~/.neditdb, ~/.neditmacro) else if (!exists(~/.nedit)) create(~/.nedit) use(~/.nedit/nedit.rc, ~/.nedit/nedit.history, ~/.nedit/autoload.nm)
In Perl ersetzt man '$NEDIT_HOME' durch '$ENV{NEDIT_HOME}' und ist schon fast am Ziel, weil man natürlich eine Liste zurückgibt. In C sind es vier Fuinktionen, (einschließlich der Kommentare) 156 Zeilen, fast 5kB.
Nimm irgend was großes statisches. Oft besser, als den Speicherplatz dynamisch zu verwalten. Gilt natürlich nicht immer. Aber da wo man es macht, da sollte man es einkapseln, so daß es nur an einer Stelle gemacht wird, oder zumindest an wenige. Hat den Vorteil, daß man weiß was man frei geben muß. Ja, man kann in C programmieren, das ist unstrittig.
Thorsten -- Once upon the time, the music industry had something to offer to us - they distributed the music we would have never heard without them. Now, they need laws that prevent us to do ourself what they do for money.