Welche Sprache richtig für mich?

KevN

Cadet 4th Year
Registriert
Mai 2009
Beiträge
64
Hallo leibe User,

ich stehe momentan bei der Entscheidung welche Programmiersprache ich lernern soll.

Zur Auswahl stehen C++, Visual Basic und Delphi.

C++ habe ich bereits ein Buch und habe mich ein bisschen mit auseinandergesetzt. Der Vorteil ist halt das man ALLES machen kann.

Visual Basic 6 habe ich bereits Vorkentnisse aus der Schule. Ich kenne Outport, For-Next und If und Else Anwendunge. Ich habe in der Schule bereits einen Motor für ein Fahrstuhl programmiert(Modell)

Delphi habe ich keine Vorkentnisse.

Es geht mir darum das ich auch in andere Programme eingreifen kann und auch Hardware bezogen arbeite. Als Berufswunsch setze ich mir Fachinformatiker werden. Man sollte auch keine Einschränkugen haben.

Momentan gefallen mir Visual C++ und Visual Basic am Besten.

Mit freundlichen Grüßen Kevin
 
Ich würde (sorry dass ich noch eine Sprache ins Spiel bringe) wie üblich C# empfehlen. Die Syntac ist näher an C/++ aber es hat sonst einiges mit VB.Net gemeinsam (Logisch, sind .Net Sprachen ;)).

Wenn du wirklich viel Hardwarenah machen willst macht vielleicht C++ Sinn, allerdings ist vieles auch mit C# möglich. Außerdem fällt ein Wechsel von C# zu C++ wesentlich leichter als von VB.
Wenn schon C++ würde ich übrigens zu gcc (MinGW auf Windows) raten und nicht Visual-C++.
 
KevN:
Jede der genannten Sprachen hat ihre Vor- und Nachteile. Für einen absoluten Neuling sind sicher C# oder VB.Net eine sichere Wahl. Im übrigen spielt es keine Rolle ob du in VB.Net oder C#.Net programmierst, da sie beide das .Net Framework verwenden und somit von der Performance, Funktionsumfang etc. sich gleichen. Unterschiede gibt es aus meiner Sicht nur in der Syntax. Jedoch sind diese Sprachen relativ weit von der Hardware entfernt, weil eben das .Net Framework als Zwischenschicht den Vermittler zwischen deinem Programm und dem Computer "spielt". Wenn du eher hardwarenah programmieren willst, wäre sicher C oder C++ die bessere Wahl. Und wenn du mit dem blanken Hintern auf dem Silizium rutschen willst, dann bleibt dir im Grenzbereich noch Assembler, welches du im übrigen ohne weiteres in Visual C++ auch verwenden kannst. Jedoch ist ein Manko der hardwarenahen Programmierung, das du mit wesentlich mehr Problemen zu kämpfen hast, als bei den .Net Frameworksprachen. Wie du schreibst, scheinst du schon etwas Vorkenntnisse zu haben, also lehne dich zurück, überlege was du genau machen willst, suche via Google ob es ähnliches gibt und in welcher Sprache diese Sachen gemacht wurden. Danach kannst du ja in Ruhe eine Sprache auswählen und damit starten. Für deinen Berufswunsch als Fachinformatiker ist es gut, wenn du nicht nur auf eine Sprache angewiesen bist, da sich im typischen Berufsleben eines solchen immer wieder neue Trends ergeben und oft unterschiedliche Sprachen, zum Beispiel durch die Vorgaben/Anforderungen der Projekte, eingesetzt werden müssen.

Backslash:
Da ich mich zur Zeit selber verstärkt mit C/C++ auseinander setze, würde ich gerne wissen, warum GCC statt VC++? Ist eine reine Interessensfrage. Für mich ist es schon interessant, weil ich ein größeres Projekt plane und damit auch schon begonnen habe. Ich bin weit darüber hinaus ein Anfänger zu sein, habe schon seit mehreren Jahren Berufspraxis. Also scheu dich nicht auch etwas technischer zu werden, falls ich was nicht verstehe, wird Google den Rest erledigen...

Viel Erfolg!
 
jo...ich kann das wieder nur wiederholen...

Assembler wenn du auch was über Hardware lernen willst
C++ ist mal was gutes weil damit sehr viel programmiert wird, .Net dann weiterführend

und GCC einfach aus dem grund, dass man GCC auch auf Linux kompillieren kann wenn man nicht spezifische calls benutzt die nur für windows verfügbar sind
(das kann auch bisserl anders sein, aber soweit mir das mal erklärt worden ist ist das der hauptgrund)
wichtig ist allerdings auch dass afik gcc gratis ist, VS ist zwar auch "gratis" allerdings in einer - auch nur kleinen - firma wird das dann gleich sehr teuer, gcc bleibt jedoch weiterhin gratis
 
Einfach nur wegen der Portabilität, wenn es nur Windows als Ziel haben soll ist VC++ natürlich kein Problem. Außerdem könnte man den Code auch auf beides anpassen, glaube aber nicht dass irgendjemand da großen Spaß dran hat ;).
 
jo, wegen portabilität sollte man sich hald einen gewissen programmierstil angewöhnen...da auch z.B dass man nicht direkt mit fopen und so arbeitet sondern mit den sicheren gegenstücken dazu...
direkt fallt mir da nur das beispiel ein dass man für 64 Bit variablen nicht den &ll typ verwendet sondern ne art %64bitstring% global variable...
das ist jetzt nicht unbedingt richtig, aber so ca. hab ich das mal bei nem projekt verwendet weil das einfach vom programmierstil her so gemacht werden muss
 
Man sollte auch keine Einschränkugen haben.

Momentan gefallen mir Visual C++ und Visual Basic am Besten.
Dann würde ich mal C++ vorschlagen, wenn man keine Einschränkungen haben soll.

auch Hardware bezogen arbeite
Auch das weißt meiner Meinung nach in Richtung C++.

Warum vergleicht ihr eigentlich VC++ (Visual C++) mit gcc (GNU Compiler Collection)? Oder meint ihr mit VC++ gleich den Compiler? Sry, wenn ich mich dumm anstelle.

Ich würde aus Gründen der Portabilität auch zu C++ raten, und dann später (je nach Bedarf) z. B. auf Qt für das GUI etc. zurückgreifen. Zum "gewissen Programmierstil": Verwende einfach ANSI C++, das sollte dann (soweit du nicht auf plattformspezifische Merkmale zurückgreifst) "überall" lauffähig sein (natürlich unter best. Mindestvoraussetzungen). Hierfür kannst du das ja dem Compiler mitteilen, dass er eben nur Standard-konformes zulassen soll (soweit ich das weiß, ist das bei GCC problemlos möglich).

Es gibt natürlich auch Nachteile von C++, das ist klar. Es kommt sehr auf das Anwendungsgebiet an, ob Vor- oder Nachteile überwiegen, aber das kann dir sicher ein anderer besser erklären.

Hier findest du auch einiges zu C++: http://chaosradio.ccc.de/cre063.html
Fand ich recht interessant. Ansonsten würde mich interessieren, welches Buch du gelesen hast, bzw. eigentlich in wie weit du mit C++ schon vertraut bist (was sich vll. davon ableiten lässt).

Gruß,

badday
 
Ob das der Anforderung "Hardware bezogen" zu programmieren standhält?
Die Frage ist ja auch, ob er eine Skriptsprache verwenden will...
Aber das kann er wohl nur selber beantworten.

Gruß,

badday
 
Scriptsprache oder Nicht-Scriptsprache. Merkt man den Unterschied im Alltag, ob der Quellcode durch einen Compiler lief, um ausführbaren Code zu erzeugen, oder erst zur Laufzeit interpretiert wird?


Auch für Python gibts Module, um rs232, Parallel oder USB-Ports anzusteuern. Oder sucht er nach Embeddedsoftware? Beides bisher nicht (mehr) versucht :-)
 
Gemeint war der MS C++ Compiler, ja. Ob man einen anderen ordentlich mit VC++ verwenden kann weiß ich ehrlichgesagt nicht, kann mir aber nicht vorstellen dass das bei einem MS Produkt wirklich glatt läuft.
 
Also die Laufzeit fällt wohl erst bei größeren Projekten ins Gewicht. Aber er will "keine Einschränkugen haben." Das ist natürlich mit C++ eher gewährleistet, auch wenn es vielleicht nicht ins Gewicht fällt bei ihm.
Ich habe mich auch mal mit Python beschäftigt (nach C++), mag es aber bis heute nicht besonders. Ist wohl auch eine Frage der Philosophie. Beide haben vor und Nachteile, ich finde aber bei C++ hat man mehr "Freiheit".
Ich mag z. B. eine statische Typprüfung, bin nur begrenzt ein Freund der garbage collection, vermisse while/do Schleifen und fühle mich durch GIL eingeengt. Das ist natürlich alles sehr subjektiv und es gibt auch an C++ Kritikpunkte, ich mags aber einfach.

Klar, mit Python kann man auch nah an der Hardware programmieren, aber kann man hier z. B. Assembler-Code einbetten?
Wer Python richtig "kann", kann damit vermutlich mehr als ein mittelmäßiger C++-Programmierer^^.

@Backslash: Ich mir auch nicht^^.

Gruß,

badday
 
Zuletzt bearbeitet:
Erstmal danke für alle antworten!

Ich habe jetzt lerne ich Visual C++ 2008 von Dirk Louis.

Ich habe gerade erst angefangen aber ich denke wenn ich mich intensiv damit beschäftige schaffe ich auch die Syntax zu verstehen.

Wie man sehen kann verweisen die meisten auf C++ und teilweise auch auf C#.

Jetzt währe es sicherlich schwer auf GCC umzustellen wenn ich ein Buch für Visual C++ habe wo sehr auf das .NET Framework eingesprochen wird. Jedoch ist das Buch sehr gut erklärt.


Ist Phyton eigentlich interpretiert? Wenn ja eignet es sich nicht so gut für mein Vorhaben weil dort schon ziemlich viel verlangt wird.

Kann man mit C++ denn auch z.b. auf Sensoren zugreifen oder muss man dann Assembler einbringen(Kann man Assembler direkt im C++ Code verwenden?).

Mit freundlichen Grüßen
Kevin
 
Kann man Assembler direkt im C++ Code verwenden?
Glaube schon:
http://de.wikibooks.org/wiki/C++-Programmierung:_Inline-Assembler (bitte nochmal bestätigen, wenn das schon jemand gemacht hat).

Du machst also gleich Visual C++ und nicht erst C++ an sich? Ich weiß ja nicht, wie das Buch aufgebaut ist, aber es wäre schon wichtig, erstmal die "Basics" zu lernen.

Soweit ich weiß ist Python interpretiert, aber das wissen sicher andere besser.

Gruß,

badday
 
Okay danke.

Im Buch stehen aber teilweise auch die Unterschiede wie es in C++ ist.
 
Würde meine Aussagen nicht auf die Goldwaage legen, bin mir da nicht ganz sicher.

Hm... würde dir dennoch (vielleicht auch danach) ein Buch zu C++ an sich empfehlen, es sei denn du wirst aus dem Buch alleine schlau.
Ich habe mich z. B. erst mit C++ an sich beschäftigt und dann später mit Qt.
Aber vielleicht ist das auch Ansichtssache.

Gruß,

badday
 
badday:
Warum vergleicht ihr eigentlich VC++ (Visual C++) mit gcc (GNU Compiler Collection)? Oder meint ihr mit VC++ gleich den Compiler? Sry, wenn ich mich dumm anstelle.
Ich schrieb vom Microsoftchen C++ Compiler und vom C++ Compiler in GCC. War halt nur aus Gründen der Einfachheit auf GCC reduziert in einen Topf geworfen worden. Es ist zwar nicht richtig, aber sei es drum. ;)

Einfach nur wegen der Portabilität, wenn es nur Windows als Ziel haben soll ist VC++ natürlich kein Problem. Außerdem könnte man den Code auch auf beides anpassen, glaube aber nicht dass irgendjemand da großen Spaß dran hat
Also ich für meinen Teil hab da schon Spaß dran, meine Codes so generisch zu halten, wie es nur geht, um sie dann auf verschiedenen Platformen zu kompilieren, ohne das ich anfangen muss einiges neu zu schreiben. Da ist es schonmal sehr hilfreich nach dem ANSI Standard zu programmieren und alles spezifische von MS über Bord zu werfen. Ich weiß das das am Anfang sehr schwer ist, aber nach einer Gewöhnung nicht mehr relevant sein wird. Genauso gut kann man ja spezifische Sachen in entsprechende Klassen, Funktionen etc kapseln und dann nur noch diese entsprechend für die Zielplattform anpassen. Sozusagen bastelt man sich sein eigenes Framework...
 
Also ich würde Java emfehlen, weil wenn du keine tiefen Eingriffe in Windows programmieren willst. Java ist im Gegensatzt du den anderen Programmiersprachen Plattformunabhängig.

Wenn du dich nicht zwischen C# und Java entscheiden kannt programmiere die Syseingriffe in C# und den Rest in Java.
Du musst für die anderen Bettriebssystemde nur den C#-Code in die jeweilige Sprache übersetzen.

NOTE:
Ich kann Java.
 
Naja, also ich sehe in den Anwendungsszenario keinen Vorteil für Java. Ich bleibe bei meiner Empfehlung für C++, du kannst hier sehr "frei" programmieren und ggf. problemlos auf Assembler zurückgreifen.
Java hat sicher auch seine Vorteile (ich habe mich mal kurz damit beschäftigt), aber wohl bei deiner Anwendung keinen wirklichen Vorteil, auch der der Platzformunabhängigkeit ist wohl nicht tragend.
Es wäre meiner Meinung nach auch nicht besonders förderlich jetzt auf 2 Programmiersprachen zurückzugreifen.

programmiere die Syseingriffe in C# und den Rest in Java.
sagt meiner Meinung nach alles.
z. B. Template-Klassen sind einer der Vorteile von C++.
Hier sind einige Unterschiede aufgeführt: http://de.wikipedia.org/wiki/C++#Java_und_C.23
Ich würde noch eher zu C# (auch wenn ich hier kein großer Freund bin) als zu Java raten.
Aber natürlich wird man auch andere Meinungen finden.

Gruß,

badday
 
Zurück
Oben