Für was ist die Programmiersprache C# sinnvoll und ist die "attraktiv" für einen Beruf als Programmierer (z.B in der Gaming Branche)?

6 Antworten

Von Experte Erzesel bestätigt

Bis auf direkte Hardware-Steuerung oder High-Performance geht damit eigentlich alles.

Wobei man Hardware-Steuerung mit einer kleinen C++-Library trotzdem sehr gut erreichen kann - und so würde ich es auch kombinieren, da C# viel einfacher ist.
Und Performance ist mittlerweile auch sehr gut, an die Detail-Optimierungen mit C++ kommt sie nicht heran, aber in den seltensten Fällen braucht man das oder hat Leute, die das auch wirklich können. Und wenn doch, kann man auch in diesen Fällen wieder C# und C++ kombinieren.

Ob es "attraktiv" ist, hängt von dir ab.
Du kannst jedenfalls sehr viel damit machen und auf dem Arbeitsmarkt ist sie auch sehr gefragt - Tendenz steigend.

Allerdings ist C# nicht so einfach, wie gerne behauptet wird. Sie ist im Grunde schon einfach, bietet aber auch sehr umfangreiche Funktionen, die zwar sehr nützlich, aber auch schwer zu verstehen und zu nutzen sind. Man kann darauf verzichten und rennt dann gegen Mauern, oder man lässt die ganzen schlechten Tutorials (= fast alle) weg und fängt vorne und nicht mitten drin an.

Woher ich das weiß:Berufserfahrung

C# ist im Grunde Microsofts Antwort auf Java und deckt prinzipiell die gleichen Anwendungsfälle ab, wobei die Nähe zum hauseigenen Windows natürlich sehr nützlich ist.

Mit C# werden GUIs, Windows-Dienste, Server, Cloud-Dienste und durch entsprechende Frameworks auch Webseiten und Apps für Android und iOS geschrieben. Unity lässt sich zum Beispiel auch mit C# steuern. Machine Learning ugs. "Künstliche Intelligenz" lässt sich durch das ML.NET auch sehr einfach nutzen. C# ist ein "Allrounder" wie Java eben.

Die Performance von C# hat sich in den letzten Jahren sehr verbessert. Zudem kann man mit C# auch C++ Bibliotheken nutzen und somit punktuell mehr Performance rausholen, wenn es nötig sein sollte. Habe ich selbst noch nie gebraucht.

C# wird als sehr leichte Programmiere-Sprache beschrieben, was im Grunde auch stimmt. Aber wie überall steckt der Teufel im Details. Es gibt Funktionen der Sprache an denen man sich die Zähne ausbeißen kann. Aber die Sprache nimmt dir sehr viel Arbeit ab und ist für den Einstieg sehr gut geeignet.

Auf dem Arbeitsmarkt ist C# immer etablierter und .NET Entwickler werden immer gesucht.

LG Knom

Woher ich das weiß:Berufserfahrung

Ist eine General Purpose Programmiersprache für plattformübergreifende Programme.

Unity nutzt die Sprache zB.

Ansonsten ist sie hauptsächlich für GUIs oder Kommandozeilenprogramme gedacht und auch recht beliebt und verbreitet.

Defakto ist es so, dass es durchaus Sinnvoll ist mehrere Sprachen zu beherschen und C# ist in seiner Syntax sehr nahe an C/C++ und Java von da her wirst du da auch keine Probleme haben die zu erlernen wenn du C# kannst.


Palladin007  31.05.2022, 01:52
Ansonsten ist sie hauptsächlich für GUIs oder Kommandozeilenprogramme gedacht

Und Cloud-Systeme oder Windows-Dienste oder mit .NET Micro auf Embedded ;)

5
PeterKremsner  31.05.2022, 09:20
@Palladin007

Von .NET Micro halte ich aber ehrlichgesagt nicht viel.

Ich habs mal ausprobiert, aber genau wie bei Micropython verbraucht der Interpreter schon einiges an Speicher und ist dazu auch nicht sonderlich performant.

Ich glaube für einige Projekte, wo kein Speicher oder Reaktionszeitmangel vorhanden ist, ists zwar durchaus interessant, aber in den meisten Fällen in welchen man dann C# nutzen will, kann man auch auf dem System ein Linux mit dem normalen .NET laufen lassen.

Auf Embedded nutze ich daher meist C oder C++.

0
Palladin007  31.05.2022, 10:13
@PeterKremsner

Ich hab's gar nicht genutzt, aber es gibt es und darum geht's

Wer das produktiv nutzen will, sollte es sich sowieso erst anschauen

0

Wenn du nen krisenfestem Job im Bereich Programmierung haben möchtest, dann empfehle ich dir eine Orientierung in Richtung SAP.
Die schmeißen alle Nase lang neue Releases auf den Markt und dann sind Heerscharen von EDV-lern damit beschäftigt, bei den Kunden die Roll-Outs zu begleiten und das Customizing durchzuführen.

Für so gut wie alles ist C# nutzbar. Klar gibt es Sachen, wofür man es weniger nutzen würde, wie sehr hardwarenahe Sachen oder clientseitige Programmierung für den Browser, wobei es da sicher auch Mittel gibt, die das in JS ersetzen oder eben wasm. Kleine Automatisierungssachen würde ich wohl auch eher mit Python machen.

Aber ansonsten, von Desktopanwendungen über REST-Schnittstellen, irgendwelche Services bzw. Serveranwendungen oder eben Games vor allem in Kombination mit Unity ist C# durchaus passend.

Woher ich das weiß:Berufserfahrung – Softwareentwickler/Projektleiter seit 2012

cuser03  31.05.2022, 08:18

Mit Blazor und Webassembly lässt sich C# auch im Browser verwenden. Automatisierungen kann man auch in Powershell schreiben was ja ebenfalls auf dotnet basiert und sehr leicht zu lernen ist für C# Entwickler.

1
apachy  31.05.2022, 08:28
@cuser03

Sagte ja es gibt sicher Wege das irgendwie in JS oder wasm zu bekommen. Wobei ich gestehen muss, das ich kein großer Fan bin eine Sprache zu nutzen, weil man sie nutzen will, in einer Umgebung, wo sie eher wenig populär oder passend ist, nur weil es Tools gibt, die das irgendwie möglich machen.

Meist bedeutet das mehr Aufwand, Einschränkungen und schwer nachvollziehbare Fehler, schlechte Performance oder, oder, oder. Irgendwie cool und toll dass es so Sachen gibt aber sollte imo mit Bedacht genutzt werden.

Wobei WebAssembly ja quasi genau dafür da ist. Aber wenn ich mir mal die ganzen bloated Electron Apps anschaue oder die Versuche komplexere C# Sachen für Linux zu nutzen usw. keine Ahnung, imo ein suboptimaler Weg.

Powershell bin ich ehrlich gesagt nicht auf den Laufenden wo man das alles ausführen kann und wie schwer oder leicht da einige Sachen umzusetzen sind. Müsste ich mich wohl mal reinfuchsen. Kann man ja nun wohl auch relativ einfach GUIs erstellen und was weiß ich was alles.

2
cuser03  31.05.2022, 19:21
@apachy

Man kann damit fast Alles machen was man in C# machen kann (wobei GUI Anwendungen etc. eher nicht sinnvoll sind in PS), seit NET Core ist das Ganze auch Multi Plattform und läuft genauso auf Linux und Mac, was natürlich z.B für Build Pipelines sehr nützlich ist.

0