Welche Programmiersprache nach javascript?

4 Antworten

Auf zwei Aussagen möchte ich im Vorfeld separat einmal eingehen:

(...) Nicht nur mit pip install irgendwas nutzen von jemand anderes. Am ende hast du keine ahnung von der programmierung (...)

Paketmanager mit dazugehörigen Package Repositories sind in der Softwareentwicklung weit verbreitet, es ist kein Python-spezifisches Feature, falls du das denkst. Cargo (Rust), Composer (PHP), Conan/CPM (C++), Maven/Gradle/Ivy (Kotlin/Java/Scala), NuGet (C#), Pub (Dart), RVM (Ruby) sind ein paar Beispiele. Für JavaScript wiederum sollte dir NPM bekannt sein.

Es gibt allerdings keinen Zwang, Probleme mit externen Abhängigkeiten zu lösen.

(...) c# ist soweit ich weiss nur für windows Anwendungen gut, (...)

Nein, mit C# kann man auch Anwendungen für andere Plattformen entwickeln. Die genaue Auflistung unterstützter Zielplattformen seitens .NET kannst du hier finden.

Zu deiner Frage:

Welche Programmiersprache nach javascript?

Du müsstest dir einmal überlegen, was du denn nun genau für Software entwickeln möchtest oder worauf der Fokus denn nun tatsächlich liegen soll.

Du schreibst beispielsweise:

ich seh da keinen grossartigen vorteil zu java oder c++ in der schnelligkeit.

Aber was hast du da nun konkret im Auge? Möchtest du eigene Treibersoftware entwickeln oder klassische Middleware-Software (zur Kommunikation zwischen OS und Anwendungsschicht; z.B. eine Grafik- oder Physik-Engine für eine Game Engine)? Wenn ja, wären C, Rust oder C++ die bessere Wahl, da du auf einer niedrigeren Abstraktionsebene arbeiten kannst.

Für klassische Anwendungssoftware (Bsp.: Browser, Office-Anwendungen) hingegen bist du mit C# oder Java schon ziemlich gut aufgestellt (C++ ist natürlich trotzdem ebenso eine Option). Wenn du dabei auf Performanceprobleme stößt, wäre zunächst einmal zu hinterfragen, was du da überhaupt programmiert hast. 😉

Neues zum Lernen findest du bei allen genannten Sprachen. Hinsichtlich funktionaler Hintergründe auf tieferer Ebene, kann man bei C oder C++ natürlich am meisten entdecken.

Wenn es dir darum geht, eine gute Zukunftsperspektive zu haben, dann bist du mit C++, C# und Java definitiv erst einmal sicher. Selbst wenn neue Programmiersprachen auf den Markt kommen, können sie andere nicht so einfach über Nacht verdrängen. Und ein späterer Umstieg auf eine neue Programmiersprache sollte ebenfalls keine allzu große Hürde darstellen. Einen stetigen Lernaufwand muss man eh in Kauf nehmen, die Tools ändern sich ja ständig.

Für eine Art Mix (mal relativ hardwarenah arbeiten, mal GUI-Anwendung entwickeln, mehr über Speicherverwaltung und ähnliches erfahren) ist C++ die wohl beste Option.

Testtest1320 
Fragesteller
 07.10.2023, 23:05
Paketmanager mit dazugehörigen Package Repositories sind in der Softwareentwicklung weit verbreitet, es ist kein Python-spezifisches Feature, falls du das denkst.

Ja aber du weisst denke ich wie das gemeint ist es gibt viele memes die darüber lachen bei python.

ich seh auch immer indische python instagram seiten wo die ai face detector in einem bild „programmieren“.

Da besteht dein ganzes Projekt aus dem Import. Da denk ich mir lad dir doch gleich eine app im app store runter wenn du kein bock hast etwas zu lernen oder programmieren. Irgendwas einzigartiges zu machen selbst wenn es nicht an ai detector rankommt.

wenn ich was mit npm mache dann als legostein in einem todestern, ich brauch keine pie chart oder bilder carousel from scratch programmieren. Dafür gibts ja zuverlässige librarys die gut funktionieren.

ich weiss wie die logik dahinter ist und das css dafür. Ich spare mir nur zeit um das rad nicht neu erfinden zu müssen.

Ich sag aber nicht das python eine schlechte sprache ist aber es gibt viele python „kiddies“ die import game schreiben und wahrscheinlich jedem erzählen sie haben ein minecraft programmiert.

syntax gefällt mir auch nicht so mit dem einrücken, mir gefällt das mit den geschweiften klammern und semikolon. So komm ich nicht durcheinander.

Ich will eigentlich garnichts performantes programmieren, meinte nur ich seh nichts was bei c# hervorsticht.

Es ist langsamer als c++ und eigentlich wie Java von microsoft nur mit weniger verbreitung/nachfrage.

Aber hab jetzt ganz simple als beispiel DeskPins,

(auch in c++). Sowas würde ich für mich selber programmieren wenn es das nicht gäbe.

man kann unten rechts ein icon anklicken, ist im pin mode und jedes programm das angeklickt wird hat den höchsten z index und ist always on top.

aber man weiss ja nie ob man nicht später was machen will mit mehr performance wie spiele deswegen glaub ich werd ich mich denke ich mit c++ statt c# java rust beschäftigen.

0
regex9  08.10.2023, 02:15
@Testtest1320
Dafür gibts ja zuverlässige librarys die gut funktionieren. (...) Ich spare mir nur zeit um das rad nicht neu erfinden zu müssen.

Genauso wie du, denkt auch der Inder, der für seine Face-Detection eben nur wenige Zeilen braucht, weil er so wie du auf eine bereits existierende Bibliothek setzt. 😉

Bei Programmiersprachen mit vergleichsweise großen Communities (C#, Java, JS, Python, ...) gibt es stets einen großen Pool solcher Tools, die dir ziemlich viel Entwicklungsaufwand abnehmen. Einen Webscraper beispielsweise kann ich mit C# in wenigen Zeilen bauen, wenn ich nur die HAP-Bibliothek einbinde, die mir HTTP Request und Parsing komplett abnimmt. Die Voraussetzung dafür ist natürlich, dass ich die Bibliothek kenne und weiß, wie ich mit ihr umgehen und sie in mein Projekt integrieren kann.

Ein Tutorial/Webartikel, welches/r dann nur diesen speziellen Anwendungsfall zeigt, ist dementsprechend auch nur kurz. Was man als Leser damit nun anstellt (Erweiterung/Modifikation/...), muss man selbst entscheiden. Ich betrachte solche Artikel (auch Instagram-Posts, YouTube-Shorts, u.ä.) als Showcase/Anregung, selbst mehr mit diesen Tools herumzuexperimentieren.

Von der Tatsache, dass solche einfachen Schnittstellen auch Personen anziehen, die damit angeben wollen, würde ich mich nicht beeinflussen lassen.

Ich sag aber nicht das python eine schlechte sprache ist (...)

Es ging mir auch nur um die Aussage mit pip. 🙂

(...) ich seh nichts was bei c# hervorsticht. (...)
  • Eine große Community und Microsoft-Support
  • Eine stabile, gut durchdachte stark typisierte Sprache mit einigem syntactic sugar
  • Eine Runtime, die eine gute Performance (vergleichbar mit Java) liefert
  • Du kannst leicht Anwendungen für viele verschiedene Plattformen entwickeln
  • Hervorragende Entwicklungstools (Visual Studio, Rider)
  • .NET ist eine große Kollektion an Frameworks für verschiedene Anwendungsbereiche (ASP.NET/Blazor für Webanwendungen, MAUI/Xamarin für mobile Apps, MAUI/WPF für Desktopanwendungen, EF für die Handhabung von Datenbanken, ...)

Das sind ein paar Vorteile, die C# bietet und so manche Sprache nicht erfüllen kann.

(...) Es ist langsamer als c++ und eigentlich wie Java (...)

Ich würde dir empfehlen, dieses Argument etwas mehr in den Hintergrund zu stellen.

1) Die Performance hat in der Regel erst dann Relevanz, wenn es tatsächlich darum geht, Operationen durchzuführen, die ziemlich rechenintensiv sind und in sehr kurzer Zeit ausgeführt werden müssen. Oder wenn nur sehr begrenzt Ressourcen verfügbar sind (was heutzutage kaum noch ein Problem ist). Ein klassisches Beispiel wäre die Echtzeitberechnung von dynamischen Lichteffekten für die Darstellung in einem Spiel.

Es handelt sich also um sehr spezielle Anwendungsfälle, auf die du bei einer Desktopanwendung (Bsp. Textverarbeitungsprogramm) nicht so oft triffst. Bei vielen Anwendungen würde ein Nutzer vermutlich nicht einmal merken, ob das Programm gerade mit C++, C#, Delphi, Java, VB o.ä. entwickelt wurde, da die Zeitdifferenz für Operation XY nur bei wenigen Mikrosekunden liegt.

2) In der professionellen Softwareentwicklung liegt die Tendenz eher darin, möglichst einfache Tools zu nutzen. Das bekannteste Beispiel dafür ist Google (Python where we can, C++ where we must; sowie Entwicklung von Golang und Carbon).

Einfachere Lösungen sind einfacher wartbar und weniger fehleranfällig. Andere Entwickler können sich einfacher und schneller einarbeiten.

Auch beim Schreiben von Code gilt: Lesbarkeit vor Performance. Letzteres kann man auch noch später optimieren, wenn es denn tatsächlich zu Problemen kommt (mit einem Profiler würde man in so einem Fall schauen, wo die Peaks liegen). Und im Regelfall liegen die Probleme in der Art, wie der Algorithmus/die Systemstruktur gestaltet wurde.

3) Nur weil du ein Programm mit C++ entwickelst, hast du keine Garantie dafür, dass es später schneller/besser läuft, als ein Pendant in einer anderen Programmiersprache. Das kann zum einen mit der Umgebung zusammenhängen, in dem die Anwendung läuft oder erneut mit den eigenen Fertigkeiten. In C++ kann man schnell unbeabsichtigte Fehler implementieren, die nur sehr schwer zu finden sind.

4) Die Runtimes von C# und Java sind schon ziemlich performant und daher auch öfter für die Entwicklung komplexer Anwendungen im Einsatz. Es gibt da meines Erachtens keinen großen Grund zur Klage.

5) Du schreibst selbst:

Ich will eigentlich garnichts performantes programmieren

Also ist ein Geschwindigkeitsvergleich für dich doch irrelevant. 😄

(...) nur mit weniger verbreitung/nachfrage.

Aktuell dürfte Java auf dem Markt mit ein paar Prozentpunkten noch führen, allerdings kann ich mir gut vorstellen, dass C# in den nächsten Jahren überholen wird. Die Neuentwicklung von .NET war ein wichtiger Schritt, außerdem wird Java nach und nach aus dem mobilen Sektor verdrängt.

Aber hab jetzt ganz simple als beispiel DeskPins, (...)

Dafür eignen sich C++ oder C#. Mit beiden Sprachen kannst du auf die Windows API zugreifen und darüber die Handles manipulieren.

1
Testtest1320 
Fragesteller
 08.10.2023, 02:51
@regex9

ok danke dir, ich schau mir c# doch nochmal genauer an. Ihr wisst es besser und meint das meine Bedenken unbegründet sind falls ich doch was performantes machen will in einem jahr und lobt die Sprache.

Klang nicht so als ob ihr Java/kotlin toll findet.

Ich hab aber immernoch im hintergedanken das sogut wie alle Unternehmen die anwendungsentwickler in meinem suchen banken sind die c++ lehren oder was mit Web zu tun haben wie vue js laravel, Ecommerce.

Alle meine bekannten die in der Uni was Informatik machen lernen auch c++.
Dann würd ich nicht drumherum kommen.

darf ich fragen was du lernen musstest

0
regex9  08.10.2023, 05:00
@Testtest1320
Klang nicht so als ob ihr Java/kotlin toll findet.

Habe ich mich zu einer von beiden negativ geäußert?

Falls du dich auf diese Aussage beziehst:

(...) außerdem wird Java nach und nach aus dem mobilen Sektor verdrängt.

Es gab in den letzten Jahren Rechtsstreitigkeiten zwischen Oracle (Lizenzinhaber für Java) und Google (mitbeteiligt an der Entwicklung des Android OS). Seitdem gibt es ein Interesse für Google, hinsichtlich Android mehr von Java loszukommen und stattdessen Kotlin zu pushen.

Hinzu kommt, dass immer mehr technologische Alternativen (Flutter, Ionic, MAUI, Qt, React) zur Android-Entwicklung auf den Markt gekommen sind, die zudem den Vorteil mitbringen, auch für iOS genutzt werden zu können.

Auf die Entwicklung für andere Zielplattformen, in denen Java vertreten ist (z.B. Web) hat das allerdings keinen Einfluss.

(...) sogut wie alle Unternehmen die anwendungsentwickler in meinem suchen banken sind die c++ lehren oder was mit Web zu tun haben wie vue js laravel, Ecommerce. (...)

Das Spektrum in der Anwendungs- oder konkret Webentwicklung ist groß. Der Finanz- und Bankensektor ist da doch nur ein Teil. Wenn du aber konkret Anwendungen für Banken entwickeln möchtest: Von den bisher genannten Programmiersprachen sind Java, Python und C++ in diesem Bereich stärker vertreten.

Hinsichtlich Webentwicklung lohnen sich C#, Java, Ruby, JavaScript oder PHP. Die ersten drei genannten konkret für Enterprise-Applikationen.

Alle meine bekannten die in der Uni was Informatik machen lernen auch c++.

Es kommt etwas darauf an, wo du studierst. Oft werden im Grundstudium 2-3 verschiedene Sprachen behandelt (mir bekannter Pool: C, C++, Java, Python, Haskell).

darf ich fragen was du lernen musstest

Über mich selbst schreibe ich nicht gern.

1
c# ist soweit ich weiss nur für windows Anwendungen gut, mit den anderen sprachen könnte man auch in zukunft was für linux machen wenn man lust drauf hat.

Da ist dein Wissen veraltet. C# läuft mittlerweile ebenso auf Linux und MacOS sowie iPhone und Android. Für die UI kann man für Linux Avalonia nehmen oder MAUI für alles andere.

Ebenso läuft C# mittlerweile per Einstellung AOT und ist damit extrem performant geworden.

Im Rahmen mit JS würde sich C# mit Blazor tatsächlich sehr gut anbieten, zumal MAUI Blazor Apps ermöglicht.

VG

Woher ich das weiß:Berufserfahrung – 💻 Zertifizierter Sr. Cloud Engineer im IT-Consulting
Testtest1320 
Fragesteller
 07.10.2023, 20:53

aber ist c# im vergleich zu c++ java rust usw. so viel empfehlenswerter ?

weil einer nicht verstanden hat was ich genau machen will nochmal : ich hab kein direktes ziel für ein Projekt, ich will ab und zu mir eigene desktopanwendungen programmieren für Eigengebrauch, möchte dazu lernen wie funktioniert desktop programmierung und wenn ich beruflich damit anfange hab ich in der schule/uni schon vorwissen das andere nicht haben.

Ich hab nur sehr lange web gemacht und kann schon programmieren.

(heisst ja trotzdem nicht das ich c++ profi in 3 tagen werde und nur bisschen syntax lernen muss, ich kann mich 3 wochen beschäftigen bis was sinnvolles dabei rauskommt

gehört schon mehr dazu ).

und ich frag lieber vorher senior entwickler wie dich was sie denken damit ich mich entscheiden kann auf was ich mich konzentrieren soll.

Ich mag das nicht 10 sachen gleichzeitig und halb zu lerne. bevor ich mit react angefangen habe habe ich sehr lange nur vanilla javascript gelernt und alle wichtigen Konzepte verinnerlicht.
Async await, es6 features destructuring , spread operator, map, arrow functions.

Und danach react fundamentals verinnerlicht bevor ich irgendwas anderes gemacht hab.

0
Dultus, UserMod Light   07.10.2023, 21:19
@Testtest1320

Ich spreche auch schon nicht von konkreten Projekten. Ich für meinen Teil entwickle auch regelmäßig mit C# in der Cloudumgebung, was auch noch ein eigener Aspekt ist. C++ Entwickler war ich tatsächlich vorher aber das sind ganz eigene Vorzüge. Mir persönlich macht C# schlichtweg mehr Spaß.

Java hingegen ist Crossplatform, ja, aber ist doch schon etwas verpönt rein programmiertechnisch und weil die Libs teils arg veraltet sind.

C# ist für mich schlichtweg ein angenehm zu lernender Allrounder, der deine Erfahrungen einfach wie geschrieben sehr gut ergänzen kann.

1

Ich empfehle C++. Dazu empfehle ich den Qt-Creator. Das ist eine IDE für C und C++ bestehend aus Editor, Debugger und der plattformunabhängigen Qt-Bibliotkek. Damit kann man ohne den Quellcode ändern zu müssen Anwendungen für Windows, Mac und Linux programmieren. Das kann man sowohl kostenlos als Open Source Lizenz lizenzieren oder eine kostenpflichtige propritäre Lizenz. Der Funktionsumfang ist identisch. Hier die benötigten Downloads:

für Windows:

für Mac:

Linux-Nutzer installieren die GCC Compiler und den Qt-Creator über die Paketverwaltung der Distro. Das ist die Open Source Lizenz. Das Qt Installer Framework gibt es nicht für Linux, dort erzeugt man mit den Bordmitteln je nach Distro DEB oder RPM Programmpakete.

Die Zukunft ist indem man plattformunabhängig programmiert. Das ist etwas was immer wichtiger wird. Wer plattformunabhängig programmiert hat ausserdem viel bessere berufliche Chancen..

Hier einige Beispiele die mit dem Qt-Creator programmiert wurden:

  • VLC-Player
  • Audacity
  • Skype
  • Google Earth
  • die freie DJ-Software Mixxx
  • LMMS
  • Discord
  • Teamspeak

Deswegen war es für die Programmierer leicht das für Windows, Mac und Linux anzubieten.

c# c++ c java oder rust hatte ich im kopf.

Wie wäre es damit, die Sprache in Abhängigkeit von den Anforderungen des Projektes zu wählen, statt sich eine Sprache auszusuchen und damit einen Zug zu besteigen, der dir vorgibt, wohin die Reise zu gehen hat?

Jede Programmiersprache hat seine Eigenheiten und ist für spezifische Problemlösungen vorgesehen. Keine Programmiersprache kann für alle Probleme gleichermaßen gut verwendet werden.

Wenn du universell bleiben willst, lernst du die Grundlagen der Programmierung.
OOP, PAP, Pseudocode, Datenbanktheorie (inkl. boolescher Algebra, DDL und DML).
Wenn du das beherrschst, kannst du damit prinzipiell jede Programmiersprache verwenden - du musst nur die Syntax davon erlernen.

peraspastra  07.10.2023, 20:25

Perlen vor die Säue, aber nette Denkanstöße!

0
Testtest1320 
Fragesteller
 07.10.2023, 20:34

Ich hab kein grosses super Traum Projekt im Kopf wofür ich hinarbeite aber ich hab öfters Ideen für einfache Anwendungen die Node Js nicht hinbekommt und die nur für mich gedacht sind. Daher die richtige Desktop sprache um auch was anderes zu machen als browser, mehr zu lernen.
Wie funktioniert desktop programmierung, was ist dies und das.
Was ein Garbage Collector ist keine ahnung höre ich oft, mit Javascript typescript php musst du das aber nicht wissen.

Grundlagen der Programmierung kann Ich natürlich hab lange zeit Webdevelopment gemacht wie gesagt Java wär einfach weil ich weiss was OOP ist und mir sagt public static void was (einem anfänger nicht und der sollte vielleicht nicht mit den oben genannten sprachen anfangen), sql kannich auch aber nicht so besonders gut.

Es ist trotzdem nicht nur 3 Tage syntax erlernen, vielleicht wenn du billige aufgaben von der schule programmieren willst was dann irgendwelche konsolen summierungs funktionen sind.

Will wahrscheinlich auch was beruflich damit machen das ist jetzt nur hobby, dann wird in der schule oder uni fast immer c++ gelehrt oder selten java.

0