visual c++ 6.0 author edition oder c++ builder 6 personal
-
wurstuk schrieb:
Hmmm welche Buch könntet ihr ihr denn empfehlen?
Es sollte hauptsächlich Spiele basiert sein und bitte kein grauer Klumpen mit Schriftgröße 2...
Es soll tatsächlich ein Buch mit etwas Spielehintergrund geben das auch gut ist (kenne ich selbst aber nicht), du solltest aber bedenken: Ohne die Sprachgrundlagen zu kennen wirst du jedenfalls in C++ kein Spiel mit grafik erstellen können (und nach C++ Grundlagen musst du dann erst einmal entscheiden welche Bibliothek du für die Darstellung lernen willst etc). Wenn es um grafisch Basierende Spiele über ein Kartenspiel etc. hinaus gehen soll, wirst du dich schätzungsweise mindestens 2 Jahre+ erstmal mit Grundlagen der Sprache und der Grafikbibliothek zu tun haben. Und ich hoffe dein Englisch ist gut...
Ohne Spielehintergrund habe ich schon 2 genannt.
cu André
-
hmmm ja.... hätte ja sein können das es sowas gibt^^
-
wurstuk schrieb:
Hmmm welche Buch könntet ihr ihr denn empfehlen?
Es sollte hauptsächlich Spiele basiert sein und bitte kein grauer Klumpen mit Schriftgröße 2....
Vllt kennt ja einer ein gutes Buch^^
Nach überfliegen der Inhaltsangabe und einiger Rezensionen kann ich nur empfehlen: Nimm das Buch von Heiko Kalista! Es ist für dich wohl am besten geeignet, weil es in c++ einführt und die Themen anschneidet, die dich interessieren.
Der "Primer" und viele andere Bücher sind eher akademischer Natur. Sie legen den Focus ausschließlich auf c++ und sind ohne Vorkenntisse kaum zu bewältigen. Man bekommt nur sehr wenige "fertige" Programme serviert, sondern meist nur Codeschnipsel anhand derer etwas erklärt wird. Für Leute mit Programmiererfahrung wunderbar um ein detailiertes Verständnis der Sprache zu erlangen, aber für absolute Neulinge kaum zu gebrauchen.
Wobei es nicht bei diesem Buch bleiben wird, wenn du es ernst meinst.

-
cool danke!
und zu der fragen wegen alt = schlecht.
asc schrieb:
Dann bitte, bitte... und nochmals bitte: Nimm ein aktuelles Buch. Der Visual C++ 6.0 ist noch vor der Verabschiedung des C++ Standards im Jahre 1998 erschienen.
ähm ich hab mal geguckt und das Buch von Heiko Kalista müsste aus dem Jahr 2005 sein soweit ich das richtig verstanden habe^^ ähm könnte ich dann auch einfach diese Microsoft express Verison nehmen, anstadt der die auf der CD ist?
Und 2005 ist doch nicht so alt das müsste doch eig. gehen oder?
-
Also die 2005er Version des VisualStudio's bzw. der VC++ Express Edition (welche übrigens kostenlos ist) ist wirklich recht gut.
Ich kann damit jedenfalls immer bestens arbeiten und würde sie durchaus empfehlen.

Von der alten 6.0 kann ich allerdings auch nur höchst abraten.
-
JustSomeCoder schrieb:
Also die 2005er Version des VisualStudio's bzw. der VC++ Express Edition (welche übrigens kostenlos ist) ist wirklich recht gut.
Die 2008er Version ebenfalls. Wieso nicht modernere IDEs nehmen?

-
Nexus schrieb:
JustSomeCoder schrieb:
Also die 2005er Version des VisualStudio's bzw. der VC++ Express Edition (welche übrigens kostenlos ist) ist wirklich recht gut.
Die 2008er Version ebenfalls. Wieso nicht modernere IDEs nehmen?

Ja klar, geht natürlich auch.

Allerdings gefällt mir der Compiler beim 2008er nicht sonderlich, er kommt mir um einiges langsamer als dessen Vorgänger vor.
Gerade bei größeren Projekten kann sich das ziemlich (negativ) deutlich machen.
-
JustSomeCoder schrieb:
Allerdings gefällt mir der Compiler beim 2008er nicht sonderlich, er kommt mir um einiges langsamer als dessen Vorgänger vor.
Gerade bei größeren Projekten kann sich das ziemlich (negativ) deutlich machen.Kann ich jetzt nicht beurteilen, da ich die 2005er-Version nur kurze Zeit hatte. Falls das wirklich so ist, liegt es vielleicht ja daran, dass "genauer" kompiliert wird.

-
wurstuk schrieb:
ähm ich hab mal geguckt und das Buch von Heiko Kalista müsste aus dem Jahr 2005 sein soweit ich das richtig verstanden habe^^ ähm könnte ich dann auch einfach diese Microsoft express Verison nehmen, anstadt der die auf der CD ist?
Und 2005 ist doch nicht so alt das müsste doch eig. gehen oder?
Grundsätzlich fährst du sehr gut damit die IDE zu verwenden, die der Autor beschreibt.
Wenn du die Express-Edition von Microsoft nutzen willst würde ich, wie Nexus schon sagte, die 2008er Version nehmen. Bei der 2005er Version muss für die Windows-Programmierung noch umständlich ein SDK nachinstalliert weden.
Auch um das Alter der Bücher würde ich mir nicht so viele Sorgen machen. Die IT entwickelt sich schnell, das ist wahr, aber gewisse Grundlagen und Konzepte bleiben natürlich sehr viel länger bestehen. Und mehr als eine Einführung wird dieses Buch nicht sein können. Wie gesat, du hast noch viel Arbeit (viele graue Wälzer ;)) vor dir.

-
Kritiker schrieb:
Grundsätzlich fährst du sehr gut damit die IDE zu verwenden, die der Autor beschreibt.
Danke, dann kann man hier im Forum immer schön die Fehler der VS6 aufdecken. Mag ja sein das dieses Buch von 2005 ist, mag ja sein das VS6 dabei ist, aber wenn das Buch nicht gerade die MFC verwendet muss man auch nicht 2 mal Compiler installieren (Erst mit den alten lernen und dann auf den neuen umsteigen) sondern es reicht einmal ein aktuellen zu verwenden.
Kritiker schrieb:
Auch um das Alter der Bücher würde ich mir nicht so viele Sorgen machen. Die IT entwickelt sich schnell, das ist wahr, aber gewisse Grundlagen und Konzepte bleiben natürlich sehr viel länger bestehen.
Wobei genau hier ein großer Bruch zwischen dem VS6 und den neueren Visual-Versionen ist. Den auch wenn du die Unterschiede immer klein redest, die Unterschiede gerade was die STL angeht sind nicht gering. Und mag ja sein das man anfangs die Templates außen vor lässt, ich frage dennoch: Warum muss man alles doppelt machen wenn man gleich auf einer aktuellen Plattform beginnen kann?
@wurstuk: Das einzige worauf du bei den neuen VS-Versionen achten musst ist der Projekttyp (Win32, in der Regel zu beginn leere Konsolenanwendung, Harken entsprechend setzen).
Kritiker schrieb:
Und mehr als eine Einführung wird dieses Buch nicht sein können. Wie gesat, du hast noch viel Arbeit (viele graue Wälzer ;)) vor dir.

Das ist der einzige Punkt in dem ich dir recht gebe.
-
Die Visual C++ 6.0 Autorenedition ist nicht unbedingt scheisse, aber schlicht und ergreifend viel zu alt. Lass dir das von jemandem sagen, der VC6.0 verwendet

Ich hab damals das Buch auch verwendet und wichtige Dinge damit gelernt. Heutzutage ist aber vieles anders und einiges besser. Also nutze die von den Vorpostern erwähnten Möglichkeiten, solange du noch frei entscheiden kannst
-
Windows 95 oder 98 ist auch ein Betriebssystem das die Grundlagen beherrscht. Yo, aber wer benutzt denn hier noch effektiv diese Windows-Versionen? Wahrscheinlich niemand. Warum? Weil auch wenn sie ihren Zweck erfüllen, man heute damit nur noch Probleme hat, will man sich mit anderen austauschen.
VC6 ist veraltet, wird schon lange von MS nicht mehr unterstützt. Und niemand hier im Forum hat Bock, die VC6-Fragen zu beantworten, wenn man auch VC2005 oder 2008 benutzen kann.
-
asc schrieb:
Danke, dann kann man hier im Forum immer schön die Fehler der VS6 aufdecken.
Jetzt sind wir wieder bei der alten Diskussion.

Zuerst möchte ich anmerken, dass ich VC6 nicht empfohlen habe. Mein Rat ging dahin, dass man gut damit fährt die IDE zu nehmen, die im Buch beschrieben ist. In diesem Fall ist das halt Visual C++ 6 oder Visual .net 2003.
Der Vorteil ist, dass man die abgedruckten Programme (vermutlich) problemlos umsetzen kann, bzw. wenn es Probleme mit den Compilern gibt wird der Autor (vermutlich) darauf eingehen. Ein weiterer Vorteil ist, dass man die mitgelieferten Projekte sofort verwenden kann und man wird nicht alleine gelassen, wenn es darum geht eine Bibliothek in das Projekt zu integrieren , denn bei dem von dir erwähnten Haken bei Win32 bleibt es meist nicht. In dem Buch ist es z.B. die SDL, wobei ich mich aus der letzten Diskussion erinnern kann, dass es da Probleme bei VC6 geben soll, weil size_t nicht im namespace std ist, was ja schnell gelöst werden kann.
asc schrieb:
Den auch wenn du die Unterschiede immer klein redest, die Unterschiede gerade was die STL angeht sind nicht gering.
Das ist sicher so, wobei die im Buch aufgeführten Themen auch mit VC6 keine Probleme bereiten werden.
asc schrieb:
Warum muss man alles doppelt machen wenn man gleich auf einer aktuellen Plattform beginnen kann?
Hab ich eben gesagt. Der Vorteil der aktuellen Plattform, ist weg, wenn die Projekte nicht gleich laufen, die nötigen Einstellungen nicht da zu finden sind, wo es im Buch beschrieben ist, Funktionen plötzlich in einem anderen Header sind, Screenshots anders aussehen ... Für erfahrene Programmierer kein Problem aber für Anfänger teils unüberwindliche Hürden.
Wird im Buch VC9 verwendet nimmt man eben im Idealfall diesen Compiler + IDE.
asc schrieb:
@wurstuk: Das einzige worauf du bei den neuen VS-Versionen achten musst ist der Projekttyp (Win32, in der Regel zu beginn leere Konsolenanwendung, Harken entsprechend setzen).
Bei VS-Express gilt das erst ab der Version 2008. Die 2005er Version macht es nicht ohne zusätzliches SDK und einigem "Gefummel".
Bulli schrieb:
VC6 ist veraltet, wird schon lange von MS nicht mehr unterstützt. Und niemand hier im Forum hat Bock, die VC6-Fragen zu beantworten, wenn man auch VC2005 oder 2008 benutzen kann.

VC6 ist alt, aber nicht veraltet. Es ist hervorragend dokumentiert und man kann davon ausgehen, dass auftauchende Probleme bereits unzählige Male beantwortet wurden. Übrigens auch Probleme der Migration auf aktuelle Compiler. Man ist also durchaus nicht auf die Lust einiger Leute hier angewiesen, wobei es sicher auch genügend Forenteilnehmer geben wird die auch solche Fragen gerne beantworten.Nebenbei wird hier (und zuvor) viel von riesigen Problemen gelabert, aber konkret konnte noch keiner etwas Gravierendes aufzeigen.
Sobald ein Anfänger im Thema ist wird er zwangsläufig mit verschiedenen Compilern, IDEs, und Betriebssystemen in Kontakt kommen. Zu Beginn ist aber wichtig, dass das Gelesene umgesetzt werden kann und das geht am besten mit der IDE, die im Buch beschrieben wird auch wenn sie etwas älter ist. Andere Behauptungen sind schlicht Blödsinn.
Und wenn jetzt einer mit dem ISO-Standard ankommt oder ach wie toll und wichtig doch TR1 für einen Anfänger ist, dann fang ich an zu schreien. Versprochen. Nur Großbuchstaben!

-
VC6 ist alt, aber nicht veraltet.
Aha? Und wie kommt das dann von dir:
man kann davon ausgehen, dass auftauchende Probleme bereits unzählige Male beantwortet wurden. Übrigens auch Probleme der Migration auf aktuelle Compiler.
Yo, und wir sollen diese unzähligen Male hier weiter dulden? Oder wer wird die Fragen beantworten? Oder sollen wir am besten die Fragen gleich Closed setzen? Oder wird derjenige gleich die Suchmaschine bemühen? Weil er weiß, das die Probleme schon mal da waren? Also ganz ehrlich: ein Anfänger wird nicht wissen, das die Probs am VC6 liegen! Er wird davon ausgehen, das er einen Fehler gemacht hat und es wird auf das selbe hinaus laufen: er wird die Frage stellen, wir werden sagen "Du benutzt vermutlich einen alten Compiler!" und das Spiel geht von vorne los. Wie jede Woche!
Sobald ein Anfänger im Thema ist wird er zwangsläufig mit verschiedenen Compilern, IDEs, und Betriebssystemen in Kontakt kommen.
Yo, es ist besser einen Anfänger erst mit einem veralteten Compiler beginnen zu lassen, damit er erstmal die Erfahrung macht, das man keinen alten Compiler benutzen soll. Sozusagen ins offene Messer laufen lassen? Richtig? Aha...
Und dann soll er die Erfahrung machen, das er doch gleich einen aktuellen Compiler hätte nehmen sollen. Weil er dann feststellen wird, das all seine Probleme auf einmal in Luft aufgelöst sind...Du bist mir ja echt ein Spaßvogel.
Und wenn jetzt einer mit dem ISO-Standard ankommt oder ach wie toll und wichtig doch TR1 für einen Anfänger ist, dann fang ich an zu schreien. Versprochen. Nur Großbuchstaben!
Ja, die ISO-Norm ist ganz toll und ich bin froh das wir uns endlich nach 10 Jahren in ISO-konforme Compiler bewegen. Aber anscheinend sind wir noch nicht 100% da, wo wir sein sollten, weil es immer noch solche Ignoranten wie dich gibt, die auf nicht konforme Tools setzen, um die Leute vor einem ordentlichen C++-Coding und dem damit verbundenen Spaß an der Sache zu behindern.
-
Kritiker schrieb:
Nebenbei wird hier (und zuvor) viel von riesigen Problemen gelabert, aber konkret konnte noch keiner etwas Gravierendes aufzeigen.
1. Inkompatibel mit vielen aktuellen und üblichen Bibliotheken. Und ja, boost zähle ich zu den Bibliotheken mit denen auch ein Anfänger ggf. recht schnell zu tun bekommt [Smartpointer werden z.B. hier gerne mal genannt].
2. Andere Behandlung von new
3. for & Gültigkeitsscope
...Und selbst wenn die Probleme für sich umgehbar sind (Workarounds), ist es dennoch blöd wenn man diese Workarounds lernen muss oder etwas falsches lernt, das man sich dann erst einmal abgewöhnen muss.
cu André
-
@Bulli
Also, nochmal.Wenn wurstuk sich für VC6 entscheiden sollte wird er das besprochene Spiele-Buch, 98% des "Primer", den "Petzold" und viele weitere Grundlagenbücher durcharbeiten können ohne das auch nur ein Furz von einem Problem auftaucht.
Du wiederholst deine Vorwürfe schon wieder ohne auch nur ein konkretes gravierendes Problem (Schleifenscopes zählen nicht dazu
) bennen zu können.In was für ein Messer läuft er denn gegebenenfalls? Die IDE ist doch in dem von ihm angestrebten Buch explizit beschrieben und wird vom Autor verwendet. Sobald er durchblick hat er vermutlich auch keine Probleme das Geschriebene auf VC9 zu übertragen, aber nicht vorher.
Das Probleme bereits häufig aufgetaucht und gelöst sind ist ein Vorteil. Du willst mir ja jetzt nicht erzählen, dass Visual Studio 2008 ohne Bugs ist und alle Probleme sich von selbst in Luft auflösen?
Warum sollen diese Art Fragen hier nicht geduldet werden? DU brauchst sie ja nicht zu beantworten wenn du nicht willst.
Die ISO-Norm ist toll, aber für viele, viele Projekte völlig irrelevant. Das hier ist so ein Fall.
Und was bitte soll "ordentliches c++-Coding" sein? Für jeden lesbarer, wartbarer, plattformunabhängiger, an Firmenguidelines orientierter Quelltext? Ist das Anfängerrelevant?
Ich stell mir immer mal vor wie es aussieht wenn sich ein Programmieranfänger eure schlauen Tipps zu Herzen nimmt.
Dann kauft er den Primer besorgt sich VSExpress 2008. Das Ding bügelt im zuerst das .net Framework, SQLServer, und was weiß ich noch alles auf die Platte ... dann startet er die Umgebung und nach vielem Rumsuchen schafft er es mit dem Assistenten (denn er weiß ja noch nicht viel über Quellcode, Header, ...) ein Startprojekt zu erzeugen, das dann so aussieht:
#include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { return 0; }So ganz anders als im Primer. Und im Standard findet man dazu auch nicht viel ...

Aber klar, das trübt seine Freude nicht, denn er weiß jetzt zwar nicht mehr weiter und darf bereits seine erste Frage im Forum stellen, aber auf der Positivliste steht ja, dass der Compiler standardkonformen Code übersetzen kann den er vielleicht 3 Jahre später schreiben können wird. Ganz toll.
Und was die Sache mit ignorant angeht. Ist es nicht eher ignorant die Bedürfnisse des Fragestellers zu IGNORIEREN, ihm genau das zu empfehlen was er nicht haben wollte (graue Wälzer), von einem Compiler abzuraten ohne auch nur ein konkretes, relevantes Problem nennen zu können?
Also bitte, bevor ihr hier weiter euren Dreck werft, dann sagt es einfach, enthüllt doch einfach den ANFÄNGERQUELLTEXT aus dem Primer oder sonst einem Buch, der mit VC6 so schwer umzusetzen sein soll. (wie gesagt, Schleifenscopes zählen nicht dazu
)Ansonsten ist meine Meinug klar. Gute Bücher (wie z.B. der Petzold) vermitteln einem die Grundlagen wunderbar, auch wenn sie eine ältere IDE bzw. einen älteren Compiler oder sogar ein älteres BS verwenden.
Gut Vista + ältere Compiler kann "eventuell" zu problemen führen.
*wegduck*@asc
Sorry, hab erst jetzt gesehen, dass du geantwortet hast. Das Fenster stand eine Zeit "offen".
Zu 1. Der Knackpunkt ist hier das Wort "üblich". Z.B. kommt im ganzen Primer kein boost vor. Ist es also wirklich Anfängerrelevant und wichtig für die GRUNDLAGEN von c++? Ich könnte auch sagen VC9 unterstützt TurboVison nicht. Und was ist das für eine tolle Bibliothek wenn man für die Konsole programmiert. Dasselbe gilt für smartpointer, wobei auto_ptr unterstützt wird.
Zu 2. Da weiß ich jetzt ehrlich gesagt nicht was du meinst. Könnte relevant sein, aber du müsstest nochmal genau sagen worum es da geht.
Zu 3. For-Scope habe ich oben schon erwähnt. Das Problem ist zu simpel um wirklich ein Problem zu sein.

Außerdem kann man bis auf ein paar Hacks das erlernte Wissen auch bei einem neueren Compiler verwenden. Wichtig ist doch sozusagen die Seele von C++ zu verstehen und nicht ob jetzt Header anders heißen, oder ob man sich geeinigt hat einen gewissen Datentyp in einen anderen Namespace zu verlegen, oder ob Bibliotheken zum Standard gehören oder nicht. Sowas wird ständig geändert und ergänzt.
-
Kritiker schrieb:
Zu 1. Der Knackpunkt ist hier das Wort "üblich". Z.B. kommt im ganzen Primer kein boost vor. Ist es also wirklich Anfängerrelevant und wichtig für die GRUNDLAGEN von c++? Ich könnte auch sagen VC9 unterstützt TurboVison nicht. Und was ist das für eine tolle Bibliothek wenn man für die Konsole programmiert. Dasselbe gilt für smartpointer, wobei auto_ptr unterstützt wird.
Üblich ist, das einer der hier bereits nach der Umgebung fragt auch zwischenzeitlich Fragen stellt. Und es ist nicht unüblich das dann durchaus Codeempfehlungen zu boost fallen (einer Bibliothek die schon fast als Standard angesehen, und zu teilen auch im nächsten Standard sowie bereits in den TR1 von 2003 übernommen wurden ist).
Der auto_ptr ist in vielen Fällen kein sinnvoller Smartpointer. Spätestens bei Listen nicht mehr.
Kritiker schrieb:
Zu 2. Da weiß ich jetzt ehrlich gesagt nicht was du meinst. Könnte relevant sein, aber du müsstest nochmal genau sagen worum es da geht.
Ich sehe einen Unterschied zwischen:
Foo* a = new Foo(); if(a) { // ... } delete a; // und try { Foo* a = new Foo(); // ... delete a; } catch(std::bad_alloc e) { // ... }[quote="Kritiker"]Zu 3. For-Scope habe ich oben schon erwähnt. Das Problem ist zu simpel um wirklich ein Problem zu sein. ;)[/cpp]
Weißt du wieviele Stunden ich wegen dieser "Kleinigkeit" schon verschwendet habe. An dickschädeligen Programmierern die anschließend meinen das es nicht ihr Problem ist, wenn der Code nicht 1:1 auf einen neueren Compiler zu portieren ist?
Alleine die Projektumstellung der VC6 spezifischen Kleinigkeiten zu VC 2005, inklusive der daraus resultierenden Warnungen und Fehler und den Abbruch der ganzen Aktion aus kurzsichtigen Entscheidungen hat mehr als 3 Tage gedauert.
Kritiker schrieb:
Wichtig ist doch sozusagen die Seele von C++ zu verstehen und nicht ob jetzt Header anders heißen, oder ob man sich geeinigt hat einen gewissen Datentyp in einen anderen Namespace zu verlegen, oder ob Bibliotheken zum Standard gehören oder nicht. Sowas wird ständig geändert und ergänzt.
WOZU, ich frage noch einmal, muß ein Anfänger sich mit sowas rumschlagen, wenn er es von vorne herein vermeiden kann? Und das mit dem Projekttyp (und auswahl des leeren Projektes) steht übrigens auch schon hier im Thread.
Reicht es nicht, das jemand der jetzt C++ beginnt in etwa 3 Jahren teile neu lernen kann? Nein, wir müssen auch noch zusätzliche Steine in den Weg schmeißen und ihn auch noch unnötige Projektkonvertierungen aufzwängen.
cu André
-
Sorry, wegen meiner späten Antwort, aber zwischen den Posts muss ich auch (manchmal) noch arbeiten.

OK, bei dem new hast du die Behandlung gemeint, wenn new misslingen sollte. Die Exception kam im Standard dazu, das ist wahr, aber auch da muss ich sagen, dass es einfach nicht anfängerrelevant ist. Im Primer wird die Sache z.b. auch nicht groß thematisiert sondern nur in einer Randnotiz abgehandelt.
Da liegt, wie ich finde, auch der Fehler in deiner (eurer) Argumentation. Du sprichst von Schwierigkeiten bei der Migration von Projekten, aktueller ISO-Standard, boost, ... usw. Das sind aber alles Dinge die beim Erlernen von C++ nicht, oder kaum relevant sind. Sicher wenn du mehrere zehntausend Zeilen Code auf einen anderen Compiler migrieren willst, stehst du vor einigen Problemen. Damit ist man beim Durcharbeiten eines Buches aber überhaupt nicht konfrontiert. Hinzu kommt, wie gesagt, dass man relativ schnell mit Dingen außerhalb des Standards arbeiten muss, GUI, irgendein Framework, ... Der Fragesteller des Threads hier will z.B. in Richtung Spiele gehen (ungefragt gehe ich davon aus, dass es keine Textadventures sein sollen
), d.h. selbst wenn er sich den Standard zu Herzen nimmt, wird ihm der wenig nützen. boost, STL, ... spielen dabei sowieso fast keine Rolle (STL ist ja z.B. nicht Threadsafe) und bereits ein HelloWorld-Programm fängt in einem Spielebuch ca. so an:int WINAPI WinMain (HINSTANCE Instance, ....
Anschließend geht es ab in die DirectX-Programmierung bzw. irgendeine Engine.
asc schrieb:
WOZU, ich frage noch einmal, muß ein Anfänger sich mit sowas rumschlagen, wenn er es von vorne herein vermeiden kann?
Ich sagte es bereits, weil es damit einfacher ist sein Buch durchzuarbeiten. Existiert ein gutes aktuelles Buch, das eine aktuelle IDE + Compiler verwendet, dann ist das OK, SUPER, dann nimmt man eben die. Gibt es aber ein gutes Buch, welches als einzigen "Makel" die Verwendung von VC6 hat, dann ist das auch OK, weil es wichtig ist die Inhalte des Buches zu verstehen. In so einem Fall würde deine Methode ja bedeuten, dass der Lernende den Code des Buches migrieren muss WÄHREND er versucht ihn zu verstehen. Das ist doch erst recht unsinnig. Natürlich kannst du sagen er soll das 3 Jahre alte Buch nicht nehmen, aber was soll er dann nehmen?
asc schrieb:
Reicht es nicht, das jemand der jetzt C++ beginnt in etwa 3 Jahren teile neu lernen kann?
Das bestreite ich ja gerade. Man muss sicherlich bei Änderungen etwas dazulernen, das ist klar. Aber die grundlegenden Dinge sind geblieben und werden auch bleiben. Und wenn jemand mit der Programmierung von C++ (möglicherweise sogar ohne Vorkenntisse in anderen Programmiersprachen) beginnt, dann ist der ISO-Standard zuerst einfach nebensächlich.
Ich kann mich nicht erinnern, dass wir auf der Schule/Uni auch nur eine aktuelle IDE, Datenbank, ... gehabt haben (vermutlich hatten alle kein Geld dafür) und jedes Mal hieß es dazu, dass es unwichtig ist, weil es um Grundlagen und Konzepte geht, für die auch die alten Versionen locker ausreichen. Und das hat ja auch gestimmt.
-
Kritiker schrieb:
Das sind aber alles Dinge die beim Erlernen von C++ nicht, oder kaum relevant sind.
Und genau hier unterscheiden sich immer noch unsere Meinungen. Bereits die Kleinigkeiten die sich unterscheiden (alleine auch das for-scope), mögen für dich nicht relevant sein. Ein Anfänger ist es aber nicht verständlich warum sein Code auf einen anderen Compiler auch einmal Fehler bringt (i is not declared...). Das mag für dich und auch für mich nur eine Änderung sein, aber viele Anfänger verstehen den Fehler schlicht und ergreifend nicht.
Dies ist der erste Grund gegen den VC6.
Kritiker schrieb:
Hinzu kommt, wie gesagt, dass man relativ schnell mit Dingen außerhalb des Standards arbeiten muss, GUI, irgendein Framework, ...
Also ich kenne deine Projekte nicht, aber in denen wo ich bislang gearbeitet habe, ist mit einer einzigen Ausnahme, die STL fester Bestandteil gewesen. Und in dem Ausnahmeprojekt mag der Projektleiter anfangs genauso wie du deren Bedeutung runtergespielt haben, als es dann aber von meiner seite kleine vereinfachte Umsetzung von Code gab, der von der STL/Boost inspiriert wurde, hat dieser recht schnell kopiert...
Kritiker schrieb:
Der Fragesteller des Threads hier will z.B. in Richtung Spiele gehen (ungefragt gehe ich davon aus, dass es keine Textadventures sein sollen
), d.h. selbst wenn er sich den Standard zu Herzen nimmt, wird ihm der wenig nützen. boost, STL, ... spielen dabei sowieso fast keine Rolle (STL ist ja z.B. nicht Threadsafe)Du verwechselst Threadsicherheit und Threadsicherheit (Bei allen Threadüberlegungen gibt es immer noch Bereiche die keine Threadübergreifenden Datensynchronisationen benötigen; zudem gibt es sehr wohl Threadsicherheiten bei diversen STL-Implementierungen), zudem gibt es einige durchaus bekanntere Projekte die STL und/oder Boost einsetzen (Obwohl ich weniger spiele, habe ich derer derzeit mindestens zwei Vollpreisspiele auf dem Rechner, die beide mindestens Boost verwenden).
Ja, es gibt Projekte die keine STL und kein Boost verwenden, dennoch behaupte ich das du die Relevanz dieser beiden Bibliotheken, gerade bei Projekten die innerhalb der letzten 5 Jahre begonnen wurden, unterschätzt.
Kritiker schrieb:
und bereits ein HelloWorld-Programm fängt in einem Spielebuch ca. so an:
int WINAPI WinMain (HINSTANCE Instance, ....
Anschließend geht es ab in die DirectX-Programmierung bzw. irgendeine Engine.
Selbst in Beispielen mit der WindowsAPI und DirectX habe ich bereits STL und Boost im einsatz gesehen. Nur weil noch immer einige den C++ Standard verschlafen haben, heißt das nicht das es keine Relevanz hat.
Ich finde es auch immer wieder schön wenn mein Chef eine neue Funktionalität will, und er kurz darauf einige STL-Verwendungen findet (Wie, das gibt es in den Standard?). Auch finde ich es immer wieder schön wie manche Entwickler eigene Krücken schreiben, weil sie - ohne es Auszuprobieren - die STL als Langsam ansehen.
Kritiker schrieb:
In so einem Fall würde deine Methode ja bedeuten, dass der Lernende den Code des Buches migrieren muss WÄHREND er versucht ihn zu verstehen. Das ist doch erst recht unsinnig. Natürlich kannst du sagen er soll das 3 Jahre alte Buch nicht nehmen, aber was soll er dann nehmen?
Wenn ich mir heutzutage ein Excel 6 Buch kaufe, weil es mir jemand empfohlen hat, muss ich auch in den sauren Apfel beißen, das manches nicht auf den Aktuellen so wie Beschrieben funktioniert. Werde ich mir deshalb Excel6 installieren, damit ich später Umlernen darf?
Und wenn er mit seiner ersten Frage kommt, ist die Wahrscheinlichkeit recht hoch das man ihn etwas aus der STL oder Boost nennt. Dann wird er ziemlich schnell feststellen wieviel wirklich nicht funktioniert (Und die Latte ist recht lang, ich durfte vor nicht alzu langer Zeit mit VC6 arbeiten - selbst ohne Templateproblematiken gab es genug was auf dem VC6 anders zu schreiben war als unter VC2005).
Kritiker schrieb:
asc schrieb:
Reicht es nicht, das jemand der jetzt C++ beginnt in etwa 3 Jahren teile neu lernen kann?
Aber die grundlegenden Dinge sind geblieben und werden auch bleiben. Und wenn jemand mit der Programmierung von C++ (möglicherweise sogar ohne Vorkenntisse in anderen Programmiersprachen) beginnt, dann ist der ISO-Standard zuerst einfach nebensächlich.
Gut, auf was soll sich der Anfänger den Stützen, wenn nicht auf den ISO-Standard?
Kritiker schrieb:
Ich kann mich nicht erinnern, dass wir auf der Schule/Uni auch nur eine aktuelle IDE, Datenbank, ... gehabt haben (vermutlich hatten alle kein Geld dafür) und jedes Mal hieß es dazu, dass es unwichtig ist, weil es um Grundlagen und Konzepte geht, für die auch die alten Versionen locker ausreichen. Und das hat ja auch gestimmt.
Ganz ehrlich, meine Meinung über Uni/Schule ist weitaus schlechter.
a) Bekommt man häufig einen Programmierstil beigebracht den man schnell wieder ablegen sollte.
b) Laufen viele der Programme nur deshalb, weil man fast kein C++, sondern eher C mit Klassen beigebracht bekommt.Und davon ganz mal abgesehen gehört die Standardbibliothek (zu der die STL gehört) zum Bestandteil von C++. Wenn du schon sagst das die STL unwichtig ist, kannst du gleich auch sagen das es hier nicht um C++ geht. Nein, mir geht es nicht darum das Anfänger jeden Algorithmus aus der Standardbibliothek kennen (tue ich davon abgesehen auch nicht). Aber das sie Grundlegende Konstrukte wie std::vector und std::map, ein paar der üblicheren Algorithmen und auch Templategrundlagen (Betonung auf Grundlagen) können.
Zudem geht es mir darum das Anfänger (und das betrifft auch die Spieleprogrammierer), nicht gleich wieder den Compiler wechseln müssen wenn sie die erste andere Bibliothek anfassen (Warum läuft die den nicht???)...
Belassen wir es dabei. Wir haben unterschiedliche Auffassungen von C++ und Grundlagen sowie der Verbreitung und den Verwendungszweck der Standardbibliothek (und Boost).
cu André
-
asc schrieb:
Belassen wir es dabei. Wir haben unterschiedliche Auffassungen von C++ und Grundlagen sowie der Verbreitung und den Verwendungszweck der Standardbibliothek (und Boost).
Nein, nein, unsere Auffassung von c++ ist so unterschiedlich nicht, ich kann dir in den meisten Punkten zustimmen. Den einzigen Punkt den ich kritisiere (auch wenn wir hier im ISO-C++ Forum sind) ist, dass du (und einige andere) sobald die Frage auftaucht sofort über VC6, ältere Bücher, usw. herziehst ohne die Ansprüche zu differenzieren und nur mit dem Argument: "Nicht konform mit dem aktuellen Standard". Was du sagst ist alles richtig, aber bis es relevant ist, muss man zuerst eine Entwicklung durchmachen. Du sagst selbst an Schulen, Hochschulen usw. wir zuerst ein Mix aus C und Klassen gelehrt. Und warum? Weil da das Konzept im Vordergrund steht und nicht der ISO-Standard. In dieser Phase ist der Standard unwichtig. Weil mit dem Konzept kannst du auf Java, Object-Pascal oder was weiß ich wohin wechseln wo es andere Bibliotheken als die STL oder boost gibt, die aber ähnliches leisten. Mit VC9 funktionieren z.B. ca. 95% der Angaben im Primer und mit VC6 nur ca 89% (grobe Schätzung von mir), aber die Konzepte bekommt man so oder so mit.
Der Standard ist wichtig, keine Frage, aber nicht für jeden bzw. nicht für jeden sofort. Deshalb kann man auch nicht pauschal sagen jemand soll die Finger von etwas lassen, weil es nicht standardkonform ist. Das ist mein einziger Kritikpunkt. Gründe habe ich vorher bereits genügend genannt.
Aber gut, vielleicht finden wir da wirklicht nicht zueinander. Belassen wir es dabei und bis zum nächten Mal.
