On Donnerstag, 6. März 2003 12:11, Ralf Corsepius wrote:
...aber wenn Du QString kennengelernt hast, willst Du diese völlig praxisfremden STL-Strings wahrscheinlich sowieso nicht mehr verwenden.
Wie bitte? Das kann man so nicht stehen lassen.
QStrings mögen Deiner Meinung nach den STL-strings überlegen sein, sind ausserhalb der QT-Welt aber ebenso völlig irrelevant und ebenso proprietär, wie es die libg++-Strings und irgendwelche Borland oder M$-String Implementierungen sind.
Völlig richtig - wenn man nicht Qt programmiert, sind QStrings irrelevant.
Proprietär sind sie sowieso.
Aber ich würde inzwischen ernsthaft in Erwägung ziehen, auch für
nicht-GUI-Projekte Qt zu verwenden, einfach um die vielen sehr gut designten
Nicht-GUI-Klassen von Qt verwenden zu können, z.B. QString, QRegExp, QFile,
QDir, nicht zu vergessen die ganzen Qt-Container.
In inzwischen dreieinhalb Jahren Praxiserfahrung mit YaST2-UI-Entwicklung habe
ich STL-Strings mit Inbrunst hassen gelernt. Man muß dazu wissen, daß die
YaST2-UI eine abstrakte Zwischenschicht hat, die STL-Strings verwendet -
schon damit die NCurses-UI auch Strings hat - und die Qt-UI, die schon für
Qt-Zwecke QString verwendet - ich kenne also beide Welten recht gut.
STL-Strings kommen aus dem Elfenbeinturm der Informatiktheorie.
Basisfunktionalität, die man täglich braucht, ist schlicht nicht vorhanden.
Zum Beispiel gibt es kein sprintf() in einen STL-String. Für GENAU SO ETWAS
brauche ich verdammt noch mal eine leistungsfähige String-Klasse - es nützt
mir nichts, wenn ich dazu wieder einen statischen Puffer der Länge, sagen wir
mal 256 (oder 1024? oder 8192? oder was?) anlegen muß, der irgendwann ja doch
überläuft (Security-Probleme!), aber in aller Regel viel zu groß ist.
Suchfunktionen sind dürftig, reguläre Ausdrücke nicht vorhanden.
Konvertierungsfunktionen zwischen verschiedenen Codierungen gibt es nicht -
selber schreiben.
...und so weiter, und so fort.
Das alles ist bei QString einfach dabei - eben an die Praxis angepaßt.
CU
--
Stefan Hundhammer