Ist jede Programmiersprache so gut wie die andere?
Ich möchte gerne programmieren. Ich möchte später einmal in der Lage sein Windows Anwendungen und Apps zu programmieren.
Als Einstieg hatte ich mir einfach C# vorgestellt. Zum einen weil es eine Sprache im .net Framework ist zum anderen weil sie anfängerfreundlich ist und man mit ihr schon gut was anfangen kann.
Nun wurde viel auf mich eingeredet. Manche gaben mir den Ratschlag lieber Java anstatt C# zu lernen. Andere sagten ich solle lieber Python anstelle von C# lernen. Im Endeffekt hat es mich nur verunsichert.
Ich denke aber dass die Sprache allein garnicht mal so wichtig ist sondern die Art und Weise wie man Klassen bildet, Objekte erstellt, Datenbanken abruft, einbindet, etc.
Wenn man das alles beherrscht, dann kann man sich, so glaube ich, viel leichter in andere Sprachen einarbeiten da die Arbeit an sich die selbe ist nur die Syntax ist eine andere.
Ist meine Denkweise korrekt oder täusche ich mich?
2 Antworten
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.
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
Auf den beschriebenen Anwendungsfall ist die Antwort korrekt, aber der Tonfall wäre noch ausbaufähig.
Ich meine halt im Vergleich zu C# ist es nicht so modern
c# ist die neueste und modernste Programmiersprache... sie ist die Zukunft... erstmal :D
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.
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?
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.
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.
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.