Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 4 Min.

Die sieben ärgerlichsten Probleme der Programmierung

InfoWorld-Redakteur Peter Wayner hat die sieben lästigsten Ärgernisse der Programmierung benannt und beschrieben.
Ganz oben in der Liste von Peter Wayner steht das Multithreading. Eigentlich etwas, das jeder unentwegt braucht und benutzt, gerade in der Zeit der Mehrkernprozessoren. Die Sache klappt auch ganz gut, solange die einzelnen Threads nichts miteinander zu tun haben. Wenn allerdings die Prozesse Variablen oder Dateien gemeinsam brauchen, dann beginnt der Horror, dem man durch Tools Herr zu werden versucht. Programmierer und Programm wandeln auf schmalen Grat zwischen Lösung und Chaos.Punkt 2: Closures. Funktionen, die man wie Daten weiterreichen kann sind eine gute Idee. Klappt super bei einfachen Aufgaben. Doch dann, insbesondere bei JavaScript, griffen die Funktionen nach sogenannten freien Variablen und spätestens auf der Suche nach Fehlern war der Entwickler verloren. Closures sollten die Lösung sein. Doch sie sind, so Peter Wayner, die Quelle der größten Kopfschmerzen von JavaScript-Entwicklern. Newbies und sogar viele Veteranen sind nicht in der Lage herauszufinden, was eingeschlossen ist (closed) und wo die Grenzen der Closures liegen.Punkt 3: Zu viele Daten. RAM ist nicht mehr knapp. So mancher Entwickler hat 32 GByte in seiner Maschine. Aktuelle Aufgaben, beispielsweise statistische Analysen großer Datenmengen sind aber wahre RAM-Fresser. Passt der Entwickler nicht auf wie ein Schießhund, fängt der Rechner an Daten in sein virtuelles Memory, also auf die ultralahme Festplatte auszulagern. Zudem beschwört der virtuelle Speicher weitere Probleme mit der Software herauf, das Threading gerät ins stolpern. Das Ganze läuft so langsam, dass mit dem Tempoverlust auch das Vertrauen in die Ergebnisse verloren geht. Vielleicht hat der Entwickler sogar aufgepasst, aber sein Endanwender der Software hat nur einen Rechner mit lediglich 6 GByte RAM. Dann bleibt nur noch der stereotype Satz: Bei mir lief das ohne Probleme.Punkt 4: NP-Complete. Wer Informatik studiert hat, hat von diesem Acronym schon einmal gehört. Es wird selten komplett ausgesprochen: Nondeterministic Polynomial Complete. Schon der Name lässt viele erschauern. Es geht um Probleme, wie den Travelling Salesman. Eine Routenberechnung, die mit jedem Zwischenstopp problematischer wird. Nachdem sich die Studenten ein Semester lang damit beschäftigt haben, sind sie zu einer nebligen Vorstellung davon gelangt, dass niemand diese Probleme wirklich lösen kann. Das Gemeine: Manche NP-Probleme lassen sich einfach lösen – per Annäherung ohne Versprechen, dass es nicht noch besser ginge.Punkt 5: Sicherheit. Beim Schreiben von jeder Zeile Code sollte man heute die Sicherheit im Hinterkopf haben. Aber nur die bekannten Schwachstellen kann man im Auge behalten. Es gibt Schwachstellen, die erst nächste Woche bekannt werden und womöglich auch noch welche, die niemals ans Licht der Öffentlichkeit kommen. Zudem arbeitet jede Software mit vielen anderen Programmen zusammen. Kein Entwickler kann es den Security-Spezialisten überlassen, hinter ihm aufzuräumen.Punkt 6: Verschlüsselung. Das Wort Encryption klingt stark und unüberwindbar. Hinter den Kulissen lauert aber eine neblige Wolke der Ungewissheit. Selbst die Mathe-Profis gestehen einen Rest unsicherer Annahmen ein. Und Hand aufs Herz: Wenn Sie einen Weg gefunden hätten, von jeder Bank Geld abzuheben, würden Sie sofort die Welt informieren, dass die Lücke baldmöglichst geschlossen wird?Punkt 7: Identitätsmanagement. Dazu gibt es einen bekannten Cartoon. Er zeigt zwei Hunde vor einem Computer. Der eine guckt fragend, der andere beruhigt ihn, indem er sagt: "Im Internet weiß niemand, dass wir Hunde sind."Den kompletten englischsprachigen Beitrag von dem hier nur ein kleiner Teil sehr frei übersetzt wurde finden Sie unter http://www.infoworld.com/article/3138572/application-development/the-7-most-vexing-problems-in-programming.html. [bl]

Neueste Beiträge

SSH für.NET-Applikationen mit SSH.NET - Best of NuGet, Teil 1
SSH – dahinter verbirgt sich die Abkürzung Secure Shell – ist insbesondere im Bereich der unixoiden Systeme weit verbreitet. Mit SSH.NET steht ein NuGet-Paket zur Verfügung, das die Interaktion mit der sicheren Remote Shell aus .NET-Applikationen heraus zu ermöglichen sucht.
6 Minuten
25. Sep 2025
DDC hakt nach: Wie baust Du eine Softwarearchitektur ohne Schuldenfalle auf?
Moderne Softwarearchitektur muss zukunftsfähig sein – aber auch schon heute funktionieren. David Tielke über den architektonischen Spagat zwischen Cloud, KI, Schuldenmanagement und gesundem Menschenverstand.
7 Minuten
22. Sep 2025
Ein Jahr CODELUTION Zertifizierungssystem – ein neuer Standard in der IT-Weiterbildung - [sponsered]
Das rollenbasierte Zertifizierungssystem für Entwickler-Schulungen der Karlsruher CODELUTION GmbH hebt sich bewusst von technologiegebundenen Zertifikaten ab.
3 Minuten
25. Sep 2025
Miscellaneous

Das könnte Dich auch interessieren

PolyCoder: Quelloffener KI-Code-Generator - Carnegie Mellon University
PolyCoder ist ein quelloffener KI-Code-Generator, der mit 249 GByte Daten in zwölf Programmiersprachen trainiert wurde und laut Forschern C-Code mit großer Genauigkeit verfasst.
2 Minuten
15. Mär 2022
Sicher ist sicher - Azure DevOps Pipelines Security
Als integraler Bestandteil der Entwicklungsumgebung ist Azure DevOps Pipelines oft Ziel von Angriffen. Da ist es gut zu wissen, wo die Schwachstellen des Systems liegen.
14 Minuten
16. Jun 2025
C#-.NET-Apps mit WinUI 3 - Komponentenbasierte Apps mit Fluent/FAST, Teil 3
Microsoft macht mit WinUI 3 ein natives User-Experience-Framework für Windows verfügbar, dessen Komponenten auf dem Microsoft-eigenen Design-System Fluent 2 basieren.
23 Minuten
13. Mai 2024
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige