C ist eine besonders weit verbreitete Programmiersprache für die System- und Anwendungsprogrammierung. C++ kommt bei der maschinennahen Programmierung zum Einsatz. Programmierer für die objektorientierte Sprache C# sind ebenfalls in dieser Rubrik zu finden.
C wurde von Dennis Ritchie für das Betriebssystem Unix entwickelt und gehört zu den weit verbreitetsten und langlebigsten Programmiersprachen. Die Entwicklung begann in den frühen 1970er Jahren und um 1980 herum wurde C um Klassen und Objekte erweitert durch Bjarne Stroustrup. Diese objektorientierte Sprache ist C++. Sie ist eine höhere Programmiersprache als C. C++ ist eine von der ISO genormte Programmiersprache wie auch z.B. C, Ruby oder Pascal. Der Standard C18 wurde 2018 unter der Norm ISO/IEC 9899:2018 freigegeben. 2017 hat das ISO-C++-Komitee den Sprachstandard C++17 technisch abgeschlossen. Zu der C Familie zählen auch Verwandte wie Objektiv-C und C#.
Zu C und C++ gehören jeweils sogenannte Standardbibliotheken.Die C-Standard-Bibliothek umfasst ca. zweihundert oft genutzte Funktionen u.a. für Ein- und Ausgabe, die Verarbeitungs von Zeichenketten, mathematische Operationen sowie die Speicherverwaltung. Die C++ Standardbibliothek umfasst die komplette C Standardbibliothek und wird durch eine Sammlung der wichtigsten Unterprogramme und weiterer grundlegender Programmkomponenten wie z.B. Container, Iteratoren, Zufallszahlengeneratoren, Werkzeuge für Multithreading, reguläre Ausdrücke etc. ergänzt. Eine weitere Quelle für Ergänzungen der Standard-C++ Bibliothek ist Boost. Die Plattform Boost bietet kostenlose, von Fachkollegen geprüfte portable C++ Quellbibliotheken, die gut mit der C++ Standardbibliothek zusammenarbeiten..
C# wurde von Microsoft entwickelt und 2002 veröffentlicht.Die Sprache ist an C bzw. C++ angelehnt und objektorientiert. Die aktuelle Version ist 8.0. Das .NET Framework stellt die Basis für die C# Programme zur Verfügung. Die .NET Plattform gibt es auch in einer Open-Source Version, .NET Core, sowohl für Windows als auch für Linux und mac OS.
Die Programmiersprache C kann in sehr unterschiedlichen Bereichen eingesetzt werden. Meist wird sie zur System- und Anwendungsprogrammierung genutzt. Die Basisprogramme sämtlicher Unix-Systeme, aber auch die Systemkernel viele Betriebssysteme setzen auf die Sprache C. Die Programmiersprache C wird als maschinennahe Programmiersprache in der Industrie, aber auch an Universitäten, im wissenschaftlichen Umfeld sowie im Open-Source Bereich verwendet.Die C Programmierung ist bei der Hardware-Entwicklung immer noch das Mittel der Wahl.
C++ wird ebenfalls in der System- und Anwendungsprogrammierung genutzt. Die Sprache unterstützt eine effiziente und maschinennahe Programmierung. Die Einsatzmöglichkeiten variieren von Betriebssystemen aller Art,der Software-Entwicklung, der Entwicklung von High-End Computerspielen und Browser Engines bis hin zu virtuellen Maschinen und Treibern.
C# wird für dynamische Internetanwendungen mit interaktiven Benutzeroberflächen, Datenbankanwendungen, WPF-Anwendungen mit XAML, klassischen Windows-Forms Anwendungen sowie Spiele Programmierungen für PC und XBox verwendet.
Bei den einzelnen Programmiersprachen kommt es natürlich immer auch auf den Einsatzzweck und die bestimmte Einsatzumgebung an. Was für den einen ein Vorteil darstellt, muss sich für einen anderen nicht als solcher Vorteil erweisen. Für einige Projekte sind Sprachen wie C oder C++ besonders geeignet, z.B. wenn man maschinennahe Lösungen benötigt.
Für die verschiedenen Programmiersprachen gibt es zahlreiche Anbieter von Zertifizierungen. Das reicht von Kursen an Hochschulen, Fachhochschulen oder Fernunis bis hin zur IHK. Eine Zertifizierung ist natürlich immer ein Hinweis darauf, dass der Entwickler die Grundlagen der Programmierung mit Hilfe dieser Programmsprache versteht. Fundierte Kenntnisse allein reichen aber in der Regel nicht aus, um ein Projekt erfolgreich zum Abschluss zu bringen.
Neben den Kenntnissen in der Programmiersprache sind in der Regel auch Kenntnisse von relationalen Datenbanken und Dokumentendatenbanken sowie Versionsverwaltung und Know-how in unterschiedlichen Vorgehensmodellen wichtig. Insgesamt muss der IT-Dienstleister bzw. der Programmierer zu Ihrem Tech Stack (Technology Stack), also Ihrem Technologiebestand im Unternehmen mit Programmiersprachen und Frameworks passen. Zu diesem Tech Stack zählen bei Ihnen, wenn Sie nach IT-Dienstleistern im Bereich C, C++ und C# Ausschau halten beispielsweise auch Visual C# und Visual Studio, IBM-Mainframe-Architektur mit den Systemen IMS/CICS, DB2, TSO und so weiter.
Wichtig bei einer Auswahl von IT-Dienstleistern ist unter anderem auch deren bisheriges Projektportfolio. Haben die Programmierer schon vergleichbare Projekte erfolgreich bearbeitet? Hat der Dienstleister ausreichend erfahrene Programmierer zur Verfügung? Ein weiterer Aspekt bei der Auswahl kann Art und Umfang des Github Portfolios des Entwicklers bzw. des IT-Dienstleisters sein. Hierbei können Sie z.B. sehen, wie aktiv ein Entwickler sich an Programmierungen beteiligt, wie viele Lösungen er beiträgt und wie sein Programmierstil ist.
Wenn Sie einen IT-Dienstleister oder Entwickler für C oder C++ im Bereich Automotiv Software suchen, sollten Sie darauf achten, dass dieser bereits bei der Entwicklung Coding-Standards wie MISRA C und MISRA C++ berücksichtigen. Die MISRA C- und MISRA C++ Standards werden von der Motor Industry Software Reliability Association (MISRA) veröffentlicht. Der MISRA C-Standard hat drei Ausgaben: 1998, 2004 und 2012. Der MISRA C++-Standard wurde 2008 veröffentlicht. Ursprünglich nur für den Bereich Automotiv gedacht, sind sie mittlerweile Maßstab für weitere sicherheitsrelevanten Bereiche wie z.B. medizinische Geräte, Eisenbahnen und Kernenergie.
Kosten für ein Programmierprojekt variieren logischerweise je nach Umfang des Projektes. Während die Entwicklungsumgebungen auch als OpenSource zur Verfügung stehen, fallen selbstverständlich Kosten für die Arbeitszeit an. Durchschnittlich kostet ein(e) C, C++ bzw. C#-Entwickler(in) in Deutschland ca. 85 Euro pro Stunde. Je nach Ausbildung und Projekterfahrung kann der Stundensatz auch durchaus höher liegen.