Was ist die beste Programmiersprache für alle Zwecke?

Das Ergebnis basiert auf 5 Abstimmungen

C/C#/C++ 80%
Java 20%
Pascal 0%
Rust 0%
Python 0%
Kotlin 0%
Ruby 0%

4 Antworten

C/C#/C++

C/C++

Dazu würde ich dann den Qt-Creator empfehlen. Das ist eine komplette C/C++ Entwicklungsumgebung und der plattformunabhängigen Qt-Bibliothek. Damit kann man ohne den Quellcode ändern zu müssen Anwendungen für Windows, Mac und Linux entwickeln. Man macht fast alles mit der Qt-Bibliothek. Diese enthält Funktionen wie Zugriff auf die Schnittstellen, Netzwerk, Grafik und Multimediafunktionen.

Das kann man sowohl unter einer kostenlosen Open Source Lizenz (GNU GPL, GNU LPGL) lizenzieren oder unter einer kostenpflichtigen propritären Lizenz. Der Funktionsumfang ist bei allen Lizenzen identisch.

Hier die benötigten Downloads

für Windows:

für Mac:

Linux-Nutzer installieren sich zuerst build-essential über die Paketverwaltung. Da sind auch die GCC Compiler dabei. Der Qt-Creator lässt sich auch über die Paketverwaltung installieren. Das Qt Installer Framework gibt es nicht für Linux, dort erzeugt man mit den Bordmitteln je nach Distro DEB oder RPM Installationspakete.

Hier einige Beispiele was mit dem Qt-Creator in C++ programmiert wurde:

  • Audacity
  • VLC-Player
  • Skype
  • Microsoft Teams
  • Spotify
  • Google Earth Pro
  • Steam-Client
  • Discord
  • OBS-Studio

Deshalb war es für die Programmierer leicht das für Windows, Mac und Linux anzubieten, weil man beim Portieren den Quellcode nicht ändern musste.

FaTech  09.07.2023, 02:20

Also das stimmt nicht wirklich ... Alleine bei Teams. Das wurde vorher mit Electron gemacht und jetzt ist es auf basis von Edge WebView. Discord ist auch Electron mit React JS. Steam, naja. Ich denke mal auch nicht, weiß ich aber nicht sicher. Ich denke, die anderen sind auch falsch.

0
mnlwrnr  10.07.2023, 00:09
@FaTech

Aber die meisten Dinge werden mit C/C++ programmiert. Besonders wenn man direkt auf die Hardware zugreifen muss.

0
FaTech  10.07.2023, 03:26
@mnlwrnr

Besonders auf Hardware, ja. Aber gerade beim Thema Software, da geht der Trend in richtung WebOberfläche mittels WebView, Electron oder sonstigen ...

0
C/C#/C++

Davon C(++) aber auch da werden dann eben wieder Sprachen oben drauf entwickelt. Wir nutzen letztlich ja eh Maschinensprache und die Befehlssätze, welche die CPUs anbieten. Alles andere sind Abstraktionsschichten oben drauf.

Am Ende sind Programmiersprachen eben Werkzeuge. Sich da zu einigen auf eine Sprache ist schwer.

Ist eben wie bei anderen Werkzeugen. Einigen wir uns auf den Hammer. Ja ist toll um Nägel in die Wand zu kloppen, eine Schraube kriegen wir ggf. auch noch mit rein oder die Fliesen von der Wand.

Spätestens wenn der Zahnarzt bei der Wurzelbehandlung den Hammer auspackt, wirst du das aber nicht mehr für eine gute Idee halten.

C(++) legt z.B. viel Verantwortung in die Hände des Programmierers. Das bedeutet viele Freiheiten und Möglichkeiten. Das bedeutet aber eben auch derjenige muss schauen in welchen Speicherbereich er schreibt, dass er Speicher wieder freigibt etc. Oder kurz Fehler und Bugs werden sehr viel wahrscheinlicher.

Auch ist die Lernkurve sehr viel steiler, sprich wir werden dann wirklich einen großen Fachkräftemangel haben. Gerade z.B. wie Websprachen verwenden zu können oder andere Sprachen mit interpreter, wo in der Regel nicht so ein aufwendiger Build Prozess hinter ist, häufig als Lernseiten in Webeditoren usw. ermöglicht ja sehr vielen den Einstieg.

Auf der anderen Seite, wenn wir noch weiter Richtung Möglichkeiten und vor allem auch Geschwindigkeit gehen, dann sind wir schon eher bei Assembler. Wenn das die einzige Sprache wäre, dann wären die meisten der komplexen Anwendungen die wir heute haben aber gar nicht denkbar oder würden über mehrere Jahrhunderte entwickelt werden.

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

Definitiv Java, da deckt man so ziemlich alles mit ab.

Assembly. Denn damit liessen sich dann Compiler und Interpreter schreiben, die dann den darin geschriebenen code nach assembly übersetzen, welche dann wiederum von einem Assembler in ausführbaren Maschinencode übersetzt werden kann.