Es reicht nicht, Stroustrup zu lesen, man muss ihn verstehen
-
Hallo,
das ging ja richtig durcheinander. So kompliziert ist das aber alles garnicht. Ich habe zwar immer gesagt, dass 80% der C++ Programmierer die erweiterten Programmiertheorien nicht beherrschen, hier geht es aber um Basiswissen. Man muss als Programmierer sein Werkzeug kennen, da reicht es nicht, Stroustrup zu lesen, man muss ihn verstehen. Und weil ja Stroustrup schon zitiert wurde, hier noch eins von ihm, dass er im Zusammenhang der Einführung von RTTI in die Sprache C++ gesagt hat.Es war schließlich einer Leitgedanken beim Entwurf der Sprache C++, dass man, nachdem alles gesagt und getan war, auf den Programmierer setzen musste. Und es ist wichtiger, dass gute im Auge zu behalten, das man mit einem Werkzeug anrichten kann, als den falschen Gebrauch überzubewerten, der sich damit ebenso ergeben kann. Wir wollen C++-Programmierer schließlich als Erwachsene behandeln, die nur wenig “Bevormundung” nötig haben.
Die größte Gefahr für den Mißbrauch kommt von Programmierern, die sich selbst für einen zu großen Experten halten, dass sie kein - wie auch immer geartetes – Einführungsbuch zu Rate ziehen müssen, bevor sie sich selbst auf die C++- Programmierung loslassen.
Im englischen heissen abstrakte Methoden "pure virtual". Eigentlich würde kaum einer auf die Idee kommen, dass ganze als "rein virtuell" zu übersetzen, leider taucht das immer wieder mal auf, sogar in der deutschen Übersetzung von Stroustrup. Nur stammen die abtrakten Methoden ja aus der allgemeinen Theorie der Objektorientierung, in Delphi wird hierfür auch das Schlüsselwort "abstract" verwendet. Wenn eine Klasse, bleiben wir jetzt mal im englischen, eine "pure virtual"- Methode hat, dann wird die ganze Klasse abstrakt. In der Objektorientierung gibt es den Wunsch der dynamischen Bindung, die passenden Methoden werden erst zur Laufzeit identifiziert, so dass eine totale Typfreiheit entsteht. Das ganze bezeichnet man als Polymorphie. C++ ist ein Compiler, der nativen Maschinencode erzeugt, zudem mit einer sehr strengen Typisierung. Das steht im Widerspruch zur dynamischen Bindung, native Compiler verwenden eigentlich die frühe Bindung, dass heisst, zu jedem Funktionsaufruf im Programm muss eine feste Sprungadresse bestehen. Deshalb wurden in C++ die virtuellen Tabellen eingeführt, um Polymorphie umzusetzen. Der Linker verbindet die tatsächlichen Implementierungen von virtuellen Methoden mit dieser und zur Laufzeit erfolgt der konkrete Zugriff über die virtuelle Tabelle. Das bezeichnet man als späte Bindung. Dadurch wird, wenn man mit Zeigern (oder Referenzen) arbeitet, nicht die Methode des Typ des Zeigers, sondern die des Typs, auf den der Zeiger tatsächlich verweist, aufgerufen. Kurz, Polymorphie. Manchmal sollte man, wenn man sich mit C++ beschäftigt, Theorie pauken, den gerade für C++ ist das Beherrschen dieser Sachverhalte wichtig. Eine abstrakte Methode ist eine virtuelle Methode, zu der keine konkrete Implementierung existiert. Dadurch wird die ganze Klasse abstrakt, da ja der Zugriff auf virtuelle Methoden zur Laufzeit über die VTable erfolgt, es aber für eine abstrakte Methode keinen Eintrag in dieser geben kann (es gibt ja keine Implementierung). Abstrakte und virtuelle Methoden, dass ist wieder etwas, was nicht eineindeutig ist. Deshalb fällt es vielen auch schwer, das auseinanderzuhalten. Dabei ist es einfach, eine abstrakte Methode muss immer virtuell sein (sie muss einen Eintrag in der VTable haben, sonst würde der Linker abbrechen), aber eine virtuelle Methode ist deshalb nicht zwangsläufig abstrakt (das heisst, es kann eine Implementierung geben). Und so verhält es sich auch mit abstrakten und virtuellen Klassen. Eine Klasse wird virtuell, wenn sie eine virtuelle Methode hat, denn dann wird sie in die VTables eingetragen (übrigens eine Voraussetzung für RTTI), muss also nicht zwangsläufig abstrakt sein. Eine abstrakte Klasse ist dagegen eine Klasse, in der mindestens eine abstrakte Methode existiert, da diese, wie oben erklärt, zwangsläufig virtuelle Methoden sind, ist eine abstrakte auch immer eine virtuelle Klasse.
Das Thema "Interface", diesen Ausdruck gibt es eigentlich so in C++ nicht, er wird aber tatsächlich oft für vollständig, abstrakte Klassen verwendet. Die Ursache liegt aber nicht bei JAVA oder Delphi, wie einige glauben, sondern auch in der allgemeinen Objekttheorie. So verwenden auch COM und Corba den Begriff Interface.
Ok, das soll erstmal reichen. Schöne Grüße aus Berlin
Volker
-
Hi,
VolkerH schrieb:
Man muss als Programmierer sein Werkzeug kennen, da reicht es nicht, Stroustrup zu lesen, man muss ihn verstehen.
da fühle ich mich angesprochen und möchte etwas zu sagen.
1. Warum zitieren?
Foren-User sind naturgemäß streitlustig. Das ist gut so, soll so sein und ich schließe mich da auch nicht aus. Ufert eine Diskussion in irgend einer Form aus, kann ein prägnantes Zitat aus "berufenem" Munde helfen, den roten Faden wiederzufinden.2. Sein Werkzeug kennen, Stroustrup verstehen, VMT
Die Beziehungen zwischen diesen Stichworten sind vielfältig und ... streitbar.Ich stimme Dir zu. Man sollte sein Werkzeug kennen und Stroustrup verstehen, wenn man ihn denn liest. Letzteres ist gewissermaßen trivial, da es im Grunde vertane Zeit ist, irgend etwas zu lesen, ohne es zu verstehen.
Jeder, der ein wenig Informatik studiert hat oder einfach nur daran interessiert ist, hat das Thema "Virtuelle Methoden-Tabelle" mehrfach durchgekaut. Trotzdem würde ich es nicht als unabdingbares Basiswissen bezeichnen, sondern in die Kategorie "interessant, mal darüber nachgedacht zu haben" einordnen. Und es läßt sich vortrefflich darüber streiten, ob sich durch dessen Kenntnis bei der Verwendung des Werkzeugs C++ irgend welche Vorteile ergeben. In diesem Fall halte ich es für wichtiger sein Werkzeug zu kennen, als zu wissen, wie es in intern funktioniert. Wer denkt schon über die VMT nach, wenn er sein virtual in den Quelltext hackt?
-
Hallo dschensky,
ich gebe Dir, obwohl ich auch sehr streitsüchtig sein kann, prinzipchell recht, dass man sich über virtuelle Tabellen genau in dem Moment keine Gedanken macht, wenn man das Wort "virtual" tippt. Das ist wie mit dem Autofahren, da denkt man auch nicht ans Kuppeln, wenn man schaltet. Nur wenn man nie gelernt hat, die Kupplung zu treten, ruiniert man das Getriebe, und so ist es hier auch. Ohne das Verständnis, kommen schlechte Programme heraus, gerade bei C++´, und diese Programme sorgen dann für den schlechten Ruf und unterstützen den Hype nach Sprachen wie JAVA und C#, wo man sich nicht so viele Gedanken machen muss. Sicherlich muss man auch nichts über den Aufbau der virtuellen Tabellen selber etwas wissen, es sei denn, man hat sich mit Informatik und Compilerbau beschäftigt. Aber das Grundprinzip zu verstehen, und zu wissen, welche Auswirkungen das Wort "virtual" in jeder Hinsicht hat, halte ich für wichtig.Wenn Du schreibst, dass es trivial ist, anzunehmen, dass man nur etwas liest, wenn man es versteht, gebe ich Dir auch recht. Nur stimmt leider genau bei Stroustrup die Aussage nicht! Sehr viele angehende Programmierer lesen ihn, weil das vermittelte Wissen durch den lockeren, amerikanischen Schreibstil einfach und trivial rüberkommt, und merken nicht, dass sie das Wissen nicht verarbeiten. Und dann werden daraus die berühmten Halbweisen, die eigene Defizite geschickt verbergen können, sich hinter Zitaten verstecken, überall mitreden wollen und können, und weil es eigentlich alles plausible klingt, was sie sagen, die Leute hinter sich herziehen, die von dem Gedanken, sich ja doch nicht so tief mit der Materie beschäftigen zu müssen, begeistert sind. Und wenn wir beim Autofahren sind, Michael Schuhmacher ist mehrfacher Weltmeister, weil er jedes Teil seines Autos kennt. Nun kann nicht jeder ein Schuhmacher werden und ich denke, selbst geübte Autofahrer würden sich nicht in einen Formel 1- Wagen setzen können. Aber jeder der da drin sitzt und mitfährt, sollte etwas geübt haben und den Willen haben, den Wagen vollständig zu beherrschen.
Aber zurück zu C++, wenn man nicht den Willen hat, C++ zu beherrschen (und nicht umgekehrt) und die Eigenschaften auszureizen, sollte man Delphi programmieren, da hat man dann auch noch die VCL. Man muss nicht alles beherrschen, wird es bei dieser komplexen Sprache wahrscheinlich auch nie, aber man sollte den Willen haben, zu verstehen, was passiert, wenn man im Quelltext etwas schreibt.
Fühle Dich jetzt bitte nicht angesprochen und springe durch den Rechner. Ich kenne Dich nicht, was aber auf jeden Fall notwendig wäre, um ein Urteil zu fällen, es liegt mir also auch fern. Und wenn ich tatsächlich der Meinung wäre, dass es so ist, würde ich mich hier nicht auf einen sinnlosen Streit einlassen, sondern es Dir direkt schreiben. Es ist eine ganz allgemeine Aussage, die ich in meiner Tätigkeit immer wieder erleben muss.
Ich möchte auch keinen davon abbringen, C++ zu lernen, im Gegenteil, aber es gibt ein altes Sprichwort: "Es ist schon mancher kein Meister geworden, weil er sich zu früh dafür hielt.". C++ ist keine triviale Sprache.
Schöne Grüße aus Berlin
Volker
-
VolkerH schrieb:
Das ist wie mit dem Autofahren, da denkt man auch nicht ans Kuppeln, wenn man schaltet. Nur wenn man nie gelernt hat, die Kupplung zu treten, ruiniert man das Getriebe, und so ist es hier auch.
Ich deute den Vergleich einer Kupplung mit der VMT mal als ehrenhaften Versuch, die Programmierer-Gilde zu missionieren und zu einer tiefergehenden Beschäftigung mit den Interna der Laufzeitumgebung zu motivieren. Kuppeln würde ich jedoch eher als Grund-Technik bezeichnen. Es sei denn ...
VolkerH schrieb:
und unterstützen den Hype nach Sprachen wie JAVA und C#, wo man sich nicht so viele Gedanken machen muss.
... man hat ein Auto mit Automatik-Schaltung.
VolkerH schrieb:
Aber das Grundprinzip zu verstehen, und zu wissen, welche Auswirkungen das Wort "virtual" in jeder Hinsicht hat, halte ich für wichtig.
Das sehe ich auch so.
VolkerH schrieb:
Michael Schuhmacher ist mehrfacher Weltmeister, weil er jedes Teil seines Autos kennt
Das ist eine gewagte These.
VolkerH schrieb:
Fühle Dich jetzt bitte nicht angesprochen und springe durch den Rechner.
Konstruktive Kritik hat immer einen Adressaten, sie prinzipiell abzulehnen währe jedoch idiotisch.
======= Edit =========
Ich habe noch mal über das Thema "Zitieren" nachgedacht.VolkerH schrieb:
die berühmten Halbweisen, die eigene Defizite geschickt verbergen können, sich hinter Zitaten verstecken...
Ich bin absolut nicht der Meinung, daß man eine (schwer zu definierende) "Meisterschaft" in der Programmierung erreicht haben sollte, um die Berechtigung zu erlangen, Stroustrup oder wen auch immer zu zitieren. Oder, um es etwas aggressiver zu fomulieren, die "Meister-Programmierer" haben nicht das Recht des Zitierens für sich gepachtet.
Vielleicht ist ein Grund für das viele Halbwissen gerade der, daß zu viele Meinungen aus Gedächtnis und Hörensagen, statt Fakten aus originalen Quellen verbreitet werden.
Ich sehe das pragmatisch und positiv: Ein Zitat setzt schon mal voraus, daß man überhaupt die Quelle zu Rate gezogen und wenigsten so viel darin gelesen hat, um die richtige Stelle finden zu können - beides alles andere, als selbstverständlich.
Ob sich hinter dem Zitator ein Halbweiser verbirgt ist irrelevant. Der kritische Leser, muß entscheiden, ob das Zitat den Diskurs voranbringt.
-
Hallo dschensky,
ich habe leider erst jetzt Deine Ergänzung gelesen. Und die hat mich etwas betroffen gemacht, weil Du einiges nicht verstanden hast. Du hast mit diesem "Editieren" der Diskussion plötzlich eine ganz andere Richtung gegeben. Ich habe doch geschrieben, Dich nicht angreifen zu wollen, warum also Deine Aggressivität? Ich gehe jetzt erstmal nicht auf die vorherige Diskussion ein, sondern auf das allgemeine Thema "zitieren". Und bitte, fühle Dich nicht wieder angesprochen.Es ist wichtig, wie und warum man ein Zitat anbringt. Wenn man einen Fakt selber erklären kann, sollte man eigentlich nicht zitieren, wenn man es nicht kann, auch nicht. Also haben Zitate immer eine besondere Bedeutung, sie sollen kein Wissen transportieren. Dann besteht die Gefahr, dass sie als Todschlagargument benutzt werden und der, der sie benutzt in den Verdacht kommt, es selber nicht erklären zu können. Man benutzt Zitate eigentlich, um die eigene Meinung (oder eine These) zu belegen und zu untermauern. Nur wenn man vorher keine ersichtliche eigene Meinung hatte, sondern gleich mit dem Zitat beginnt, oder das Zitat isoliert im Raum steht, ist das schon immer ein Alarmzeichen. Wenn man aber eigene Thesen damit unterstützen möchte, dann kann jeder zitieren, denn dann hat man sich damit beschäftigt. Die anderen werden sich dann aber mit der eigenen These, und nicht mit einem im Olymp stehenden Zitat, auseinandersetzen müssen.
Der 2. Grund, Zitate zu verwenden, ist der Selbstschutz in "politischen" Auseinandersetzungen. Ich bin einmal einer Katastrophe entgangen, weil ich gut zitiert habe (aus einem anerkannten Lexikon), und es vorallem belegen konnte (ich musste das Buch vorlegen, und auf den Folien war der Text ohne Interpretation übernommen und zur Diskussion gestellt), und mich während des Vortrages nicht auf eigene Meinungsaussagen gestützt habe. Es ging damals um Begriffe wie "monolithische Anwendungen", "sozialmotivierte Innovationsblockade", "personelle Altlasten" und "Mainframe Mindset", und es war das falsche Publikum. Die wollten damals meinen Kopf, und unser Projekt, dass denen ohnehin ein Dorn im Auge war, kippen. Solche Gründe sehe ich aber in einem Forum nicht, da hier keine "politischen" und wirtschaftlichen Interessen einfliessen.
Ich zitiere jetzt einmal aus dem Buch "Objektorientierte Analyse und Design" von Grady Booch:
Der Amateur-Softwareingenieur ist immer auf der Suche nach magischen, sensationellen Methoden oder Tools, deren Anwendung verspricht, die Software-Entwicklung trivial zu machen. Den professionellen Softwareingenieur kennzeichnet das Wissen, daß es kein solches Allheilmittel gibt. Die Amateure wünschen sich oft, einfach den Anweisungen einer Art Kochbuch folgen zu können - die Profis wissen, daß allgemeingültige Entwicklungsansätze normalerweise zu unzulänglichen Designprodukten führen, sich zu einem Lügengebäude zusammensetzen, hinter dem sich die Entwickler verstecken können, um die Verantwortung für frühere, falsche Entscheidungen nicht tragen zu müssen.
Warum dieses Zitat? Bisher habe ich das ganze, wie oben geschrieben, allgemein dargestellt, jetzt geht es aber um einen Satz Deines letzten Postings, der gefährlich und falsch ist. Du schreibst, dass es Deiner Meinung nach besser ist, "Fakten aus orignalen Quellen" zu verbreiten, als "zu viele Meinungen aus Gedächtnis und Hörensagen" (auch wenn Du mir jetzt eine freie Interpretation unterstellen wirst, aber das ist mit Zitaten oft so, wenn Sie aus dem ganzen Text genommen werden). Stroustrup ist eben kein Kochbuch, dass man bei jeder Gelegenheit nehmen und zitieren kann. Und sogar "originale Quellen" irren manchmal, Stroustrup sieht seine Thesen selber nicht als unanfechtbar, sonst würde es kein ANSI C++ geben, sondern ein AT&T C++. Die Zusammenhänge in diesem Buch sind sehr komplex, und ein herausgelöstes Zitat kann eine andere Aussage haben, als der Text selber. Und wenn es besser wäre, nur originale Quellen zu benutzen, warum dann dieses Forum? Dann wäre es doch besser, jeder kauft sich die Bücher und liest?
Weil ich viele Deiner Postings kenne und auch schätze, denke ich, Du hast das nicht im Ernst so gemeint und eine schlechte Stunde gehabt hast. Und wir wissen beide, was "Halbweise" sind, und das meine Aussage absolut richtig ist. Und es geht nicht darum ob, sondern wie man Zitate verwendet. Nur weil ich schreibe, dass "... die berühmten Halbweisen, die eigene Defizite geschickt verbergen können, sich hinter Zitaten verstecken...", impliziert das nicht generell eine Aussage, wie die von Dir unterstellte "... daß man eine (schwer zu definierende) "Meisterschaft" in der Programmierung erreicht haben sollte, um die Berechtigung zu erlangen, Stroustrup oder wen auch immer zu zitieren.".
Überleg Dir das einfach mal in Ruhe.
Schöne Grüße aus Berlin
Volker
-
Volker,
VolkerH schrieb:
Ich habe doch geschrieben, Dich nicht angreifen zu wollen, warum also Deine Aggressivität?
das hast Du jetzt falsch verstanden. Zuerst einmal ist das eine reine Meinungsäußerung und ja, das meine ich absolut ernst.
Deine Argumentations-Kette, die in dem Satz gipfelt "Und dann werden daraus die berühmten Halbweisen,...", war mir einfach zu beliebig, zu allgemein und roch ein wenig nach elitärem Gehabe. Da schien mir eine kleine Attacke angebracht.VolkerH schrieb:
Wenn man einen Fakt selber erklären kann, sollte man eigentlich nicht zitieren, wenn man es nicht kann, auch nicht.
Also sollte man im Grunde überhaupt nicht zitieren?
VolkerH schrieb:
Also haben Zitate immer eine besondere Bedeutung, sie sollen kein Wissen transportieren.
Diese Schlußfolgerung kann ich nicht nachvollziehen. Transport von Wissen ist nicht das erste Ziel aber er findet trotzdem statt.
Auf Deine ausführliche Meinungsäußerung zum Thema Zitieren allgemein möchte ich nicht im Detail eingehen. An dieser Stelle möchte ich aber noch einmal darauf hinweisen, worum es eigentlich ging. Zur Erinnerung: Stein des Anstoßes war ein Stroustrup-Zitat, welches keinesfalls eine Meinung oder These, sondern ein bloßes Faktum darstellte. Die Maßstäbe und Verfahrensweisen des Zitierens in der wissenschaftlichen Arbeit lassen sich wohl eher selten auf ein Programmierer-Forum anwenden.
Wir sollten genau unterscheiden: Geht es um die möglichst effiziente und fehlerfreie Angabe von Fakten mit Hilfe eines Zitates oder geht es um einen wissenschaftlichen Diskurs, innerhalb dessen eine Argumentation mit Hilfe von Zitaten unterstützt wird....Den professionellen Softwareingenieur kennzeichnet das Wissen, daß es kein solches Allheilmittel gibt....
Das ist interessanter Weise eine der Aussagen, die ich sinngemäß in meinem ersten Seminar über Softwareentwicklung gehört habe. Die Uni kann manchmal richtig praktisch sein
VolkerH schrieb:
...der gefährlich und falsch ist. Du schreibst, dass es Deiner Meinung nach besser ist, "Fakten aus orignalen Quellen" zu verbreiten, als "zu viele Meinungen aus Gedächtnis und Hörensagen" (auch wenn Du mir jetzt eine freie Interpretation unterstellen wirst
Na, na ... "gefährlich und falsch" ... jetzt übertreibst Du aber und ja, das ist eine recht freie Interpretation. Dieser Satz war eine These von mir. Allerdings lege ich mich gerne fest und mache hiermit diese These zu meiner Meinung. Auch hier möchte ich aber noch einmal darauf hinweisen, daß es mir um die Weitergabe von Fakten ging und nicht um Thesen und Argumentationen.
VolkerH schrieb:
Und wenn es besser wäre, nur originale Quellen zu benutzen, warum dann dieses Forum? Dann wäre es doch besser, jeder kauft sich die Bücher und liest?
Gute Frage. Gegenfrage: Wieviel Prozent der Fragen in diesem Forum werden direkt mit siehe FAQ oder RTFM beantwortet? Und wieviele von den restlichen Fragen könnten durch einen Blick in die Hilfe beantwortet werden? Und wieviele von den dann noch verbleibenden Fragen würden sich durch einen Blick in ein C++-Buch erübrigen?
Der Sinn dieses Forums liegt imho woanders, aber das ist ein anderes Thema ...VolkerH schrieb:
Und es geht nicht darum ob, sondern wie man Zitate verwendet.
Na da sind wir uns doch sowas von einig!
-
WAS hat das jetzt noch mit TStream bzw. Abstrakten Klassen zu tun?
-
Gute Frage.
OT-Diskussion aus diesem Thread abgetrennt.
-
Dieser Thread wurde von Moderator/in Jansen aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hallo dschensky,
ich denke, wir sind uns in viel zu vielen Punkten einig, als dass wir diesen Disput bis in die Ewigkeit fortsetzen sollten. Der Link zum Zitieren ist gut, aber selbst wenn auch ich lange die Sitzbänke einer Uni gedrückt habe, bezog sich meine Ausführung in diesem Thread nicht auf wissenschaftliche Arbeiten, sondern auf das tägliche Leben. Und da Du selber in der Softwarebranche tätig bist, wirst Du wissen, dass Fachvorträge, Strategiepapiere oder Programmspezifikationen wenig mit einer wissenschaftlichen Arbeit zu tun haben, und die meisten Workshops eher mit einem Forum zu vergleichen sind.Ich bin ja auch mal ganz ehrlich, und gebe zu, dass ich den Stil, in Foren (manche machen das auch gerne in Mailings) die einzelnen Abschnitte in Zitate zu zerlegen und zu kommentieren, wie es einige hier gerne machen, saumäßig schlecht finde. Man kann sich auch im laufenden Text auf Textstellen oder Meinungen beziehen. Gerade dieser Stil ist elitär, und von oben herab. Und vielleicht war gerade das der Grund, warum ich auf das andere Zitat dazwischen so reagiert habe. Aber jeder hat seinen eigenen Stil, und wir sollten dieses hier nicht weiter vertiefen.
Ja, ich gebe Dir recht, viele Fragen, die in den Foren gestellt werden, könnte man mit einem Blick in die FAQs oder Bücher sehr schnell lösen, und ich denke, es ist das Durchschnittsalter in manchen Foren, das diese "einfachen" Fragen immer wieder kommen lässt. Nur ist das Problem für den Fragesteller gerade in dem Moment, wo er die Frage stellt, enorm groß und selbst aus den FAQs erhält er nicht zwangsläufig eine Antwort. Und ein Zitat, da sind wir wieder beim alten Thema, hilft auch nicht immer weiter, die Probleme zu erkennen. Wichtig ist, dass man mit Hilfe von Diskkusionen, Anleitungen und Büchern eine eigene Meinung aufbaut, und nicht Kochbücher wälzt. Und die FAQs sind nichts anderes wie Bücher, die zitiert werden. Und ich bin wie Du der Meinung, das Foren dieser Art sehr wichtig sind, um zu lernen, Probleme zu lösen. Und um einfach Meinungen auszutauschen, die direkt und indirekt mit der Programmierung zu tun haben (was wir ja gerade machen
). Schüler und Studenten, ja selbst Einzelkämpfer, können sich RoadShows und die angebotenen Programmierseminare kaum leisten, da ist das Forum ein entsprechender Marktplatz der Informationen und Meinungen. Nur hilft dann die häufigste Antwort, die ich auf solche Fragen gelesen habe "schau in die FAQs oder benutze die Suchfunktion", nichts. Manchmal weiss der Fragesteller vielleicht auch nicht, wonach er suchen soll. Und ich denke, viele Fragen sind schneller beantwortet, mit einem Hinweis, dass weiterführende Informationen in den FAQs zu finden sind, als das ständige Verwarnen. In anderen Foren gibt es andere Standardantworten "das ist eine Windowsfrage, gehe in ein Microsoft- Board" kann man in reinen C/C++ Foren oft lesen, da ist dann die Linux- Fraktion heruaszuhören. Oder, für uns als Borland- Nutzer, kommt dann die Klatsche "VCL- Fragen kannst Du in einem Borland- Board stellen", obwohl die Frage sich vielleicht auf die MAPI bezogen hat, also mit der VCL nichts zu tun hat, und auch nicht mit der Wahl des Entwicklungssystems. Und vielleicht sind es gerade die einfachen Fragen, die dann von den Einsteigern selber schon beantwortet werden können, die Fragen, die diese dann vorwärtsbringen? Ich weiss es nicht. Vielleicht sollte man generell nur Fragen bei ausgefüllten Profilen zulassen, und díese mit entsprechenden Pflichtfeldern wie Alter, Programmiererfahrung, ... versehen, und die einzelnen Forumsbeiträge, anstatt sie mit dem Verweis auf die FAQs zu beenden, in Kategorien einstufen? Vielleicht würden dann weniger Fragen am Ende durch die Moderatoren beantwortet? Vielleicht würde sich dann eine Pyramide bilden, in der ein entsprechender Informationsfluss gegeben wäre? Wichtig ist doch, dass nicht nur wissen gesaugt, sondern auch wieder eingebracht wird. Aber jetzt habe ich mich wieder vom Thema entfernt. Ich glaube, wir wohnen nicht so weit voneinander entfernt, lass uns irgendwann ein Bier trinken gehen.
Schöne Grüße aus Berlin
Volker