Ist jede Programmiersprache so gut wie die andere?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet
Ich möchte später einmal in der Lage sein Windows Anwendungen und Apps zu programmieren. (...) Als Einstieg hatte ich mir einfach C# vorgestellt.

C# eignet sich dafür hervorragend.

  • Das NET-Framework hat nun zwar auch eine cross-platform Orientierung bekommen, doch der Fokus für Windows OS ist damit nicht direkt verlorengegangen. Es beinhaltet wirklich gute Tools, um moderne GUI-Anwendungen zu bauen (Stichworte: WPF, MAUI).
  • Zu C# gibt es haufenweise Ressourcen, um die Sprache zu lernen.
Manche gaben mir den Ratschlag (...) Im Endeffekt hat es mich nur verunsichert (...)

Die Argumente fehlen bezüglich dieser Ratschläge. Wenn dir jemand eine andere Option empfehlen möchte, sollte er das auch begründen, damit du abwägen/einordnen kannst. Wenn das fehlt oder nur nichtssagende Aussagen à la Programmiersprache X ist schlecht folgen, solltest du nachhaken oder die Quelle ignorieren.

Ich denke aber dass die Sprache allein garnicht mal so wichtig ist (...)

Programmiersprachen haben aus ihrer Historie heraus bestimmte Ziele, die sie verfolgen. Während eine Sprache vielleicht besonders einfach für Programmiereinsteiger sein möchte, hat sich eine andere Sprache ein anderes Motiv wie Parallelität oder Portabilität auf die Fahne geschrieben. Während eine Sprache einem stark funktionalen Paradigma folgt, wurde für eine andere Sprache ein objektorientiertes Modell implementiert.

Einen weiteren Einfluss haben in dem Sinne natürlich auch die Tools, die rund herum für eine Programmiersprache schon gebaut wurden. Das fängt bereits mit der Existenz von einer IDE (mit Debugger, Syntax Highlighting-Support, etc.) an und setzt sich in einzelnen Themenbereichen mit vorhandenen Bibliotheken, Frameworks und dergleichen fort. Gäbe es beispielsweise nicht so etwas wie ASP.NET für C#, würde man heutzutage nicht unbedingt C# in der Webentwicklung einsetzen, sondern einen Technologiestack, der die gewünschten Vorteile mitsamt besserer Rahmenbedingungen liefert (z.B. Java mit Spring).

So ergeben sich durchaus Eigenschaften, die eine Programmiersprache für bestimmte Einsatzgebiete besonders geeignet oder eher ungeeignet machen.

Python beispielsweise wurde als Skriptsprache entworfen, man kann sie daher sehr gut für Rapid Prototyping einsetzen. Wenn es jedoch darum geht, komplexere Anwendungen zu bauen (vllt. mit mehreren parallelen Hintergrundprozessen, einer GUI bestehend aus etlichen Komponenten, usw.), wäre Python nicht meine erste Wahl.

Ein weiterer wichtiger Punkt ist der verfügbare Support rund um eine Programmiersprache. Das schließt den technischen/funktionalen Support sowie die Weiterentwicklung der Sprache und verfügbare Lernquellen / eine Dokumentation mit ein. Sofern man nicht aus viel Zeit und guter Laune heraus schöpfen kann, empfiehlt es sich stets, mit Technologien zu arbeiten, zu denen man viel Material und Beistand (bei Problemen) finden kann.

Ist jede Programmiersprache so gut wie die andere?

Wie man aus dem obigen Text heraus ableiten kann, wäre meine Antwort: Nein. Wobei ich nicht explizit zwischen gut/schlecht, sondern zwischen besser/weniger geeignet für einen Zweck XY unterscheide.

Den Nachweis dafür kann man auch in der Praxis beobachten. In verschiedenen Themengebieten setzen sich zumeist die Programmiersprachen durch, die geeignete Rahmenbedingungen mit sich liefern. Ein Softwareunternehmen, welches zum Beispiel mobile Apps für Kunden entwickeln möchte, greift eher zu Sprachen wie Kotlin, Java oder Swift (die jeweils offiziell/nativ unterstützten Programmiersprachen für Android/iOS), statt irgendeine beliebige Programmiersprache nach Zufallslos aus der Grabbelkiste zu ziehen.

Wenn man das alles beherrscht, dann kann man sich, so glaube ich, viel leichter in andere Sprachen einarbeiten (...)

Programmiersprachen teilen sich immer wieder bestimmte Lösungen/Ideen. So findet man oft gleiche Konstrukte wie if, switch, for, die sich in der Syntax nicht einmal so sehr unterscheiden müssen und ein weitestgehend gleiches Verhalten aufweisen.

Daher ja, es kann einfacher fallen, sich in eine neue Programmiersprache einzuarbeiten, wenn man bereits eine andere kennt. Das trifft vor allem dann zu, wenn sich diese Sprachen in der Syntax nah stehen und für ähnliche Zwecke/Anwendungsgebiete entwickelt wurden.

Bei einigen Sprachen wurde in der Entwicklung auch explizit darauf geachtet, ein paar Brücken einzubauen, die Programmierern den Umstieg von einer derzeitig populären Programmiersprache zur eigenen einfacher machen sollten (Bsp.: C > Java, Java > C#, Perl > PHP).

Allerdings sollte man ebenfalls berücksichtigen, dass jede Sprache eigene Denkweisen/Konzepte verfolgt. Perl beispielsweise setzt auf eine große Flexibilität im Ausdruck (There is more than one way to do it), eine für Skriptanwendungen konzipierte Sprache wie Python bietet Mittel, Code möglichst einfach und kurz zu halten (Auszug aus Zen of Python: Simple is better than complex). Java hingegen wäre ein Beispiel für eine Sprache, die mehr auf Stabilität/Typsicherheit setzt und aus diesem Grund ab und an eine ausformuliertere Syntax fordert, Haskell vermeidet Seiteneffekte und Prolog ist ein typischer Vertreter deklarativer Programmierung.

Wenn man eine neue Programmiersprache lernt, beschränken sich die Unterschiede also nicht nur auf die Syntax. Die Art, an Probleme heranzugehen/sie zu lösen, kann sich ebenso ziemlich unterscheiden.


ElvanL77  06.09.2023, 15:29

Respekt für diese sehr gute Antwort.

1
Von Experten Erzesel und FaTech bestätigt

NEINN!!!!!!! KEIN JAVA!! DU HATTEST SCHON DIE RICHTIGE IDEE

Java ist grundsätzlich einfach C#, aber schlechter. C# ist das, was Java sein will. Java ist outdated und es wird langsam immer mehr von Java auf C# umgestiegen.

C# kann alles was du willst. Ist nicht die einfachste Sprache, aber trotzdem anfängerfreundlich und mit der hab ich auch angefangen und bin sehr froh darüber (Wollte vorher mit C++ anfangen 💀🙏🙅‍♂️🤯)

Nicht jede Sprache ist "gleich gut" sondern es gibt bestimmte Bereiche wo eine bestimmte Sprache besser als andere ist oder überhaupt geeignet ist. Aber C# ist echt eine sehr solide Grundlage und ich empfehle dir, damit anzufangen, um in die Programmierung einzusteigen


ingosteinkeseo  11.03.2024, 17:17

Auf den beschriebenen Anwendungsfall ist die Antwort korrekt, aber der Tonfall wäre noch ausbaufähig.

0
FaTech  06.09.2023, 08:46

Das Java so sein will, wie C# lässt mir keine Ruhe. Beide Sprachen sind eher unabhängig. C# hingegen ist aber Java sehr ähnlich, wie es auch C++ ähnlich ist. Man kann sagen, es ist Java auf Steroide. (Was nicht heißt, dass es wirklich Java ist. Es ist nur ein Spruch, weil C# so mächtig ist). Auch anbei fügen möchte ich diese Antwort von mir. Ansonsten stimme ich schon so ziemlich zu in den meisten Punkten. Oh und PS: Java ist nicht outdated. Outdated wäre es, wenn die meisten es nicht mehr nutzen. Problem: Die meiste Software baut noch darauf und das umschreiben in andere Sprachen wäre zu teuer.

1
ElvanL77  05.09.2023, 23:44

c# ist die neueste und modernste Programmiersprache... sie ist die Zukunft... erstmal :D

0
jo135  06.09.2023, 07:47
@ElvanL77

Neu? C# hat schon etliche Jahre auf dem Buckel und ist wohl älter als viele FS auf GF. Warum das relevant sein soll, ist halt die Frage.

0
FaTech  06.09.2023, 08:43
@ElvanL77

Naja, neu nicht, aber die neusten Updates der Sprache sind einfach nur Top

0
regex9  05.09.2023, 23:15
C# ist das, was Java sein will.

Java möchte nicht wie C# sein. Andernfalls hätte sich die Sprache auch mehr in diese Richtung entwickelt, die auch C# nimmt (z.B. stärkere Integration funktionaler Ansätze). Das hat sie aber nicht.

Java ist outdated

Das ist ebenso falsch. Die Sprache wird noch immer regelmäßig weiterentwickelt und geht ihren Weg. Was hingegen richtig ist, dass die Konkurrenz über die Jahre größer geworden ist (C#, Clojure, Go, JavaScript, Kotlin, Python, Scala, ...), was zu einer weiteren Marktaufteilung geführt hat.

1
RobertoAssas 
Beitragsersteller
 05.09.2023, 22:57

Aber stimmt der letzte Teil meiner Annahme? Dass es mir dann aufgrund des Wissens dass ich in C# gesammelt habe leichter fallen wird Sprachen wie zb C++ zu erlernen?

1
Charmin  05.09.2023, 23:02
@RobertoAssas

Ja, es fällt dir leichter.

Ich gebe hier meinen Vorredner in allen Punkten recht.
Was ich vielleicht noch zu C# hinzufügen würde ist WPF als Framework, gibt es kostenlose YouTube Videos oder über Udemy interessante Kurse die auch Spaß machen.

2
FaTech  06.09.2023, 08:42
@RobertoAssas

Ja, es stimmt. Wobei es so ist, wenn man C# kann, man eigentlich kein C++ mehr können muss, da man mit C# bereits alles machen kann. C# ist ein super Allrounder und geht auch immer weiter, wie C++ auch, in die native Richtung.

2