Mal ne dumme Frage - C++ und C#

Gast #1016558
Lesenswert?

C# ist ein Staubkorn im in einem ganzen Haufen:

- C#
- C++
- (Visual) Basic (.NET)
- Java
- PHP
- Perl
- Python

Die werden übrigens alle vor der Ausführung kompiliert und versuchen 
auch, Vorteile anderer Sprachen zu vereinen, allesamt mehr oder weniger 
gut. Microsoft hat da weder das "beste" noch das "modernste" oder das 
"erste überhaupt" erfunden. Jedem das Seine, jeder wie er will, kann und 
darf.
Gast #1016573
Lesenswert?

Wenn ich mich so im freien Markt umsehe, dann wird heutzutage (für 
Windows Programme) C# gegenüber dem C++ bevorzugt. Das liegt natürlich 
auch nicht zuletzt an der tollen Toolchain mit dem Visual Studio.
C++ wird aber auch in Zukunft für Treiber, sehr effiziente und 
einigermassen portable Software eingesetzt werden.
Man trifft auch häufig "Zwitter" an, wo das GUI und die Programmlogik in 
C# und .NET gemacht ist und die schnellen Berechnungsroutinen oder 
Hardwarezugriffe in einer C/C++ DLL gekapselt und von C# verwendet 
werden.
Gast #1023712
Lesenswert?

> wie Basic ist C# im Hause Microsoft selbst nicht zugelassen. Warum wohl?

Komplett falsche Aussage; das Media Center ist beispielsweise in C# 
programmiert und kommt von Microsoft.
Bleib bei Assembler wenn Du mit Zeitgemässer Software nicht klarkommst.
Gast #1026264
Lesenswert?

> Du wirst doch dem großen I_ H. nicht widersprechen?

Hast recht, ich sollte vor ihm kuschen und alles zurück nehmen.
Natürlich wird heutzutage in allen Firmen und allen Bereichen nur noch 
Linux und C++ eingesetzt.

-> Wenn dem wirklich so wäre, dann wäre Microsoft schon lange pleite!
Gast #1026277
Lesenswert?

Meckern könnt ihr, nur lesen irgendwie nicht:

I_ H. wrote:
> Die ganze Diskussion gab es vor vielen Jahren auf dem
> Betriebssystemsektor. Propritär oder offen - C++ oder C#.
>
> Inzwischen setzt auch IBM massiv auf Linux.

Steht da irgendwo, dass Linux ne Programmiersprache sein soll? Ich lese 
daraus, dass es ne Diskussion um offen oder proprietär auf beim 
OS-Sektor gab. Als Beispiel nennt I_ H. den IBM-Konzern, der sich 
scheinbar für "offen" entschieden hat.
Schließlich führt er ne Analogie zu C++ vs. C# an, wobei er davon 
ausgeht, dass C++ "offen" ist und C# dagegen "proprietär", was ja auch 
richtig ist, da es für C# ja offiziell (!) keinerlei Support für 
irgendwas, was nicht "Windows" heißt, gibt.
Gast #1026300
Lesenswert?

Sven Pauli wrote:
> Als Beispiel nennt I_ H. den IBM-Konzern, der sich
> scheinbar für "offen" entschieden hat.

IBM hat sich dafuer entschieden, mit billigen Servern SUN vom Markt zu 
draengen, was auch wunderbar geklappt hat. Das war's dann auch schon...
Gast #1026323
Lesenswert?

> C# dagegen "proprietär"

Du verwechselst da was. C# ist offen für alle, ist ja auch nur eine 
Programmiersprache. Was Du meinst ist das .NET Framework, dieses ist von 
Microsoft nur für Windows erhältlich. Ist ja auch logisch, denn Windows 
ist ja auch von Microsoft.
Wäre es anders, dann wäre es ja so wie wenn z.B. Sony ihre Fotoapparate 
so macht, dass auch normale SD-Karten statt nur Sony Memory Sticks 
funktionieren würden.
Oder wenn man in Canon Druckern auch HP Patronen einsetzen könnte.
Also überleg mal...
Gast #1026633
Lesenswert?

@Johny: Du hast da selbstverständlich Recht, C# ist genauso 
standardisiert, wie auch C und C++. Das Problem bei der Sache ist in 
diesem konkreten Fall, dass (abgesehen von den Betrebungen von Mono) 
keinerlei portierte Alternativen für andere Plattformen als Windows 
existieren, und so ist C# doch ziemlich extrem proprietär im Sinne von 
"an eine Plattform gebunden", nicht aber im Sinne von "es gehört 
Microsoft". Das kann sich natürlich durch weitere Bemühungen Dritter 
auch ändern, aber momentan ists halt so.
Gast #1026666
Lesenswert?

Ich denke der Punkt ist halt, dass C# alleine ohne das .NET Framework 
gegenüber C oder C++ kaum grossartige Vorteile bringt.
Das .NET Framework wird von Microsoft derart schnell und konsequent 
vorangetrieben, dass für die Opensource-Gemeinde kaum eine Chance 
besteht, das im selben Tempo nachzuprogrammieren.
Darüberhinaus haben die meisten Opensource Leute eh keinen Bock das zu 
machen, die hatten früher auch nie QBASIC, Delphi und son' Zeug 
nachprogramieren wollen.

Wenn ich C# und .NET einsetzen kann, weil ich weiss, dass meine Kunden 
Windows PC's einsetzen, dann nutze ich es und komme schnell ans Ziel.
Wenn meine Kunden gemischte Systeme haben, dann natürlich nicht.
In der Schublade hab ich ja auch nicht nur Kreuzschraubenzieher sondern 
verschiedene.
#1026683
Lesenswert?

C# ist eine gesunde Mischung aus Java und C++. Es sind viele Sachen 
nachgerüstet worden, die ich bei Java schwer vermisse (unsafe Blöcke, 
Operatorenüberlagerung, rectangular arrays, implicit/explicit type 
casts, structs).

Die Akzeptanz und Verbreitung ist leider vergleichsweise gering, weshalb 
ich mich noch nicht dazu durchringen konnte größere Projekte damit 
umzusetzen.
Gast #1026703
Lesenswert?

Ich glaube auch nicht, dass C# als etwas verbessertes Java eine 
langfristige Perspektive hat, kann aber sein. Schliesslich hat sich auch 
Windows gegenüber dem besseren OS/2 durchgesetzt was m.E. hauptsächlich 
daran lag, dass die damaligen Kisten mit 286ern liefen und 16MB RAM noch 
schweineteuer war. Auch wäre eine SCSI Platte von Vorteil gewesen auch 
unbezahlbar.

Mit Visual C++ unter .NET hat man doch so viele Möglichkeiten und C# ist 
doch auch nur ein C-Programm. Warum sollte man zusätzlich zu den 
Schwierigkeiten ein Produkt zu entwickeln und zu vermarkten auf eine 
proprietäre Plattform setzen die möglicherweise von Microsoft morgen 
nicht mehr unterstützt wird.

Ich habe gehört MFC soll schwierig sein. Ich empfand es nie als 
schwierig. Auch die ActiveX Technologie hat man doch auch hauptsächlich 
über einen Programmgenerator/Wizard erledigt. Ich empfinde auch Java, C# 
und C++ nicht als schwierig also was soll das Ganze.

Das Lager der M$-Anhänger kenne ich allerdings. Es gibt Leute, die 
glauben, wenn man C# macht, dann ist man ganz vorne mit dabei und auch 
beim kassieren, so eine Art Nachfolgeprägung wie beim Konrad Lorenz...
Gast #1026939
Lesenswert?

Also, wenn du zwei Frauen vergleichen tust, ganz konkret, dann ist die 
eine so lala und die andere konkret mehr lala. Bei C plus plus ist es 
die erste Frau und bei C scharf die zweite.

Also, willst du HOT sein, nimm C scharf und jeder mag dich ! Vertrauen 
Sie mir ! Damit kannst du jeden beeindrucken !
Gast #1058689
Lesenswert?

Im Grunde genommen wurde schon jahrzehntelang nichts wirklich Neues 
erfunden. C# ist ähnlich wie JAVA, wobei JAVA allerdings auf einer 
Virtuellen Maschine läuft, die es praktisch für jedes größere 
Betriebssystem gibt. C# und C++ und C bis hin zu Turbopascal und 
Assembler liefern EXEcuteable Dateien direkt fürs Betriebssystem. Teils 
über den Umweg von Objektdateien usw. Bei JAVA gibts dann einfach die 
Dateien mit der Erweiterung *.java, die dann halt für die Virtuelle 
Maschine sowas wie EXE-Dateien sind.

Ich weiß jetzt gar nicht, wie das mit Pointern im C# ist.
An den Variablenreferenzen und der Speicherverwaltung sowie an den 
Zugriffsritualen auf die PC-Peripherie erkennt man die Unterschiede am 
besten.

Um Programmieren zu lernen empfehle ich jene Sprache, die einem grade 
ins Auge fällt, weil Freunde damit hantieren oder weil man rein zufällig 
den Compiler da hat.

JAVA-Compiler und Entwicklungsumgebung sind kostenfrei, sowie viele 
Entwicklungsumgebungen für C und C++.

Bei C# muß man soweit ich weiß, schon in die Tasche greifen und ein paar 
Euros herbeizaubern.

Deshalb nehme ich nicht C#.
Und ich kenne es auch kaum.

MfG Saurod
Gast #1058711
Lesenswert?

C# läuft auch in einer eigenen Laufzeitumgebung, die gibts auch für 
Linux - MONO. Folglich gibts auch freie Kompiler dafür.
Direkter Speicherzugriff (Zeiger) ist in C# meines Wissens nach so 
nicht möglich, da C# managed Code ist. Stattdessen dürfte es aber 
Sprachkonstruktionen geben, die vorübergehend Privilegien für den 
direkten Zugriff bereitstellen.
#1058743
Lesenswert?

Selten so viel Fehlinformation auf so knappem Raum...

Saurod wrote:
> Im Grunde genommen wurde schon jahrzehntelang nichts wirklich Neues
> erfunden. C# ist ähnlich wie JAVA, wobei JAVA allerdings auf einer
> Virtuellen Maschine läuft, die es praktisch für jedes größere
> Betriebssystem gibt.

... auch für kleinere, embedded Systeme und auch Mobiltelefone.

> C# und C++ und C bis hin zu Turbopascal und
> Assembler liefern EXEcuteable Dateien direkt fürs Betriebssystem.

C# eben nicht, es liefert IL (Intermediate Language), das dann in der 
.NET Laufzeitumgebung ausgeführt wird.

> Ich weiß jetzt gar nicht, wie das mit Pointern im C# ist.

Ist gar nicht, aber Du hast recht, Du weisst es jetzt gar nicht.

> Bei C# muß man soweit ich weiß, schon in die Tasche greifen und ein paar
> Euros herbeizaubern.

auch falsch, siehe Post von Rufus

> Deshalb nehme ich nicht C#.
> Und ich kenne es auch kaum.

und deshalb ist dem Fragesteller auch kaum geholfen.

(übrigens möglicherweise auch mit meinem Beitrag nicht ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren