Softwareentwickler hier? Fragen zu C/C++, C#, etc.

Darth Wayne

Urgestein
Thread Starter
Mitglied seit
03.10.2005
Beiträge
3.966
Ort
Rhein/Ruhr
Hallo zusammen,

ich versuche mir gerade einen Überblick über primär die C/C++ Programmierung zu verschaffen. Nicht, weil ich selbst Programmierer bin, aber grob über das Thema Bescheid wissen muss bzw. will. Und neben Recherche im Netz kann es ja nicht schaden, mir von Programmierern - die es hier bestimmt gibt - etwas Wissen mitzunehmen.

Folgende Punkte interessieren mich / teilweise sind Antworten schon vorhanden:

1) Worin unterscheiden sich C und C++? Und wie kann man den Unterschied von C/C++ zu C# möglichst einfach anhand eines oder mehrerer Beispiele verdeutlichen? Also abzielend auf den Einsatzzweck und die Positionierung im "Programmier-Markt"? Darauf zielt dann natürlich auch folgende Frage ab: Wozu werden C oder/und C++ eingesetzt?

2) In welcher Entwicklungsumgebung wird C/C++ geschrieben? -> Visual Studio und Visual Studio Code, aber gibt es darüber hinaus noch C/C++-exklusive Tools?

3) Was sind die gängigen Frameworks in C und auch C++? Bei C# haben wir klassisch .NET, WPF/WCF, Entity, ASP.NET im Bereich Webentwicklung. .NET Core, APS.NET Core... Wie sieht es hier bei C und C++ aus?

4) Inwieweit werden mit C/C++ Backend und/oder Frontend Anwendungen programmiert? Welche Gründe sprechen dafür und dagegen, auch im Hinblick auf C#? Nutzt man C/C++ auch im Bereich Webentwicklung oder sind die Sprachen doch primär für komplexe Anwendungen gedacht?

Ich bedanke mich im Voraus und freue mich auf eure Antworten!

Gruß,
Darth :wayne:
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Worin unterscheiden sich C und C++?
C++ ist eine Erweiterung von C.
Und wie kann man den Unterschied von C/C++ zu C# möglichst einfach anhand eines oder mehrerer Beispiele verdeutlichen?
In C# ist quasi alles ein Objekt.
Wozu werden C oder/und C++ eingesetzt?
Hardwarenahe Programmierung
Wie sieht es hier bei C und C++ aus?
Du hast bei C++ auch die MS Frameworks sonst ist Qt sehr beliebt.

Können andere aber sicher besser beantworten :d
 
C++ ist C aber mit OO, sprich die ganzen Klassenbibliotheken kannst Du nur mit einem C++ Compiler verwenden. Wenn Du Windows Programme mit C schreiben möchtest, brauchst Du schon mal um die 100 Zeilen Code nur um ein simples Fenster zu öffnen, Konsolenfenster einmal aussen vor. In C ist prozedurale Programmierung das höchste der Gefühle.

C# ist eine Hybrid Sprache, welche eine Laufzeitumgebung für das fertige Programm erfordert. Also ähnlich wie Java. Ausserdem kann man den ISS damit füttern, um dort aktive Webanwendungen mit ASP.NET zu programmieren.

Wenn Du mal reinschnuppern möchtest, würde ich Dir C# empfehlen. In C++ kannst Du üble Fehler produzieren, wenn Du mal nen Pointer falsch setzt, oder so.
 
Zuletzt bearbeitet:
gaaaaanz grob:
mit C programmiert man imperativ, also in einer Folge von Anweisungen. Mache das, tue dies usw. Wird hauptsächlich für hardwarenahe Programmierung und für Kommandozeilen genutzt. Ist eher nichts für grafische Oberflächen. Wird heutzutage hauptsächlich in Industrie und Entwicklung genutzt. Ist sehr mächtig.

C++ ist eine objektorientierte Programmiersprache. Du hast Objekte und Funktionen, die du ansprechen und für vordefinierte Aufgaben nutzen kannst. Außerdem programmiert man damit für grafische Oberflächen, man kann aber auch für die Kommandozeile programmieren.

C# ist dann die zeitgemäße Fortentwicklung, für webbasierte Anwendungen und den ganzen Datenbankkrimskrams.

Ich fand C und C++ sehr gut erlernbar, wobei ich aber für kleinere Aufgaben immer auf Visual Basic oder Python geschwenkt bin, da man hier "unsauberer" programmieren kann, für mal etwas schnell zwischendurch. Bei C und C+ geht das nicht so ohne weiteres. C# kenne ich nur aus dem Lehrbuch.

Das ist noch vom Studium hängengeblieben. Keine Gewähr für die Richtigkeit, ist zu lange her.
 
Naja, weiss nicht wie es heute aussieht, aber lange Zeit war Windows und Office in reinem C programmiert. GUI geht also schon mit C. Alles mit API Aufrufen programmiert war/ist das. Auch heute wird wohl ein grosser Teil der Windows Programme noch in C, bzw. C++ programmiert. Schon alleine deshalb, weil man keine Laufzeitumgebung benötigt. So zumindest die Theorie, viele MFC Programme werden wohl auch heute noch auf das .NET Framework zurückgreifen.

Und C kann man nicht nur genauso verwenden wie C++, das ist die selbe Sprache. Man kann also C verwenden in C++ Code. Genau so wie Assembler. Wenn Dich das wirklich interessiert wie das damals entwickelt wurde, würd ich mal nachlesen, wie das entstanden ist. Der erste C Compiler ist entstanden, um die UNIX Kernel einfacher zu entwickeln. Das war nicht mal als Programmiersprache geplant.

Das man mit C/C++ vor allem hardwarenah programmiert, halte ich ebenso für ein Gerücht.

Für C/C++ musst Du Dich halt mit der Geschichte der IT auseinander setzen. Keiner von uns hat je mit 20 Bit Adressbus und Offset gearbeitet, aber jeder schon von gehört. Heute ist das auch in C++ alles einigermassen entkoppelt, trotzdem ist es gut, sich damit befasst zu haben.
 
Zuletzt bearbeitet:
Mein Eindruck zu den vorrangigen Einsatzgebieten von C/C++:

Rein subjektiv würde ich behaupten, dass C++ sehr häufig in der Industrie eingesetzt wird, wenn es die Entwicklung von Anwendungen geht. Auf der anderen Seite ist C in den Opensource Szene sehr beliebt. Zumindest sind alle Projekte an denen ich in meiner Freizeit arbeite in C oder einer gänzlich anderen Sprache geschrieben. Durch Praktika und Werkstudentenjobs kann ich auf der anderen Seite sagen, dass C bei Unternehmen wie Raytheon, ThyssenKrupp oder Google nahezu keine Rolle spielt, während C++ viel und ausgiebig genutzt wird.

Allerdings ist das keine absolute Aussage und rein subjektiv. Ich kenne keine Zahlen. Einige Kollegen haben aber einen ähnlichen Eindruck. Sicherlich spricht auch die Branche eine Rolle. Persönlich war ich bisher hauptsächlich im navalen Verteidigungssektor beruflich tätig und habe wenig Einblick in andere Sektoren / Webentwicklung.
 
Zuletzt bearbeitet:
C# = Microsofts fragwürdige Inkarnation einer Programmiersprache

C = Der Klassiker unter den hardwarenahen, kompilierten Sprachen. Wird noch genutzt (und nicht zu wenig), ist aber rückläufig.

C++ = Die verbesserte Version von C (deswegen ++), bietet im Vergleich zu C vor allem die Möglichkeit objektorientiert zu programmieren und hat mit Templates auch eine extrem mächtige Komponente um generischen und gleichzeitig performanten Code zu schreiben. Zudem hat C++ eine sehr umfangreiche Standardlibrary, sehr gute Compiler und viele Libraries, die genutzt werden können.
Einziger Nachteil an C++ ist, dass es überraschend viele Dinge gibt, die UB (= Undefined Behaviour) sind. Das fängt an beim Dereferenzieren von ungültigen Pointern, geht über Pointer Aliasing und endet bei Sachen wie "Vergessen etwas aus der Funktion zu returnen"
 
Also - hier gibts ja viel halb - und nicht wissen.

C# ist in der Industrie seit Jahren angekommen und etabliert - Steuerungen, Visualisierungen und Background-Services werden in C# geschrieben. Ich selbst bin seit 15 Jahren Software-Entwickler (u.A. in Leitender Position) und kann daher auf ein einigermassen Fundiertes Wissen aus zig dutzend Projekten und etlichen Firmen zurück greifen.

C / C++ spielt in der Industrie NICHT SO die Rolle - ist natuerlich aber fuer MicroController Steuerungen und Zeit- sowie Speicherkritische Anwendungen immer noch die erste Wahl.

Der Vorteil an C# ist die einfache Einbindung verschiedenster Systeme und Technologien. Sei es die Kommunkation ueber TCP/IP, SignalR, MQTT (IOT!) oder die Datenspeicherung mit Hilfe diversester Datenbanken wie SqLite, MySql, SqlServer, Oracle oder wie auch immer.

Fuer Visualisierungs-Systeme ist C# fuer das Backend gut - das Frontent geht immer mehr zu JS, das mit ES6 einen guten Sprung gemacht hat. Hier stellt das Backend ja nur noch die Daten per JSON zur Verfuegung . Ich habe aber immer noch viele Applikationen mit M(M)VC am Laufen, wo C# und JS Hand in Hand gehen.
 
Also - hier gibts ja viel halb - und nicht wissen.
Wie in jedem Forum

C / C++ spielt in der Industrie NICHT SO die Rolle.

Da muss ich dir widersprechen. Ich bin kein Softwareentwickler mehr, aber in meiner Firma arbeitet das gesamte Engineering ausschliesslich mit C und C++ und wir sind ein Dienstleister für die Industrie und den Halbleitertest. Ich darf keine Namen nennen, aber wir haben Kunden, die stellen Wafer her, die widerum in den tollen CPUs stecken, die zwei Fan-Lager hier im Forum benutzen und sich ständig über OC und Temps aufregen :giggle:

Und vor ca. 10-12 Jahren, wo ich selbst noch für die Luftfahrt Testprogramme geschrieben habe, gab es auch nur C++. Ich habe tatsächlich nur im Bereich der Geschäftssoftware C# gesehen, aber nie im technischen Bereich. Klar ist das auch abhängig von der Branche und von der Entwicklung, die man selber in seiner Karriere durchläuft.
 
Da muss ich dir widersprechen.

Wie gesagt, kommt ja auch immer auf die Branche drauf an - bei so Zeit- und Qualitaetskritischen Systemen wie Waver- und Halbleiter-Herstellung kann ich gut nachvollziehen, dass hier C++ zum Einsatz kommt. Wobei aber einer meiner Kollegen bei der Programmierung einer Nutzentrenn-Maschine (zum trennen von Leiterplatten) voll auf C# setzt.
 
C# ist mit seinen zahlreichen Funktions-Bibliotheken wesentlich schneller und übersichtlicher zu programmieren. Diese Bibliotheken haben sich über die Jahre zu einer mächtigen Toolbox entwickelt. Das .NET-Framework. Damit lassen sich so ziemlich alle Anwendungen, wie z.B. Desktop-Apps, Web-Apps, API´s, Konsolenanwendungen und Mobile-Apps entwickeln. Vor etwa 10 Jahren hat Microsoft begonnen, das ganze OpenSource zu machen und plattformübergreifend verfügbar zu machen. Heute das .NET Core-Framework. Das ist gerade Standard. Der Nachteil ist, dass es gegenüber C++ etwas schwergewichtig ist. Daher ist C++ zum Beispiel bei Games, Programmen zur reinen Berechnung von Werten, oder generell wenn etwas schnell gehen soll, die bessere Wahl.
 
 
versuch heute mal einen jungen Studenten von C zu überzeugen. Der wird sich erstmal darüber wundern, dass dafür ein simpler Texteditor genügt...
"...ja wie, der rückt mir die Zeilen nicht automatisch ein?...Fehler werden nicht automatisch markiert....? So´n scheiss" :d
 

Ähnliche Themen

Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh