Spiele mit C++ & DirectX programmieren.. wie fange ich an?
-
Original erstellt von KXII:
**ok, jetzt ist endgültig schluss. hier im forum gibt echt mehr noobs als alles andere. tggc hat mich vor ein paar tagen auch schon genervt und jetzt du.es ist ein leichtes dinge falsch zu machen oder kaputt zu reden oder anders gesagt, das gegenteil von etwas konkretem zu tun. typisches politikerhandeln... alles kaputtreden. hauptsache dummgelabert!**
Ich hab dich doch auch lieb.
-
Ich verstehe KXII schon irgendwie.
Mit MAKE-Files möchte ich auch net hantieren.
Klar, wenn das einmal für ein Projekt steht, is' alles gut.
Aber sobald sich da wieder was ändert, vor allem Abhängigkeiten, kann man das ganze Ding "von Hand" "debuggen"...Compiler-Schalter in den IDEs, die per Klick essentielle Optionen togglen, sind schon Gold wert. Klar wird man damit ggf. nicht das i-Tüpfelchen an Leistung aus einem gut dokumentierten Kommandozeilen-Compiler rausholen.
Wenn man genau weiß, WAS man WIE will, kann man ja ruhig die gute Kommandozeile nehmen und "cl -LEAN_AND_MEAN -fucking_fast -for_AMD_only -rocks -1337" verwenden...
Wer darauf abfährt...Header-Dateien selbst inkludieren wäre schon geil. Hat er recht.
Und vor allem diese INCLUDE-ONLY-ONCE-Gatter automatisieren...
#IFNDEF stuff
#DEFINE stuff...bla...
#ENDIF
Was soll der Scheiß?? Dat is' echt übel.
Da baut man sich am Besten Header-Templates für!Da könnte man noch einiges von Java abschneiden.
Vielleicht Mehrfachvererbung (stattdessen: Interfaces) und Zeiger (stattdessen: Referenzen) ganz rausnehmen. Das funktioniert ja auch ALLES so unter Java, ohne diese Sachen!
Daß man die Zugehörigkeit von Methoden zu Klassen in 'nem Header-File schreibt (mit private etc.), aber die Methoden selber dann im alten strukturierten (nicht-OO) "C-Stil" in die CPP-Datei klatscht und mit dem Scope-Operator übersäht mißfällt mir auch irgendwie...
Aber egal. C++ ist mächtig. Und mit gehörig Disziplin klappt es auch alles so wie man will...
MfG Sarge
-
Original erstellt von <Sgt. Nukem>:
**Header-Dateien selbst inkludieren wäre schon geil. Hat er recht.
Und vor allem diese INCLUDE-ONLY-ONCE-Gatter automatisieren...
#IFNDEF stuff
#DEFINE stuff...bla...
#ENDIF
Was soll der Scheiß?? Dat is' echt übel.
Da baut man sich am Besten Header-Templates für!**#pragma once
Vielleicht Mehrfachvererbung (stattdessen: Interfaces) und Zeiger (stattdessen: Referenzen) ganz rausnehmen. Das funktioniert ja auch ALLES so unter Java, ohne diese Sachen!
Für Flexibilität und Kontrolle nehme ich gerne eine komplexere Syntax auf mich.
Daß man die Zugehörigkeit von Methoden zu Klassen in 'nem Header-File schreibt (mit private etc.), aber die Methoden selber dann im alten strukturierten (nicht-OO) "C-Stil" in die CPP-Datei klatscht und mit dem Scope-Operator übersäht mißfällt mir auch irgendwie...
Ich weiß nicht, was daran C-Stil sein soll. Es ist auch falsch, krampfhaft alles "OOP" machen zu wollen, "alles muss in eine Klasse". Das ist _nicht_ OOP.
Du musst es ja nicht so machen; kannst auch alles in den Header klatschen. Dann hast du aber noch längere Kompilierzeiten und weniger Übersicht.
-
Original erstellt von <OOP>:
#pragma onceWow. Dasselbe in grün.
Für Flexibilität und Kontrolle nehme ich gerne eine komplexere Syntax auf mich.
Gibt's da was spezielles, was Du darunter verstehst...?!
Naja, ich weiß net wie das mit den FunctionPointern is', wie man die ersetzen könnte, o.ä. - aber sonst!?Ich weiß nicht, was daran C-Stil sein soll. Es ist auch falsch, krampfhaft alles "OOP" machen zu wollen, "alles muss in eine Klasse". Das ist _nicht_ OOP.
Du musst es ja nicht so machen; kannst auch alles in den Header klatschen. Dann hast du aber noch längere Kompilierzeiten und weniger Übersicht.
C-Stil im Sinne von strukturiert ausschauend -> Erst die Header-Datei macht die Ansammlung von Methoden zur Klasse.
Daß man auch strukturiert coden kann is' klar. Hab' ich auch nix gegen gesagt.Klar kann ich das! Aber wie sinnvoll ist das? Ich kann auch alles in 'ne TXT-Datei reinschreiben, und diese inkludieren... wow. Tadaaaa...
Naja, egal. Die Syntax is' auf jedenfall sonst ziemlich i.O.
-
also merfachvererbung vermisse ich bei java durchaus, hab mich erst am donnerstag wieder drüber aufgeregt. die sache mit den interfaces verschlimmbessert alles im prinzip ja auch nur...
-
Original erstellt von KXII:
ok, jetzt ist endgültig schluss. hier im forum gibt echt mehr noobs als alles andere. tggc hat mich vor ein paar tagen auch schon genervt und jetzt du.Also verbannst Du mich jetzt endgültig aus dem Forum? :p
es ist ein leichtes dinge falsch zu machen oder kaputt zu reden oder anders gesagt, das gegenteil von etwas konkretem zu tun. typisches politikerhandeln... alles kaputtreden. hauptsache dummgelabert!
Es gibt aber auch die Art Politiker die ständig nur betont dass alles besser und gaanz toll wird und alle zufrieden sein werden wenn man sie wählt...
ich muss niemanden zu seinem glück zwingen und das werde ich auch garantiert nicht tun!
*lol* Wäre mein Glück denn eine überladene IDE?
Wenn Du ein paar echte Argumente/ weniger schwammige Aussagen brächtest könnte man auch auf Deine Posts eingehen, so kann man sich nur fragen ob Du das alles hier Ernst meinst oder nur herumtrollst.
-
@Alle
So wie ich das verstanden habe, sagt KXII ja nicht, dass C++ an sich Schrott ist, sondern dass es durchaus verbesserungsfähige Aspekte gibt. Und da muss ich ihm absolut Recht geben. Ich zähle hier mal ein paar zusätzliche Beispiel auf, die mich persönlich an C++ stören.Bsp. 1
class Object{
private:
Window ownerWnd;
}class Window{
std::list<Object*> li;
};Das klappt z.B. so nicht, da die Klasse Window dem Compiler noch nicht bekannt gemacht wurde, wenn man Sie als Member von Object deklariert. Wenn man die Klassen in der umgekehrten Reihenfolge schreibt hat man dasselbe Problem. Da hilft nur folgendes:
class Object;
class Window;vor den Klassendedeklarationen zu schreiben. Was soll den das ??? Da könnte man doch erwarten, dass des Compiler die entsprechenden Klassendeklarationen in den dem Projekt angehörigen CPP Dateien suchen geht.
Das gleiche sehe ich für die Funktionsprototypen. Natürlich sind Funktionsprototypen sinnvoll bei vorkompilierten statischen oder dynamischen Bibliotheken doch für kleine Projekte sind die nur ärgerlich. Aus diesem Grund könnte man sie ja freiwillig machen ? Der Compiler sucht nach den Prototypen und wenn er diese nicht findet, dann sucht er halt direkt nach den Implementationen.Bsp 2.
D3DPRESENT_PARAMETERS d3dpp = {0};
d3dpp.Windowed = false;
d3dpp.DeviceWindow = hWnd;
d3dpp.FullScreen_RefreshRate = 85;
d3dpp.FullScreen_PresentRate = D3DPRESENT_RATE_ONE;
d3dpp.BackBufferCount = 1;
usw.Andere Sprachen wie z.B. Delphi kennen da ein Schlüsselwort "with". Das würde dann in etwa so aussehen (eine Mögliche Art, das in C++ Synthaktisch zu implementieren):
D3DPRESENT_PARAMETERS d3dpp = {0};
with(d3dpp){
Windowed = false;
DeviceWindow = hWnd;
FullScreen_RefreshRate = 85;
FullScreen_PresentRate = D3DPRESENT_RATE_ONE;
BackBufferCount = 1;
}Bsp. 3
Was ich in C++ aber auch in Java sehr vermisse ist ein ausgeklügeltes System für Mengenangaben wie si z.B. Delphi anbietet.Bsp. 4
Wie währe es mit einer Sprachunterstützen Form von Regular - Expressions ?Bsp. 5
Strings: Brrrrrrrr......Bsp. 6
STL: Brrrrrrrrrrrrrrrrrrrrrrrrrrrrr.Zu den letzten Beiden: Ich habe bisher keine Sprache gesehen (was nicht heissen soll, dass es sie nicht gibt !) Die dynamische Datenstrukturen direkt in der Sprache unterstützen.
Bsp. 7
Diverse Objektorientierte Feauters wie z.B. statische Konstruktoren oder Super Konstuktoren, wie sie Java anbieten:---------------- C++ ----------------
class Object{
private:
static unsigned int cRef;
public:
Object(void);
~Object(void);
};unsigned int Object::cRef = 0;
Object::Object(void){
Object::cRef++;
}Object::~Object(void){
Object::cRef--;
}
------------------------------------------------------- Java ---------------
class Object{
private static int cRef;static{
Object.byte = 0;
}public Object(){
Object.cRef++;
}
protected finalize(){
Object.cRef--;
}
}
--------------------------------------Bsp. 8
Die Datentypen missfallen mir ausgesprochen:
in einem 32 - Bit System ist z.B. ein int gleich lang wie ein long und in 16 - Bit System ist int gleich lang wie ein short. Das finde ich Schwachsinn.
Dann das signed / unsigned :C++
unsigned char kleineVariable;Java
byte kleineVariable;natürlich kann man mit typedef sowas machen
typedef unsigned char byte;
byte kleineVariable;doch wie wir alle wissen, reagiert dann die Synthax - Hervorhebung nicht, weil byte dann kein Schlüsselwort ist.
So ich muss aufhören, doch es sind noch ein paar Sachen !!
Wisst ihr, man könnte nun meinen, dass ich ein C++ Gegner bin, doch das Gegenteil ist der Fall ! Ich liebe doppelte Pointer, Funktionspointer, typenlose Pointer und die ganzen Cast über alles und würde keine Sprache freiwillig anrühren, mit der ich nicht solche "Schweinereien" machen könnte.
Doch es gibt wie gesagt auch Dinge, die mich ziemlich stören !Wie auch immer, ich habe oft das Gefühl das es hier Leute gibt, die extrem versuchen, das zu verteidigen was sie gelernt haben, da sie sonst den Boden unter den Füssen verlieren würden. Wie viele Pfarrer, die um die Kirche fürchten. Denn wenn es die Kirche nicht mehr gibt, dann sind Sie Wertlos. Genauso viele Programmierer. Wenn die Sprache, die sie ein Leben lang gelernt haben von einer anderen übertrumpft wird, dann sind Sie plötlich nicht mehr die Gurus und müssten auch wieder lernen...
So ich wünsche euch eine gute Nacht
Gruss Ishildur
-
danke! du redest mir aus der seele.
-
@!nman
ich muss leider sagen, das die dinge die mich an c++ stören, leider so vielfältig und komplex sind, das ich mehrere seiten bräuchte um sie genau beschreiben zu können. das ist mir zu viel arbeit und vorallem kann man das mündlich wesentlich besser. es geht mir auch gar nicht darum das hier im forum detalliert zu machen. ich bin (mal wieder) auf das thema gestoßen worden (siehe den anfang des beitrags), und müsste nun alles ganz genau erklären, damit ihr mich versteht. hier noch ein kleiner tipp zum besseren verständniss (den könnt ihr als netten hinweis affassen oder einfach ignorieren, mir egal):
c++ ist eine gute sprache, aber längst überfällig für eine version 2.0.
was früher einmal als komfortabel galt, kann zwar für den einzelnen auch heute immer noch gelten, vielleicht weil er noch nie was anderes gemacht, aber keinesfalls für die allgemeinheit (es gibt immer noch freaks, die mit assembler ihre lochkartenleser programmieren und es macht ihnen spass. ok!).
kurz (lol) gesagt. beim programmieren sollte es auf die wesentlichen dinge ankommen, auf genau das was man machen möchte, und nicht auf andere (sinnlose) dinge. wenn ich eine mp3-datei abspielen möchte, dann möchte ich in meinem player lediglich auf play drücken müssen, und nicht noch 100 verschiedene dinge vorher aktivieren, einstellen oder sonst wie konfigurieren müssen (ausser es ist notwendig, weil ich es so will, und der compiler es erraten müsste aus unendlich vielen möglichkeiten). wenn ich ein programm schreiben möchte, dass ein paar klassen hat, die ein paar berechnungen durchführen und diese dann ausgeben, dann möchte ich NUR DAS dem compiler/ide mitteilen müssen, und nicht noch vorher 100 verscheidene sachen aktivieren, einstellen oder sonst wie konfigurieren müssen, aber leider muss man das in c++, auch wenn es leute gibt, die was anderes sagen.
-
Ich zähle hier mal ein paar zusätzliche Beispiel auf, die mich persönlich an C++ stören.
Das sind IMHO alles nur kleine Nickligkeiten, die kein Nachteil der Sprache definieren können. Wie du schon sagst, sie stören nur dich persönlich.
Bsp. 1
kleinere Symboltabelle => schnelleres KompilierenBsp. 2
Ich seh das Problem nicht?Bsp. 3
Sagt mir leider nix, was ist denn das für ein System?Bsp. 4
Benutze eine entsprechende lib, das kann kein Nachteil der Sprache sein.Bsp. 5/6
Sehr gut argumentiert, ich glaube aber, du hast nicht recht.Bsp. 7
Ich seh wiederum das Problem nichtBsp. 8
Beste Anpassung an die Plattform => höchstmögliche Geschwindigkeit
Das ein typedef nicht "gehighlighted" wird, ist kein kein Nachteil der Sprache, liegt ja an deiner IDE.Zum Header / cpp / inkludieren...
Ich finde es gut, das h und cpp getrennt sind. Java-Klassen sind mir zu unübersichtlich, wenn ich nur mal schnell eine Funktionsprototyp anschauen möchte. Man kann so auch erstmal ein Interface nur hinschreiben und es kompiliert schonmal. Ist aber Geschmackssache...
Die #defines als include guards sind sicherlich rückständig, aber obwohl einem z.B. das (kürzere) #pragma once angeboten wird, benutze ich das nie. Ich habe einfach eine Schablone für header und benutze diese jeweils. Diese Sache ist wahrscheinlich auch historisch gewachsen und man kann sie nicht einfach so herausschmeissen, weil C++ ja auch immer C Programme kompilieren sollte. (bzw. war es anfangs ja umgekehrt, ein C++ Programm wurde vorm kompilieren in ein C Programm "umgeschrieben")Für mich ist C++ schon ziemlich genau so straightforward, wie "lediglich auf play drücken", eine Hochsprache ohne Schnörkel, für alles einsetzbar und dabei mit überlegen schnellen Kompilaten. Und gerade diese Geschwindigkeit ist ja in der Spiele-/Grafikprogrammierung heute immer noch gefordert.
-
da du selbst angibst, wie man es richtig macht, ist das kein problem von c++, sondern, dass manche damit nicht umgehen können weil sie nicht wissen was der compiler macht... das prob hab ich aber irgendwie nicht, doch wenn es dich so sehr stört, schreib einen preprozessor der dir die header in der richtigen reihenfolge included und entsprechende class ... ; einfügst
wenn man das in c++ sauber macht, dann schaut es eigentlich so aus:
D3DPRESENT_PARAMETERS d3dpp(false,hwnd,85, D3DPRESENT_RATE_ONE,1);oder im D3DPRESENT_RATE_ONE code nach der decl
D3DPRESENT_PARAMETERS d3dpp=D3DPRESENT_PARAMETERS(false,hwnd,85, D3DPRESENT_RATE_ONE,1);
3. & 4.
schliesse mich tggc an5. & 6.
wenn du STL nutzt ist das quasi in der sprache inegriert, weil es so ziemlich standart ist bei c++ und dass compiler das nicht von grund auf in sich haben ist eher ein segen, wer weiß, wozu man dann sonst bei manchen von denen sonst gezwungen wäre.//---------------- C++ ---------------- class Object{ private: static unsigned int cRef; public: Object(void); ~Object(void); }; unsigned int Object::cRef = 0; Object::Object(void){ cRef++; } Object::~Object(void){ cRef--; }
und wenn du auf
unsigned int Object::cRef = 0;im speziellen anspielst, nutz 'ne singleton class, dann geht alles wie von selbst
besorg dir visual assist, das teil highlightet dir alles + code completion + docu einblendung + funktionparameter anzeige + "codeprediction" (zeigt dir nen vorschlag an, was du als nächste tippen könntest, z.B. wenn du einen parameter in eine funktion übergeben könntest, dann einen passenden parameter und dann kann man wie bei code completion tab drücken und es steht drinne!)
ich finde c++ ist die beste sprache die man haben kann, man kann systemnah coden, assembler einfügen (wobei das nicht wirklcih c++ bestandteil ist), und man kann mittels templates sogar funktional programmierer (wozu es bei SGI echt kranke artikel und samples gibt)
und wenn man sich halflife2 anschaut, dass angäblich ziemlich auf anhieb auf 64bit systemen laufen sollte, ist c++ protabler als der ganze rest :D:D:D
rapso->greets();
-
Ich finde es gut, das h und cpp getrennt sind. Java-Klassen sind mir zu unübersichtlich, wenn ich nur mal schnell eine Funktionsprototyp anschauen möchte. Man kann so auch erstmal ein Interface nur hinschreiben und es kompiliert schonmal. Ist aber Geschmackssache...
Einmal javadoc drüber und da is' nix unübersichtliches mehr!
Ein "Interface" nur hinschreiben und es kompiliert schonmal?! Eine Header-Datei kompilieren?!
Aber das geht in Java doch gerade! Interfaces - zack - feddich...Aber naja...
-
Original erstellt von KXII:
ich muss leider sagen, das die dinge die mich an c++ stören, leider so vielfältig und komplex sind, das ich mehrere seiten bräuchte um sie genau beschreiben zu können.Akzeptiert, dennoch glaube ich dass Du dann einfach mit einer anderen Sprache als C++ besser fahren würdest als auf "die nächste Version" zu warten, c++0x wird voraussichtlich ganz andere Neuerungen bieten als die die Du scheinbar haben möchtest (die - nichts für ungut - mir übrigens auch nicht sinnvoll erscheinen ).
Ich an Deiner Stelle würde wirklich nicht einfach darauf warten dass C++ eines Tages so aussieht wie ich es gerne hätte; beschaff Dir mal ein paar gute Entwicklungswerkzeuge, das erleichtert das Programmieren enorm und wenn Du dann noch immer die gleichen Bedenken hast dann such Dir einfach eine Sprache die Deine Bedürfnisse besser erfüllt, es gibt ja genug!
Ishildur: Ich verweise einfach mal auf die Beiträge von TGGC und rapso, in meinen Augen würden die von Dir genannten Sprach-"Features" C++ zudem nur unnötig verfetten lassen.
<Sgt. Nukem>: Die "C++ Vs. Java"-Diskussion (-bzw. Flame) wurde hier schon öfters durchgekaut, für Details einfach mal suchen...
-
ich finde c++ ist die beste sprache die man haben kann
Ok, versuchen wir es einmal anders.
Jetzt kommt es auf deine Ehrlichkeit an !!!
Zähl doch bitte mal alle Programmier - sowie Scriptsprachen auf, die du gut kennst und ich meine, die du wirklich gut kennst. Dann zählst du für jede Sprache 4 - 5 Argumente auf, wieso du C++ bevorzugen würdest...Gruss Ishildur
-
Original erstellt von Ishildur:
Zähl doch bitte mal alle Programmier - sowie Scriptsprachen auf, die du gut kennst und ich meine, die du wirklich gut kennst. Dann zählst du für jede Sprache 4 - 5 Argumente auf, wieso du C++ bevorzugen würdest...Hmm, die Debatte trägt irgendwie seltsame Früchte - sollen wir jetzt ernsthaft Python mit C++ mit Lisp vergleichen?
-
Original erstellt von <Sgt. Nukem>:
**Einmal javadoc drüber und da is' nix unübersichtliches mehr!
Ein "Interface" nur hinschreiben und es kompiliert schonmal?! Eine Header-Datei kompilieren?!
Aber das geht in Java doch gerade! Interfaces - zack - feddich...Aber naja...**
Der Inhalt einer Header Datei wird bekanntlich immer kompiliert, wenn man sie irgenwo included. Ich kann also Funktionen und Methoden aufrufen, ohne das ich sie geschrieben habe. Das mach ich ziemlich oft, wenn ich so dahinprogrammier. Das hat nix mit dem was Interfaces in Java zu tun. Da ist sicher sehr subjektiv gesehen, aber das hatte ich auch extra betont.
Javadoc ist toll, allerdings haben diese html-Dokus den Nachteil, das man schlecht drin suchen kann.
-
Was soll den das ???
das nennt man Forward Deklaration und ich weiss nicht wie der Compiler dass sonst machen soll (und ich weiss auch nicht wo das Problem da ist)
aber in deinem Fall bringt dir das eh nichts, wenn musst du das so machen
class Object; class Window { std::list<Object*> obj; }; class Object { Window x; //deklaration von Window muss bekannt sein };
Da könnte man doch erwarten, dass des Compiler die entsprechenden Klassendeklarationen in den dem Projekt angehörigen CPP Dateien suchen geht.
klar, ich hab lust 3 Stunden zu warten, bis mein Projekt fertig kompiliert ist, nur weil ich irgend wo keine Forward Deklaration schreiben will
Entweder hast du noch nie ein großes Projekt kompiliert oder du hast viel Zeit um auf deinen Compiler zu warten
Wie währe es mit einer Sprachunterstützen Form von Regular - Expressions ?
Eher eine RE Implementation in die Std Lib
Zu den letzten Beiden: Ich habe bisher keine Sprache gesehen (was nicht heissen soll, dass es sie nicht gibt !) Die dynamische Datenstrukturen direkt in der Sprache unterstützen.
doch wie wir alle wissen, reagiert dann die Synthax - Hervorhebung nicht, weil byte dann kein Schlüsselwort ist.
hmm, wie wär es damit, die IDE den Editor zu wechseln? Also die Darstellung des Quelltextes in einer IDE herranzuziehen um eine Sprache zu kritisieren, finde ich irgend wie merkwürdig
und die ganzen Cast
öhm. Eigentlich sollte man auch in C++ so programmieren, dass man keine Casts benutzt.
@KXI
wenn ich eine mp3-datei abspielen möchte, dann möchte ich in meinem player lediglich auf play drücken müssen, und nicht noch 100 verschiedene dinge vorher aktivieren, einstellen oder sonst wie konfigurieren müssen (ausser es ist notwendig, weil ich es so will, und der compiler es erraten müsste aus unendlich vielen möglichkeiten).
und ich dachte du programmierst Direct X und dann regst du dich über so was auf? SCNR
wenn ich ein programm schreiben möchte, dass ein paar klassen hat, die ein paar berechnungen durchführen und diese dann ausgeben, dann möchte ich NUR DAS dem compiler/ide mitteilen müssen, und nicht noch vorher 100 verscheidene sachen aktivieren, einstellen oder sonst wie konfigurieren müssen, aber leider muss man das in c++, auch wenn es leute gibt, die was anderes sagen.
bitte gibt mir dafür ein kleines Beispiel, da ich diese Kritik in keinster Weise nur annährend nachvolziehen kann
-
Original erstellt von nman:
<Sgt. Nukem>: Die "C++ Vs. Java"-Diskussion (-bzw. Flame) wurde hier schon öfters durchgekaut, für Details einfach mal suchen...Hab' ICH die angefangen??
Ich will darüber im Speziellen gar keine Diskussion führen, eure 2-wöchentlichen OpenGL vs. DirectX "Diskussionen" regen mich mittlerweile auch nur auf...
-
@kingruedi
diese letzen sätze von mir sollen keine kritik darstellen, sondern sind ein allgemeiner hinweis, wie man programmieren sollte. egal in welcher sprache. mir ist es am liebsten, wenn programme die dinge übernehmen, die ich sowieso (unnötigerweise) hinschreiben müsste. das können dann zum einen sachen sein, die sich nur auf die ide beziehen, oder auch sachen, die aufgfund der komplexen verwachsung innerhalb der sprache kaum oder gar nicht aus der sprache zu entfernen sind. eine gute programmiersprache verlangt nur das von einem programmierer, was individuell vom programmierer programmiert werden möchte, und vom compiler erraten werde müsste. das fängt eigentlich schon bei so kleinen sachen an, das man, um eine klasse zu deklarieren folgendes schreiben muss:
class CRectangle { public: CRectangle(void); ~CRectangle(void); };
natürlich habe ich dafür auch einen kleines "ClassCreator"-Programm das mir eine cpp und eine header datei erstellt, in der schon der klassenrumpf enthalten ist, aber genau das könnte auch eine IDE alleine machen. beziehungsweise man könnte sich den ganzen text sparen und die ide übernimmt die verwaltung vollkommen alleine, in der art, das man nur angibt:
1. auf button "neue klasse erstellen" klicken
2. name der klasse eingeben
3. FEDDISCH (IDE erstellt automatisch alle "internen" verwaltungstrukturen)das könnte man auch mit c++ und einer guten IDE machen. aber jetzt stell dir mal vor es gibt viele solcher automatisierungen (ich will nicht alle vereinfacherungen/automatisierungen aufzählen, die mir einfallen. versuch dir einfach mal vorzustellen es gäbe viele solcher dinge), dann wird die eigentliche sprache ja so weit auseinander genommen und verändert, das man nicht mehr z.b. von c++ reden könnte. nich will keine drag and drop and klick and klick orgien, aber wenn man mal bedenkt, wieviel unötiges zeug man eigentlich immer wieder schreibt, nur um die einfachsten dinge zu tun, naja ...
vergisst erst mal meine kritik an c++, viel mehr finde die IDE's viel zu dumm und verbesserungsfähig.
noch ein kleines eispiel:
wenn ich in der klasseddefinition (h-datai) eine funktiion angebe, wieso muss ich diese dann nocheinmal in der cpp-datei hinschreiben? das könnte doch auch eine IDE übernehmen.
-
Original erstellt von Ishildur:
**@rapso
Ok, versuchen wir es einmal anders.
Jetzt kommt es auf deine Ehrlichkeit an !!!
Zähl doch bitte mal alle Programmier - sowie Scriptsprachen auf, die du gut kennst und ich meine, die du wirklich gut kennst. Dann zählst du für jede Sprache 4 - 5 Argumente auf, wieso du C++ bevorzugen würdest...Gruss Ishildur**
wenn du so eine auflistung haben möchtest, dann google mal
rapso->greets();