Welche DIESER Programmiersprache ist euer Meinung nach die Beste?

Das Ergebnis basiert auf 30 Abstimmungen

Java 47%
Phyton 13%
C++ 10%
Javascript 10%
HTML 10%
C# 7%
C 3%

15 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
Java

Jede Sprache hat natürlich durchaus ihre speziellen Bereiche, in der sie Dinge besonders effizient "formulieren" kann.

Fakt ist aber auch, dass wir uns aus Programmiersprachen erwachsen sollten, bei deren Einrücktiefe oder einer Pascal-Notation irgendetwas relevantes passiert, wie es zum Beispiel bei Python oder Go der Fall ist. Deshalb fallen diese Sprachen als "Lieblingssprachen" durch.

C und C++ sind aus meiner Sicht noch zu wenig High-Level. Das sieht man beispielsweise an der fehlenden Garbage Collection/am fehlenden Speichermanagement, wo man sich dann mit Biblotheken und Tools behilft.

C# ist aus meiner Sicht tot. Denn C# braucht keiner, weils es mit JAVA eine äquvalente Sprache gibt, die in Toolunterstützung und Verbreitung von C# in allen Dingen überlegen ist.

Wenn ich mir immer mal wieder eine andere Programmiersprache anschaue, dann muss ich meistens nur Abstriche machen, wenn ich von JAVA ausgehe. Sicher: Go's Concurrency Modell ist verdammt gut. JavaScript und seine Functions als first class Elemente sind gut umgesetzt. Das sind Dinge, von denen JAVA lernen muss. Aber wenn es darum geht Production Ready Code im Business Bereich zu schreiben, traue ich keiner anderen Programmiersprache als JAVA es zu, die Needs aller Stakeholder ausreichend zu adressieren.

Ein Kollege meinte, das Ganze Cloud Tooling ist in Go geschrieben. Das mag zwar sein. Aber "Cloud Tooling" ist nun einmal ein Sonderfall. Regulär werden in 90% der Firmen Prozessunterstützungen implementiert.

Alle Sprachen haben ihre Daseinsberechtigung. Aber ich wähle JAVA als "Arbeitspferd".

Ich hasse OOP xD

1
@Brockdish

"Ich hasse OOP xD"

Macht auch heutzutage fast keiner mehr. Liegt einfach daran, dass die 99% der Entwickler keine Ahnung haben, wie sie OOP konsequent umsetzen können. Man muss auch sagen, dass selbst JAVA es einen manchmal schwer macht, obwohl es als OO Sprache ausgelegt ist. Es gibt also 2 Hindernisse: Inkompetenz der Softwareentwickler und die Programmiersprache.

Der Trend geht in Richtung anemisches Business Modell: Service - DTO - Repository - Entity - Konzept. Das mit fast allen Programmiersprachen sehr leicht umzusetzen.

0
@Brockdish

Es gibt noch ein drittes Hinderniss: Dadurch, dass das Problem der einfachen Mehrkernnutzung nur durch funktionale Programmierung adressiert werden kann, gibt es auch im JAVA Bereich weitreichende funktionale Bestrebungen.

0

Java kam bei uns nie in Frage- automotiv verwendet natürlich C++ da nur damit ein Realtime Handling möglich ist. JAVA war mal gute Idee - aber keine gute Lösung.

Wenn man eine externe Garbage Collection braucht, heißt das ja nur dass man nicht vernünftig mit dem Speicher umgeht.

0
@NackterGerd

"da nur damit ein Realtime Handling möglich ist."

Der Grund ist ist ein anderer. Die zugrundeliegende Hardware ist meistens so bemessen, dass sie gerade so die Geschwindigkeit innerhalb der Spezifikation erreicht. Zudem sind manchmal "Extra"-Runden in der Software notwendig, damit Fehlerzustände in der Hardware "korrigiert" werden können. Das kostet immer ein paar Takte. Und was dann gemacht wird, solltest du dann auch wissen: Es wird getrickst und gehackt, um irgendwie die Software im Spannungsfeld "Fehlerkorrektur - Geschwindigkeit - Funktion" zum Fliegen zu kriegen.

Alles, was im Automotive-Bereich hardwärenah mit Steuergeräten zu tun hat, ist zwar Software, wird aber nicht unter den Maßstäben professioneller Softwareentwicklung erstellt. Dass, was den Entwicklern dort den Arsch rettet sind die Doppelprüfungen und die vielen Tests, die sie selber schreiben müssen, aber auch die, die im Feld noch ermittelt werden. (Stichwort ISO 26262).

"Wenn man eine externe Garbage Collection braucht, heißt das ja nur dass man nicht vernünftig mit dem Speicher umgeht."

Äh, neeeeee. Das hat nichts miteinander zu tun. Die Garbage Collection unterstützt nur dort, wo der Entwickler sich früher manuell drum kümmern musste. Das hat nichts damit zu tun, ob man vernünfitg mit dem Speicher umgeht. Dämlich programmieren kann man sowohl mit als auch ohne Garbage Collection.

0
@oopexpert
 Es wird getrickst und gehackt, um irgendwie die Software im Spannungsfeld "Fehlerkorrektur - Geschwindigkeit - Funktion" zum Fliegen zu kriegen.

So ein Unsinn - du hast keine Ahnung

Alles, was im Automotive-Bereich hardwärenah mit Steuergeräten zu tun hat, ist zwar Software, wird aber nicht unter den Maßstäben professioneller Softwareentwicklung erstellt. Dass, was den Entwicklern dort den Arsch rettet sind die Doppelprüfungen und die vielen Tests, die sie selber schreiben müssen, aber auch die, die im Feld noch ermittelt werden. (Stichwort ISO 26262).

Das kannst du so auch nicht sagen.

Das trifft eher für Firmen wie Windows zu🤣😂

Auch im Automotiv gibt es Softwareprozesse.

Das Problem dort sind nur die Spezifikationen und das Zusammenspiel der verschiedenen Komponenten von verschiedenen Herstellern.

Und die zum Teil unmöglichen und weltfremden Vorgaben der Designer der Automobilherstellern.

Die HMI muss dabei oft workarounds einbauen um Unzulänglichkeiten Anderer zu verstecken.

Aber solange die Hersteller intern ihre Prozesse nicht im Griff haben - wird sich hier wenig ändern.

In meinen Bereich jedenfalls hatte die Entwicklung super geklappt so dass meine Entwickler am Ende nur noch selten einen Fehler fixen mussten, und nur Fehler Anderer Lieferanden/Komponenten analysiert hatten.

Keine Ahnung wie du dazu kommst dass Automotiv Software nicht korrekt entwickelt wird und nichts taugt.

Und natürlich ist ein so großes Produkt wie z.b. die HMI die mit dem halben Auto kommunizieren muss und im Bereich Navigation natürlich auch sehr Hardwarenahe Komponenten, ein komplexes System.

Und kein kleines Bastelprodukt

0
@NackterGerd

"Keine Ahnung wie du dazu kommst dass Automotiv Software nicht korrekt entwickelt wird und nichts taugt."

Habe ich nicht gesagt. Man kann auch unprofessionell Software erstellen, wenn man die Test-Constraints hart genug macht. Dann erfüllt die Software möglicherweise alle funktionalen Anforderungen, aber eben nicht unbedingt die nicht-funktionalen Anforderungen, oder zumindest nur sehr wenige.

"Das Problem dort sind nur die Spezifikationen und das Zusammenspiel der verschiedenen Komponenten von verschiedenen Herstellern.
Und die zum Teil unmöglichen und weltfremden Vorgaben der Designer der Automobilherstellern.
Die HMI muss dabei oft workarounds einbauen um Unzulänglichkeiten Anderer zu verstecken."

Von nicht mehr und nicht weniger habe ich gesprochen. Frag doch mal jemanden aus diesen Abteilungen, ob sie schonmal etwas von OCP oder LSP gehört haben. Das ist denen völlig fremd, weil sie auf einer anderen Abtraktionsebene agieren (müssen), weil die Dinge eben so sind, wie du sie beschrieben hast: Kein JAVA, unmögliche Designvorgaben, Unzulänglichkeiten Anderer, Spezifikationsminimum aufgrund des Kostendrucks.

0
@oopexpert

Kein Java hat natürlich ganz Andere Gründe wenn man Hardwarenah und Zeitkritische Implementierung macht.😉

Man kann auch unprofessionell Software erstellen, wenn man die Test-Constraints hart genug macht. Dann erfüllt die Software möglicherweise alle funktionalen Anforderungen, aber eben nicht unbedingt die nicht-funktionalen Anforderungen, oder zumindest nur sehr wenige.

Wenn du nach diesem Prinzip arbeitest, ist das Dein Problem.

Bei Java kann ich mir das auch sehr gut vorstellen, aber ich für meinen Bereich kann nur sagen dass wir damit kein Problem hatten. Keine Ahnung wie du zu dieser Behauptung kommst.

Fals du mit OCP Open Closed Principle meinst, natürlich ist das ein Begriff, wie kommst du darauf dass wir das nicht kennen ?

Scrum

Agile Softwareentwicklung

objektorientierter Programmierung

...

Sind doch alles bekannte Dinge und kein Privileg von Java.

Im übrigen hatte ein großer Autobauer bereits Java im Einsatz und ist aus mehreren Gründen wieder davon weg😉

Java ist nun mal kein Allheilmittel und C++ und C haben genauso ihre Berechtigung und Vorteile

0
@oopexpert

Ist schon bekannt seit Albert Einstein: “If you can’t explain it to a six year old, you don’t understand it well enough.”

Mit anderen Worten: “keep it simple, stupid”.

0

Die Beste gibt es nicht. Programmiersprachen sind Werkzeuge.

Wenn du jemanden fragst, der regelmäßig Wände einreißt, dann sagt er ggf. der Vorschlaghammer. Trotzdem möchtest du nicht, dass dein Zahnarzt bei einer Wurzelbehandlung danach das beste Werkzeug benutzt.

Java ist plattformübergreifend aber z.B. langsamer als C oder C++, zumindest standardmäßig und brauch normalerweise entsprechende vorinstallierte Software auf den Clients (JRE). Davon ab nimmt es den Entwickler einiges an Verantwortung ab, nimmt ihn damit aber natürlich auch Möglichkeiten, die er in C und C++ noch hatte.

Python habe ich noch nicht so viel gemacht. Scheint mir aber halbwegs einsteigerfreundlich, wobei ich kein Fan davon bin eine Syntax zu nutzen, die sich nicht an C anlehnt, wie die meisten anderen Sprachen.

C und C++ sind eben noch halbwegs maschinennah und performant. Der Entwickler hat mehr Verantwortung (Speicherverwaltung, Pointer etc. pp.). Das kann zu mehr Fehlern führen, bietet aber eben auch Möglichkeiten. Oft brauch es aber noch schnellere Sachen, da geht es dann eher Richtung Assembler.

JavaScript ist imo ein schweres Thema. Das kann mittlerweile sehr viel mehr als das wofür es gedacht war. Wir haben etliche verschiedene Syntax in der Sprache, wo teilweise der Scope anders reagiert (Arrow Functions), können Objekte auf zig verschiedene Weisen erzeugen, erweitern und co. Dazu explodiert das Eco-System förmlich. Ständig neue Build-Tools und Frameworks. Und da man damit meist clientseitige Sachen macht ist vom Browser abhängig. Sprich reagiert je nach Browser und Version unterschiedlich.

HTML ist keine Programmiersprache, sondern eine Auszeichnungssprache. Brauchen wir eben um Webseiten darzustellen. Ohne HTML keine Website, mal ab von unstrukturierten Text.

C# hat sich ganz schön gemacht, während es anfangs eher ein Java Clone war. Für Windows-Anwendungen oft mein Favorit.

Ansonsten nutze ich je nach Kontext auch etliche andere wie PHP für das Backend bei Webprojekten oder PL/SQL für Sachen auf der Oracle Datenbank. Wie gesagt es sind nur Werkzeuge, man nutzt das, wo das Know-How da ist und was angebracht ist.

Natürlich sind auch Sachen wie Go und Rust sehr interessant und beliebt, jedoch noch nicht so stark verbreitet, nehmen aber stark zu.

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

Ich weiß- HTML ist gar keine Programiersprache ! deshalb mal Provokat diese ausgewählt da PHP hier fehlt😜

Allerdings ist der Vergleich hier eh Äfel mit Birnen vergleichen.

Es kommt immer darauf an was man damit machen möchte.

Perl kann z.b. ideal sein wenn es um Bearbeitung und Veränderung von Texten geht.

HTML und CSS (gehören quasizusammen) sind natürlich notwendig um Internetseiten zu erstellen.

Bei normalen Seiten braucht man dort gar keine Programiersprache. Nur mit HTML5 und CSS3 sind auch schon kleine Animationen möglich ohne eine Zeile Progranmierung, da dies dann im.Browser läuft.

Dynamische Seiten werden meist in PHP programmiert und erzeugen dann z.B. Mit SQL Datenbanken, auf dem Server wieder ganz normales HTML oder verschicken Emails, ehandrlt Log-In, erzeugt PDFs, bearbeitet Bilder, ...

JS dagegen kann zusätzlich im HTML eingefügt werden, die erzeugt allerdings zusätzliche Performance und Dateigröße.

Dafür kann JS auf dynamische Reaktionen des Benutzers besser reagieren, mit reinem PHP, müsste immer wieder ein Aufruf an den Server gehen. (Wie zum Beispiel beim Formular das erst ausgefüllt wird im HTML und beim Send zum Server zum Auswerten geschickt wird.)

...

...

Du siehst also - das sind ganz verschiedene Aufgaben und die löst man mit natürlich mit verschiedenen Programmiersprachen.

Javascript

Ich persönlich mag JS, weil ich gerne Webapps programmiere und man in Kombination mit HTML/CSS und JS recht gut User Interfaces bauen kann. Außerdem kann man JS sowohl für Webapps, Webseiten, Desktop Apps (Electron) als auch Server (Node.js) nutzen.

Aber JS ist, auch meiner Meinung nach, nicht die objektiv beste Programmiersprache. Programmiersprachen sind Werkzeuge, und es ist wichtig, das richtige Werkzeug zu benutzen. Auch wenn ich ein totaler Fan von Schraubenziehern wäre, wäre es ziemlich dämlich, zu versuchen, alle Aufgaben mit einem Schraubenzieher zu lösen. Nägel? Sechskantschrauben? Holz sägen? Direkt mal mit dem Schraubenzieher versuchen, weil der ja meiner Meinung nach das beste Werkzeug ist.

"Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel"
Abraham Maslow

Gerade im Bereich Software werden öfters mal die falschen Werkzeuge benutzt, nur weil jemand die Werkzeuge total toll findet. Genau deshalb finde ich es grundsätzlich falsch, eine Programmiersprache die "beste" zu nennen.

Woher ich das weiß:Hobby – Up-to-date dank PCGH-Abo und vielen anderen Quellen
Java

Es gibt keine beste Programmiersprache, sondern nur solche, die für diesen oder jenen Zweck am hilfreichsten sind.

  • Für die Entwickling unternehmenskritischer Großapplikationen wird ganz klar Java noch lange Zeit die beste Wahl sein (obgleich C# — welches in Nachahmung von Java entstand — aufholt und den Vorteil hat, mit C/C++ gut verträglich zu sein).
  • Um hardware-nahe Software zu entwickeln oder solche, die Compiler, Interpreter und Laufzeitsysteme darstellt, ist Java nicht zu gebrauchen. Dazu nimmt man C/C++.
  • Um HTML-Seiten interaktiv zu gestalten ist JavaScript die einzig mögliche Wahl.

Python ist eher Unglück als Hilfe, auf jeden Fall aber Sackgasse.

Was möchtest Du wissen?