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]
Miscellaneous

Neueste Beiträge

KI ersetzt keine Softskills – sie deckt nur gnadenlos auf, wer keine hat - Interview
Auf der Open Stage der DWX 2026 vertrat Recruiting-Expertin Laura Rheinwald von ITech Progress in ihrem Vortrag die Meinung, dass die KI die Kommunikation zwischen Menschen verändert. Developer World wollte von ihr wissen, in welcher Weise.
23. Sep 2026
Tests gezielt verteilen - Schnellere .NET-CI-Pipelines mit Test Sharding, Teil 1
Lange Testsuiten verzögern das Feedback im Pull Request. Meziantou.ShardedTest verteilt die Testfälle auf mehrere CI-Jobs und verspricht dadurch mehr Geschwindigkeit. Dieser Einstieg zeigt, wie die Aufteilung funktioniert und welche Voraussetzungen nötig sind.
6 Minuten
Kalenderdaten mit Microsoft Graph - Connected Apps mit .NET, Teil 1
Eine .NET-App meldet Benutzer an, lädt eine Kalenderwoche und bereitet Outlook-Termine für die Anzeige auf.
6 Minuten

Das könnte Dich auch interessieren

Elektronische Schaltkreise im Browser simulieren - Simulation
Statt mit Steckfeld oder Lötkolben kann man auf dieser Website Schaltungen per Drag and Drop zusammenstellen und deren Verhalten testen.
2 Minuten
26. Jul 2018
UIs für Linux - Bedienoberflächen entwickeln mithilfe von C#, .NET und Avalonia
Es gibt viele UI-Frameworks für .NET, doch nur sehr wenige davon unterstützen Linux. Avalonia schafft als etabliertes Open-Source-Projekt Abhilfe.
16 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