Welche DIESER Programmiersprachen findet ihr am besten?

Das Ergebnis basiert auf 17 Abstimmungen

C++ 59%
C# 29%
C 12%

6 Antworten

C++

Aber die anderen beiden schätze ich ebenfalls sehr.

Alle drei sind eben grundlegend verschieden.

C++

C++ ist eine Erweiterung von C, es gibt also kaum einen Grund C vorziehen, allenfalls bei Microprozessorprogrammierung oder sonst, wenn man nur einen kleinen Befehlsatz haben will oder haben soll (weil z.B. der Speicher für die Programmierung minimal ist).

C# ist eine nette Antwort von Microrsoft auf Java, auf Windows sehr mächtig mit tollen Konzepten. Es ist und bleibt aber eine Interpretersprache (die im Übrigen so ziemlich nichts mit C zu tun hat, außer etwas Ähnlichkeit in der Syntax), und WPF/XAML ist eine Programmiertechnik, die mir gar nicht passt.

C++ hingegen ist äußerst mächtig, kann alles, plattformübergreifend, high-end-performand, Compiler-direkt, Assemblereinbindungen ermöglichend - sehr schwer, aber dafür hat man Zugriff auf alles, von den Ports, Register einerseits bis hin zu sehr guten OOP-Konzepten andererseits.

Woher ich das weiß:Eigene Erfahrung – Hobby und teilweise beruflich
Es ist und bleibt aber eine Interpretersprache

Stimmt nicht.
Der C#-Code wird in CIL kompiliert, die Runtime kompiliert diesen CIL-Code dann zu Laufzeit bei der ersten Nutzung und behält das Ergebnis im RAM. Man kann aber auch voraus-kompilieren um Ladezeit zu sparen, das macht die Anwendung aber möglicherweise etwas langsamer.
Z.B. Java tickt da etwas anders, da wird der Java-Byte-Code nämlich interpretiert, was Vorteile, aber auch einige Nachteile hat - z.B. Performance.

WPF/XAML ist eine Programmiertechnik, die mir gar nicht passt

Meiner Erfahrung nach sagen das immer die, die WPF und MVVM nicht verstanden haben ;)
Aber ich gebe zu, die Einstiegshürde ist groß und WPF bietet keinen einheitlichen Rahmen, wie z.B. ASP.NET Core es tut.
Und man merkt, dass WPF einige Jahre auf dem Buckel hat.

plattformübergreifend

C# ist auch platformunabhängig.
Das Projekt ist zugegeben noch nicht ganz abgeschlossen, z.B. fehlt noch eine platformunabhängige Desktop-UI-Lösung, aber auch das kommt (hoffentlich dieses Jahr) noch.

high-end-performand

Man kann C++ sehr kleinteilig optimieren, dagegen kommt kaum eine höhere Sprache an. Nachteil einer solchen Optimierung ist aber 1. der hohe Aufwand und 2., dass man dabei schnell die Platformunabhängigkeit aufgibt. C# bzw. der JIT-Compiler kann dagegen platformspezifisch und sehr spezifisch optimieren, was sogar schneller sein kann, als C++.
In den meisten "normalen" Projekten dürfte die Performance aber sehr nahe beieinander liegen - wenn man weiß, was man tut.

sehr guten OOP-Konzepten andererseits

C++ hat zwar ein OOP-Konzept, aber mMn. nicht zuende gedacht. Zum Einen fällt vielen Entwicklern/Firmen die Mehrfachvererbung auf die Füße, weshalb sie in C# auch bewusst nicht eingebaut wurde.
Generell hat Microsoft C# mit C++ im Hinterkopf entwickelt und bewusst aus vielen Fehlern gelernt. Benennen kann ich das aber nicht aus dem Kopf, da ich zu selten damit arbeite.
Der wichtigste Unterschied wird wohl sein, dass man bei C# keine Wahl hat - man muss mit OOP arbeiten, während bei C++ die Arbeit ohne OOP ähnlich kompliziert ist, wie mit OOP.

0
@Palladin007

In C++ ist gar nichts zu Ende gedacht, das ist Patchwork, Chirurgie am lebenden Objekt.

C# wird auf anderen Systemen immer nur hinterherrennen, MS proggt nur für MS

0
@nobytree2
C# wird auf anderen Systemen immer nur hinterherrennen, MS proggt nur für MS

Hast Du auch Argumente für diese völlig haltlose Behauptung?

0
@nobytree2

Dein Stand ist ein paar Jahre veraltet.

Mono wird meines Wissens nach nur noch in Xamarin genutzt und Microsoft arbeitet gerade an einer neuen Version (heißt dann MAUI), die auf .NET 6 aufbauen wird.

Worauf Unity aufbaut, weiß ich nicht, aber alles andere ist schon lange kein Mono mehr, Mono ist tot.

0
@Palladin007

Ok, da war ich wirklich veraltet, aber die Kombination MS , Windows, C# auf andere Systeme genauso perfekt zu kopieren, die nicht so eng wie MS und Windows verwoben sind, Respekt

0
@nobytree2

Was ich meine, wenn MS Windows erweitert, bekommen das die C#-Progger gleich mit und zwar mit Details, aber Du bist der Experte in C#, ich bin nicht fit diesbo

0
@nobytree2

Nur wenn die C#-Entwickler auch auf Windows arbeiten.
VisualStudio gibt's auch für Mac (keine Ahnung, wie gut das ist) und VisualStudioCode läuft ungefähr überall.

Änderungen in Windows sollten darüber hinaus nicht auffallen, da .NET eben das kapselt. Außer man nutzt per P/Invoke Windows-Features, dann ist man natürlich davon abhängig und weiß hoffentlich auch, was man tut.

Aber ja, die meisten werden vermutlich auf Windows arbeiten. Ist mMn. einfach das am flexibelsten einsetzbare Betriebssystem, da es die meiste Software gibt - außerdem erreicht man da die meisten Nutzer.
Seit es ein Linux-Sub-System mit bringt, kann man sogar im Windows mit Linux arbeiten. Das geht zwar nur eingeschränkt, aber für die reine Entwicklung kann das einiges vereinfachen.
Apple zwingt aber immer noch zum Mac, wenn man irgendwas für MacOS machen will. Dafür kann Microsoft nichts, die haben dafür aber im VisualStudio eine Möglichkeit zur Ansteuerung von einem Mac eingebaut, dass das Apple-Gerät nur daneben liegen muss. Zumindest hab ich das damals mit Xamarin und einem Apple-Handy genutzt - Live-Debugging im VisualStudio auf meinem Windows-PC.

Und darüber hinaus ist Microsoft auch sehr aktiv hinterher, was ihre Doku angeht. Bei meiner Arbeit mit z.B. Java habe ich immer die wirklich hervorragende MSDN-Doku vermisst und wenn da mal etwas fehlt, gucke ich einfach im Quellcode vom .NET nach, den gibt's mit allen Frameworks und der Runtime auf GitHub.

0
C

C ist rein und nicht so aufgeblasen wie C++.

Mit C# habe ich mich wenig beschäftigt, aber mir gefallen solche JIT Sprachen generell nicht.

Woher ich das weiß:Hobby – Ich programmiere manchmal.
C#

Von allen gefragten eindeutig C#.
ansosten auch gerne Java und Python :)

Woher ich das weiß:Beruf – Auftragsprogrammierer seit 3 Jahren | Java, Python, usw
Von Experte PeterP58 bestätigt

Kommt ganz drauf an wofür. Auf normalen Computersystemen für nicht besonders anspruchsvolle Berechnungen C#.

Für besonders anspruchsvolle Berechnungen oder auf Systemene ohne entsprechendes Betriebsystem C/C++. Ob C oder C++ richtet sich dann nach den entsprechenden Libraries oder dem Projektumfang. Oft läufts auf eine Mischung von C und C++ hinaus.

Was möchtest Du wissen?