mikrocontroller.net

Forum: PC-Programmierung Unterschied C++ und C#


Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Ich habe schon viele Beiträge durchforstet, aber noch nicht genau das 
gefunden, was ich suche.
Ich muss mich nun entscheiden, ob ich mich genauer mit C++ oder C# 
beschäftigen soll.

Meine Frage ganz am Anfang ist folgende: Was ist überhaupt der genaue 
Unterschied zwischen den beiden Sprachen? Was kann man mit C++ machen, 
was man mit C# nicht machen kann, bzw. umgekehrt. Mit welcher Sprache 
ist es z.B. leichter, Ports anzusprechen? Gibt es eine Sprache, die 
evtl. besser für Mikrocontroller-Anwendungen geeignet ist? Damit meine 
ich jetzt nicht die Daten, die in den Controller geschrieben werden, 
sondern ein Programm, mit dem man "Geräte" vom PC aus steuern kann 
(Relaisplatine...).
Oder könnte man gar auch C# oder C++ nutzen, um vernünftige 
Mikrocontrollerprogramme zu schreiben?

Ich würde mich freuen, wenn ihr mir helfen könntet!

Viele Dank schon einmal

Tim

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C# ist eine Abwandlung von VisualBasic, hat mit C außer ein paar 
Syntaxelementen nichts zu tun.

Autor: Stefan Salewski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Thomas B. (yahp) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hoi!

> Meine Frage ganz am Anfang ist folgende: Was ist überhaupt der genaue
> Unterschied zwischen den beiden Sprachen?

de.wikipedia.org
Es sind einfach zwei unterschiedliche Sprachen. C# wurde deutlich später 
entwickelt und man ist daher versucht zu sagen, dass es sich in der 
Evolution der Programmiersprachen weiter oben befindet (bzw. dass es 
bekannten Fehlern gelernt wurde). (So eine Bemerkung gibt natürlich Raum 
zum Streit.)


> Was kann man mit C++ machen,
> was man mit C# nicht machen kann, bzw. umgekehrt.

Kurz gesagt, nichts. Ich behaupte, man kann mit beiden alles machen. 
Wenn du allerdings unter Windows programmieren willst und dort Programme 
mit graphischer Nutzeroberfläche rauskommen soll, dann ist das 
.NET-Framework die aktuelle und zu empfehlende Plattform. Und .NET 
willst du einfach nicht mit dem verpfuschten managed C++ programmieren, 
also bleibt da nur C#. Natürlich gibt es auch für C++ Frameworks noch 
und nöcher, deswegen führen solche Fragen auch immer zu nicht enden 
wollenden Diskussionen. Eine allgemeingültige Aussage ist vermutlich 
auch nicht möglich.

Im Endeffekt musst du dich halt entscheiden. Schau dir einmal bei 
www.galileocomputing.de die Bücher über C++ und C# an und bilde dir 
deine eigene Meinung.


> Mit welcher Sprache
> ist es z.B. leichter, Ports anzusprechen?

Ist als ähnlich einzuschätzen.


> Gibt es eine Sprache, die
> evtl. besser für Mikrocontroller-Anwendungen geeignet ist? Damit meine
> ich jetzt nicht die Daten, die in den Controller geschrieben werden,
> sondern ein Programm, mit dem man "Geräte" vom PC aus steuern kann
> (Relaisplatine...).

Subjektiv C#. Ich schätze, dass du ohne Vorkenntnisse mit C# schneller 
zum Ziel kommst als mit C++. Vorteil bei C++ ist die Nähe zu C, was dir 
unter Umständen gewisse "Synergieeffekte" bei der Programmierung des 
Controllers selbst bringen kann. Im Endeffekt sind sich die Sprachen 
doch noch recht ähnlich, es gibt viele Gemeinsamkeit. Beides zu lernen 
ist also nicht doppelt so schwierig ;-)


> Oder könnte man gar auch C# oder C++ nutzen, um vernünftige
> Mikrocontrollerprogramme zu schreiben?

Mmmh. Mir ist so noch kein C#-Crosscompiler bekannt. C++ benutzen wohl 
einige Verrückte für µC, ob das unbedingt notwendig ist, sei mal dahin 
gestellt.


> Ich würde mich freuen, wenn ihr mir helfen könntet!

Tja, ich fürchte nur, dass du von zehn Leuten zwölf verschiedene 
Meinungen hören wirst und am Ende nicht mehr weißt, als jetzt...

Autor: ERDI - Soft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man sollte auch nicht vergessen, dass C#, wie Java auch, in ner Virtual 
Machine ausgeführt wird. Dies wohl nicht ganz so exzessiv wie bei Java, 
was wohl auch den Geschwindigkeitsvorteil ausmacht, aber trotzdem 
braucht es eine Runtime-Environment ( -> .NET Framework), ohne das ein 
in C# geschriebenes Programm nicht läuft (unter Linux gibt es Mono, eine 
Implementation des .NET Frameworks, was wohl mittlerweile zum Framework 
1.0 fast 100% komptibel ist und viele Funktionen vom Framework 2 
unterstützt.).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.