Wie fang ich an?
-
also erstmal hallo!
ich programmiere seit ca 4 jahren in verschiedenen BASIC-sprachen. angefangen hat das ganze aber mit c++, turbo c++ um genauer zu sein. hab als anfänger dann immer konsolenanwendungen geschrieben. später lernte ich dann blitzmax, blitzbasic etc. kennen und machte mit C++ so gut wie nichts mehr. in blitzmax programmierte ich dann auch meine ersten anwendungen, in bb dann kleine 2d spiele und später 3d spiele(hauptsächlich ego-shooter). hab dann auch noch nebenbei diverse skriptsprachen wie z.B html und php gelernt, spielt ja aber keine große rolle.
nun bin ich aber, wie ihr euch jetzt sicher denken könnt, bei den sprachen an die grenzen gekommen. blitzbasic ist so oder so ne schwache sprache, ganz klar. unterstützt keine pointer,strukturen, linked lists, OOP usw. außerdem unterstützt BB gerade mal 3 variablen-typen(long,float und string).
Und blitzmax ist auch...naja...gut, ich höre jetzt besser auf. Außerdem sind die Sprachen langsam(nein, sie sind keine interpreter, also keingrund mich zu schlagen)
auf jeden fall bin ich jetzt fest entschlossen, wieder zu c++ zu wechseln. in den ganzen jahren habe ich natürlich so gut wie alles vergessen.
so, statt hier groß rumzureden liste ich meine fragen ganz einfach mal auf.1. welchen C++ compiler würdet ihr mir empfehlen? ich dachte da an Visual C++.
2. falls ich visual c++ verwende, würde ich erstmal paar jahre die express edition verwenden. welche einschränkungen hat sie? ist die express version eher was für hobby-entwickler oder hat man auch im kommerziellen bereich ne chance damit?
3. ich will in c++ erstmal hauptsächlich anwendungen und dlls programmieren. welches framework würdet ihr mir empfehlen? .NET? was ist die dieses "Windows Forms"? ist das ein bestandteil von .net die zur programmierung von graphischen oberflächen dient?
4. welches buch würdet ihr mir empfehlen? ich dachte an dieses hier http://www.amazon.de/Einstieg-Visual-2005-Galileo-Computing/dp/3898428354
gut, ich bin zwar erfahrener programmierer, habe in c++(vor allem in vc++) aber eigentlich keine ahnung mehr.5. wie sieht es mit netzwerk-libs,process-libs etc. so aus? was würdet ihr mir da empfehlen? oder sind in vc++ bereits welche mit dabei? wie siehts außerdem mit ner befehlsreferenz aus?
danke für eure antworten im voraus.
-
1. Ja, Visual C++.
2. Visual C++ 2005/2008 Express sind schon ganz in Ordnung. Ansonsten kostet das Upgrade auf die Standard/Professional auch nicht die Welt. Und guck sowas bitte selber nach, die Visual-Studio-Versionen-Vergleichs-Seite von Microsoft ist so schwer nicht zu finden.
3. .NET hat erstmal mit C++ nix zu tun, und ich würde dir nicht empfehlen gleich mit C++/CLI anzufangen. Windows Forms ist ein Teil des .NET Frameworks, also vergiss es erstmal. Und... beim VC++ Express kommt die ATL/MFC nicht mit, also verabschiede dich auch gleich mal von denen. Es gibt einige freie Frameworks, wie z.B. wxWidgets, aber was dir da am angenehmsten ist musst du selbst entscheiden.
4. ... Pfuh? Keine Ahnung.
5. STL ist Pflicht. Boost ist fast Pflicht und sehr gut. Doku findest du über Google. Die ganzen Windows APIs, und die STL Version welche mit dem Visual C++ mitkommt, sind in der MSDN dokumentiert. Und dann gibt es natürlich noch einen riesen Haufen Libraries für die verschiedensten Dinge.
p.S.: wenn du klickibunti gewöhnt bist, und sowieso schon kaum mehr was von C++ weisst, wieso versuchst du es dann nicht gleich mit C#?
-
Für die Basics:
http://www.amazon.de/C%2B%2B-Primer-Stanley-B-Lippman/dp/3827326125/ref=sr_1_1?ie=UTF8&s=books&qid=1210839920&sr=1-1Alternative für die Basics (hat mir ganz gut gefallen)
http://www.amazon.de/Video2brain-Video-Training-DVD-Stunden-Video-Training/dp/3827207681/ref=sr_1_2?ie=UTF8&s=software&qid=1210840168&sr=8-2
-
wenn du klickibunti gewöhnt bist, und sowieso schon kaum mehr was von C++ weisst, wieso versuchst du es dann nicht gleich mit C#?
Was soll den bitte klickibunti sein? Meinst du etwa Anwendungen? Ich will mit C++ auch noch andere Sachen machen.
Und VC# ist ja ne reine .NET Sprache....NET hat erstmal mit C++ nix zu tun, und ich würde dir nicht empfehlen gleich mit C++/CLI anzufangen. Windows Forms ist ein Teil des .NET Frameworks, also vergiss es erstmal. Und... beim VC++ Express kommt die ATL/MFC nicht mit, also verabschiede dich auch gleich mal von denen. Es gibt einige freie Frameworks, wie z.B. wxWidgets, aber was dir da am angenehmsten ist musst du selbst entscheiden.
Und warum soll ich das mit .NET und Windows Forms gleich vergessen? Könntest du mir außerdem diese Sache mit den MFC genauer erklären? Die MFC sind doch ne Sammlung von objektorientierten Libs, die für die Programmierung von eben solchen Anwendungen gedacht sind. Hat das jetzt was mit .NET und Windows Forms zu tun?
-
Mit klickibunti meine ich BASIC und ähnliche Sachen.
-
Ich will ja nix gegen C/C++ sagen (schon gar nicht in diesem Forum...
), aber da Du schon Basic gesöhnt bist, wäre mein Vorschlag FreeBasic:
http://de.wikibooks.org/wiki/FreeBasic
Kann Windows-GUI (mit der WinAPI), OpenGL und DirectX, unterstützt Pointer und Multithreading, ist obendrein nahezu vollkompatibel zu QBasic/ QuickBasic (Kommandozeilenoption). Es gibt DOS- und Windows-Compiler und verschiedene IDEs , teilweise mit Ressourcen-Editor. Unterstützt außerdem einige Merkmale der OOP, das ist aber noch nicht voll ausgebaut.
-
> Mit klickibunti meine ich BASIC und ähnliche Sachen.
Findest du das jetzt nicht ein bisschen unqualifiziert?
Mal im ernst, dass C++ die so ziemlich mächtigste Sprache ist, darüber brauchen wir nicht reden. Aber BASIC solltest du nicht unterschätzen. Und sicherlich habe ich mehr als "klickibunti" Sachen gemacht. Werden hier kein "ehemaligen" BASICler respektier? Kannste mir ruhig sagen.Ich will ja nix gegen C/C++ sagen (schon gar nicht in diesem Forum...
), aber da Du schon Basic gesöhnt bist, wäre mein Vorschlag FreeBasic:
http://de.wikibooks.org/wiki/FreeBasic
Kann Windows-GUI (mit der WinAPI), OpenGL und DirectX, unterstützt Pointer und Multithreading, ist obendrein nahezu vollkompatibel zu QBasic/ QuickBasic (Kommandozeilenoption). Es gibt DOS- und Windows-Compiler und verschiedene IDEs , teilweise mit Ressourcen-Editor. Unterstützt außerdem einige Merkmale der OOP, das ist aber noch nicht voll ausgebaut.Nö, FreeBasic will ich nicht. Gibt ja auch noch PureBasic, ist ja auch ne ziemlich gute Sprache. Aber leider wird BASIC immer unbedeutender und C++ ist ja in fast allen Bereichen Standard.
-
Aera schrieb:
Aber leider wird BASIC immer unbedeutender und C++ ist ja in fast allen Bereichen Standard.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
-
...
Aber so Sprachen wie Blitzmax oder PureBasic sind leider nicht sehr bekannt. Für C++ gibts haufenweise Ressourcen|Libs. Außerdem werden diese Sprachen von sehr kleinen Teams entwickelt(Bei PB ist sogar nur ein Mann am Werk). Daher sind sie nicht zukunftssicher und haben wegen dem oben genannten Grund nichts im professionellen Einsatz zu suchen.
Und Visual Basic will ich nicht lernen. Das Teil unterstützt nicht mal Vererbung, soweit ich weiß. Wenn, dann muss es jetzt auch mal was richtiges sein. Ich hab keine Lust mir noch zig andere BASIC-Sprachen reinzuziehen.
-
Aera schrieb:
Und Visual Basic will ich nicht lernen. Das Teil unterstützt nicht mal Vererbung, soweit ich weiß.
Da liegst du falsch (iirc).
Aera schrieb:
Wenn, dann muss es jetzt auch mal was richtiges sein. Ich hab keine Lust mir noch zig andere BASIC-Sprachen reinzuziehen.
Versteh mich nicht falsch, ich will dir garantiert kein *-BASIC andrehen. Ich fand nur die Aussagen "BASIC wird immer unbedeutender" und "C++ in fast allen Bereichen Standard" einfach so falsch, dass ich eingreifen musste
-
Da liegst du falsch (iirc).
Stimmt, habs gerade erfahren. Warum steht das aber im Tafelwerk?Versteh mich nicht falsch, ich will dir garantiert kein *-BASIC andrehen. Ich fand nur die Aussagen "BASIC wird immer unbedeutender" und "C++ in fast allen Bereichen Standard" einfach so falsch, dass ich eingreifen musste
Nö, ich versteh dich nicht falsch. Aber C++ und Java ist irgendwie schon Standard. Ich meine, wo findet man denn hier heutzutage Arbeit als BASICler?? Häufig werden C++- oder Java-Programmierer gesucht.
Gut, es geht mir jetzt nicht wirklich um Arbeit oder sowas, aber so wie dir Zocker im Forumbase immer die neueste Hardware haben müssen, so will ich auch die "beste"(vorsichtig ausgedrückt) Sprache benutzen. Und Visual Basic kann
C++ auch nicht wirklich das Wasser reichen, oder etwa doch?
Naja, selbst wenn, ich will trotzdem wieder "zurück" zu C++.
Also, seht ihr Hoffnung für einen BASICler wie mich, der zu C++ wechseln will?
Um ehrlich zu sein, mit PureBasic z.B habe ich keine Probleme. Kann ja sehr viel. Unterstützt auch OOP(Zwar nicht nativ, aber trotzdem...). Hab auch schon professionelle Sachen damit realisieren können. Aber wie du meinen letzten Beiträgen sicherlich entnehmen kannst, geht es mir sehr um die Zukunft. Diese ganzen aufgelisteten BASIC-Sprachen, außer VB, haben leider meiner Meinung nach keine Zukunft. Der Grund, warum z.B viele BlitzBasicler zu C++ wechseln.
Also bleibt ja nur noch VB und C++ für mich übrig(Java kommt bei mir so oder so nicht in Frage...). Ihr würdet mir dann sicherlich VB raten, aber VC++ soll ja anscheinend besser sein. Also nehme auch VC++.
-
Also, wenn Du wirklich was "neues" machen willst, dann nimm C# oder irgendein .Net.
Übrigens ist FreeBasic vielleicht nur deshalb so bekannt, weil es so jung ist. Gibt es erst seit knapp 2 Jahren. Das gesamte Paket ist open source, daß es also ausstirbt, ist so bald nicht zu erwarten (sonst müßte man das von Linux auch voraussagen).
Wenn Du was Professionelles machen willst, mußt Du sowieso mit mehreren Sprachen umgehen können und Dir dann für das jeweilige Projekt die geeignetste auswählen. Wenn Du es nur zum Vergnügen machst, nimm einfach eine, die Dir gefällt und frag nicht lang, was am "Neusten" ist. Es gibt auch Typen, die brauchen immer nur das Neuste, nur um damit zu prahlen.
-
Schön, also, was ist jetzt mit Windows Forms? Warum wurde mir davon abgeraten?
-
Gegen Windows Forms ist nichts zu sagen. Nur dass sie zu .NET gehören und du mit C++ nicht .NET programmieren solltest. Auch C++/CLI taugt eigentlich nur wenn natives C++ mit managed Code vermischt werden soll, ansonsten => C# oder Visual Basic(welches in der aktuellen .NET Version eine vollständig objektorientierte, moderne Sprache ist, ich empfehle trotzdem lieber C#, aber wohl geschmackssache)
-
Also, wenn Du wirklich was "neues" machen willst, dann nimm C# oder irgendein .Net.
Ok, da habe ich mich wohl etwas ungeschickt ausgedrückt.
Also nochmal, ich will einfach zu C++ wechseln, weil
1. es bekannter und beliebter(große Community) ist und es somit mehr Ressourcen für gibt
2. es OOP unterstützt(Und zwar mit alles drum und dran)
3. die Syntax mir schon immer besser gefiel als die von BASICif a=1 endif
Finde ich eigentlich nicht so toll...
Nur dass sie zu .NET gehören und du mit C++ nicht .NET programmieren solltest
Aber wieso?
-
Aera schrieb:
Also nochmal, ich will einfach zu C++ wechseln, weil
1. es bekannter und beliebter(große Community) ist und es somit mehr Ressourcen für gibt
2. es OOP unterstützt(Und zwar mit alles drum und dran)
3. die Syntax mir schon immer besser gefiel als die von BASICWenn dir das alles wichtig ist, nimm um Gottes Willen Java!
Die Community ist wirklich am größten unter allen großen Programmiersprachencommunitys, Ressoucen gibt es massenweise.OOP wird mit allem drum und dran unterstützt; Java ist wirklich objektorientiert und kein Hybrid wie C++.
Die Syntax von Java entspricht praktisch der von C++.
-
Mir wurde erzählt, Java sei langsam...
-
Aera schrieb:
Mir wurde erzählt, Java sei langsam...
also entweder bist du ein genialer Troll oder du hast keine Ahnung.
Jetzt mal im ernst. Du bist gegen generelles BASIC-Bashing, betreibst aber generelles Java-Bashing
.
Gruß
Don06
-
also entweder bist du ein genialer Troll oder du hast keine Ahnung.
Jetzt mal im ernst. Du bist gegen generelles BASIC-Bashing, betreibst aber generelles Java-Bashing
.
So wie es aussieht bist du anscheinend ein Troll. Hab ich behauptet, Java sei langsam? Über Java weiß ich so gut wie nix. Hab bisher aber leider nur schlechtes darüber gehört. Erst lesen, dann denken und am Ende erst schreiben.
-
Aera schrieb:
Java sei langsam...
Vor so ca. 10-11 Jahren war diese Aussage absolut korrekt. Aber seither hat sich einiges getan in diesem Bereich. Heute ist Java nicht nennenswert langsamer als z.B. C++ -- was die Ausführungsgeschwindigkeit der Programme angeht.
Bei einigen, die sich überhaupt nicht mit der Sache auskennen (oder auf solche Leute hören), hat sich dieses Vorurteil scheinbar bis heute gehalten.
-
Bei einigen, die sich überhaupt nicht mit der Sache auskennen (oder auf solche Leute hören), hat sich dieses Vorurteil scheinbar bis heute gehalten.
Yup, genauso ists hier auch bei einigen C++lern. Ich muss ja keine Beispiele nennen. Oft genug wurde BASIC als nicht ernstzunehmende Sprache oder z.B als "kinderkacke" bezeichnet.
(Das wird hier anscheinend gerne übersehen)