Welche Sprache lernen ?
-
Hallo,
welche sprache sollte ein Anfänger lernen ?
Also nicht ganz Anfänger.
Ich hab Erfahrungen in Delphi 7 .Nun zielt ja alles auf das .NET Framerwork ab.
Dazu erst mal die Frage ob das .NET Framework eine Programmiersprache ist. Soweit ich das verstanden habe ist dies nicht so.Die zweite Frage was soll ich lernen ?
Visual Studio hab ich , aber was lernen ?C++ (CLI ), C# ???
Was wäre das beste wenn man sowieso von vorne anfängt ?Matthias
-
Hi,
das .Net Framework ist keine Programmiersprache, sondern ein Framework - wie es schon der name sagt :). DirectX ist zum Beispiel auch ein Framework ;).
Es gibt nun einige .Net Sprachen, die das Framework nutzen koennen - zum Beispiel C#.
Also ich würde C# nehmen an deiner stelle

Gruß
-
Ich würde ausprobieren, welche Sprache mir am ehesten liegt. Lies dir in der Wikipedia die Beschreibungen durch, programmiere mit den verschiedenen Sprachen und entscheide dich dann.
Wichtig ist eh, dass du das Programmieren an sich (==die Konzepte) verstanden hast. Die kannst du dann in einer Vielzahl von Sprachen anwenden.
-
STF-DIR schrieb:
Hallo,
welche sprache sollte ein Anfänger lernen ?
Also nicht ganz Anfänger.
Ich hab Erfahrungen in Delphi 7 .Nun zielt ja alles auf das .NET Framerwork ab.
Dazu erst mal die Frage ob das .NET Framework eine Programmiersprache ist. Soweit ich das verstanden habe ist dies nicht so.Die zweite Frage was soll ich lernen ?
Visual Studio hab ich , aber was lernen ?C++ (CLI ), C# ???
Was wäre das beste wenn man sowieso von vorne anfängt ?Matthias
Ich würde mir erst einmal gedanken machen was ich später alles Programmieren will. Soll dies auf unterschiedlichen Plattformen laufen oder nur auf einer bestimmten? usw.
Ebenfalls kannst du dir die Programmiersprachen ja mal vorher anschauen und dann wirst du auch hier sehen welche dir besser gefällt bzw. mit welcher du überhaupt nicht klar kommst.
Wenn du diesen Weg Beruflich eingeschlagen hast kann es dir passieren das du immer mal wieder eine andere Programmiersprache lernen musst. Das Projekt bestimmt ja bekanntlich die Programmieraufgabe.
-
Hallo,
danke euch für die Antworten.
Also hatte ich das mit dem .NET Framework richtig verstanden.
Wenn Ihr jetzt einfach mal vergleichen müsstet und eine entscheidung treffen müßtet, was würdet ihr denn tun ?
Kann ich denn mit Visual C++ 2005 ( aus dem Visual Studio 2005 ) auch NUR Managed Code schreiben oder geht das nur mit Visual C# ?
Welche der beiden sprachen hat denn mehr "Zukunft" ?
Matthias
-
ich würde dir empfehlen ein wenig mit c/c++ zu "spielen", um die grundlegenden techniken zu erlernen und anschließend java zur hand zu nehmen.
-
Einfach zu erlernen und zu handhaben: Python.
-
Hallo,
ihr bringt jetzt ja ganz neue sprachen ins spiel

mit denen hatte ich ja nun noch gar nix zu tun.Es stellt sich eigentlich nur die Frage ob C++/CLI oder C# ?
Welche dieser beiden ist denn eher für die Zukunft geeignet ?Matthias
-
STF-DIR schrieb:
Hallo,
ihr bringt jetzt ja ganz neue sprachen ins spiel

mit denen hatte ich ja nun noch gar nix zu tun.Es stellt sich eigentlich nur die Frage ob C++/CLI oder C# ?
Welche dieser beiden ist denn eher für die Zukunft geeignet ?Matthias
Ich denke mal die haben beide Zukunft!
-
STF-DIR schrieb:
Es stellt sich eigentlich nur die Frage ob C++/CLI oder C# ?
Welche dieser beiden ist denn eher für die Zukunft geeignet ?Beide werden über kurz oder lang in der Versenkung verschwinden (bzw. es wird nur noch der vorhandene Codebestand gepflegt). So ist der Lauf der Dinge. Vllt. semmelt erst C++/CLI ab, vllt. auch C#. Vllt. beide gleichzeitig.
Wichtig ist nur, dass duGPC schrieb:
das Programmieren an sich (==die Konzepte) verstanden hast. Die kannst du dann in einer Vielzahl von Sprachen anwenden.
Du wirst über kurz oder lang eh neue Sprachen lernen müssen, weil die derzeit aktuellen einfach nicht mehr so gefragt sind. Aber bis es soweit ist, gehen noch einige Jahre ins Land und deshalb ist Zukunftssicherheit ein Aspekt, der dir egal sein sollte. Bis dahin wirst du schon längst in andere Sprachen reingeschnuppert und deinen "Favoriten" gefunden haben.
-
Hallo,
ok, also beide.
Hmm, muss also das Projekt entscheiden.
Ich habe in Delphi 7 ein Projekt welches
- ein bischen OGL
- Downloads von wetter ( Eine seite runterladen und parsen )
- verbindung zum MS FlightSim 2004 ( später soll auch FSX gehen )
- Flugpläne mit A* Algorythmus erstellen
- ... und ausdrucken.kann.
Mit was fange ich also an ist die Frage.
Lernen werde ich wohl dann beide Sprachen. Aber womit fange ich an ?Matthias
-
STF-DIR schrieb:
- ein bischen OGL
geht mit reinem C++
- Downloads von wetter ( Eine seite runterladen und parsen )
geht mit reinem C++
- verbindung zum MS FlightSim 2004 ( später soll auch FSX gehen )
weiss ich nicht
- Flugpläne mit A* Algorythmus erstellen
geht mit reinem C++
- ... und ausdrucken.
geht mit reinem C++
*mit reinem C++ und entsprechenden libs natürlich
-
Hallo,
würde also heißen das ich mit C++ anfangen könnte.
Die verbindung mit dem FSX ist glaube ich laut MS für .NET ausgelegt. Weiß ich aber nicht genau.
Ich gehe aber mal davon aus das das ganze was, wie du schreibst, mit "einfachem C++ geht auch mit "Managed C++" also CLI geht oder sehe ich das falsch ?Matthias
-
STF-DIR schrieb:
Hallo,
würde also heißen das ich mit C++ anfangen könnte.
Die verbindung mit dem FSX ist glaube ich laut MS für .NET ausgelegt. Weiß ich aber nicht genau.
Ich gehe aber mal davon aus das das ganze was, wie du schreibst, mit "einfachem C++ geht auch mit "Managed C++" also CLI geht oder sehe ich das falsch ?Matthias
Natürlich, geht auch mit managed, geht auch mit C#. Ist ev auch einfacher, aber halt Geschmacksfrage. Und für native C++ gibts wohl noch mehr Bibliotheken und Frameworks, aber da kann ich mich täuschen..
-
Hallo,
ok ich dank euch allen für die Hilfe.
Ich werd wohl mit C++ anfangen und schauen wie es geht.
Falls nicht mach ich mit C# weiter.Also Danke euch
Matthias
-
Ich würde zu C# raten.
Hier kannst Du (sofern Du reinschaust) die Beispiele in der MSDN leichter nutzen und kannst wesentlich mehr Informationen verarbeiten die bei Problemen angeboten werden. (Mehr Copy & Paste).
C++ empfiehlt sich nur, wenn man sich auch die nötige Zeit für die Grundlagen nehmen möchte.
Du kannst Dir auch durchaus mal VB.NET ansehen, man kann ja später die Objekte zwischen den .Net sprachen tauschen.
Der Voteil von VB wären sehr umfangreiche Dokumentation und weniger komplexe Regeln. (ALso eher was in richtung: Im Buch so abgebildet, da und da draufklicken und fertig).
-
Hallo,
danke für die Antwort.
Ich hab mich entschlossen in aller Ruhe erst mal C++ ( nach neuen Buch ) zu lernen und dann ( wie du schon sagtest ) erst auf C# umsteigen. Später lerne ich dann .NET mit C#.Trotzdem Danke nochmal für die Antwort.
Ich stell dir mal eben gleich hier noch ne kleine Frage ( hoffe das is ok ? )
Ich bin gerade bei Dynamischer Speicherverwaltung und soll hier ein kleines Beispiel schreiben. Geht auch so weit, nur ich versteh hier was nicht so ganz.Also Aufgabe ist es ( und ich soll das als Übung auch so machen ) eine Klasse zu schreiben die ein dynaisches Int Feld verwaltet, also einen Array.
So weit so gut.
Konstruktor ist so das man die Größe ( Anzahl der Werte ) übergeben muss.
Das geht auch , kein Thema.Nun kommts...ich soll eine Methode Add( int wert) schreiben die dem verwalteten Array ein Elemeent anhängt.
Ich hab das versucht so zu lösen:
void CIntFeld::Add(int wert) { _g+=1; // Anzahl der Werte um 1 erhöhen int *temp = new int[_g+1]; // Temporäres IntFeld der neuen Größe temp = feld; // Werte aus altem intFeld dem TempIntFeld zuweisen temp[_g] = wert; // Neuer Wert im letzten Feld speichern delete[](feld); // Altes Feld löschen int *feld = new int[_g]; // Feld wieder neu anlegen feld = temp; // Feld wird Temp zugewiesen delete[](temp); // Hier ist der Fehler ???? }Ich weiß das das umständlich ist und einfacher geht, aber ich soll das hier laut der Übung eben mal so machen.
Problem ist nur das delete[](temp); einen Fehler verursacht ??Ich glaub der Fehler liegt hier
temp = feld;
bin mir aber noch nicht sicher.
Matthias
-
int *temp = new int[_g+1]; // Zeiger auf ein array von int speichern temp = feld; // Den Zeiger wegwerfen und den von feld nehmen temp[_g] = wert; // In Feld[_g] ein Wert schreiben delete[](feld); // Altes Feld löschen int *feld = new int[_g]; // Zeiger auf array von int feld = temp; // Zeiger wegwerfen und den von temp verwenden (bereits gelöschtes altes feld) delete[](temp); // Noch mal gelöschten Speicher löschenWas Du jetzt mit dem Code bezweckst weiß ich nicht.
Du kannst native Arrays nicht mit = zuweisen, du weisst so die Zeiger zu.
-
Hallo,
was das bezwecken soll ?
Frag mal Andr'e Willms, steht in dem Buch hier.
Das mit den Zeigern zuweisen hab ich jetzt nachgelsen. Ghet nicht. OK.Aber ein Feld das mit
int * f = new int[5];erzeugt wurde muss ich doch mit
delete[](f);löschen können oder ?
Matthias
-
Ja, aber lies doch mal die Kommentare die da stehen
bzw. schau mal in Deinem Buch nach was beim Zuweisen
der Zeiger passiert.Hier mal die Kurzversion:
temp = feld; // Werte aus altem intFeld dem TempIntFeld zuweisen delete[](feld); // Altes Feld löschen feld = temp; // Feld wird Temp zugewiesen delete[](temp); // Hier ist derDu löschst den gleichen Zeiger zweimal.
In dem kurzen Codestück hast Du
2 x Memoryleaks
1 x Speicherzugriffsfehler
1 x Speicher doppelt löscheneventuell komme noch 1 logischer Fehler hinzu:
_g+=1;
int *temp = new int[_g+1];