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

DWX hakt nach: Wie stellt man Daten besonders lesbar dar?
Dass das Design von Websites maßgeblich für die Lesbarkeit der Inhalte verantwortlich ist, ist klar. Das gleiche gilt aber auch für die Aufbereitung von Daten für Berichte. Worauf besonders zu achten ist, erklären Dr. Ina Humpert und Dr. Julia Norget.
3 Minuten
27. Jun 2025
DWX hakt nach: Wie gestaltet man intuitive User Experiences?
DWX hakt nach: Wie gestaltet man intuitive User Experiences? Intuitive Bedienbarkeit klingt gut – doch wie gelingt sie in der Praxis? UX-Expertin Vicky Pirker verrät auf der Developer Week, worauf es wirklich ankommt. Hier gibt sie vorab einen Einblick in ihre Session.
4 Minuten
27. Jun 2025
„Sieh die KI als Juniorentwickler“
CTO Christian Weyer fühlt sich jung wie schon lange nicht mehr. Woran das liegt und warum er keine Angst um seinen Job hat, erzählt er im dotnetpro-Interview.
15 Minuten
27. Jun 2025
Miscellaneous

Das könnte Dich auch interessieren

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
Mythos Motivation - Teamentwicklung
Entwickler bringen Arbeitsfreude und Engagement meist schon von Haus aus mit. Diesen inneren Antrieb zu erhalten sollte für Führungskräfte im Fokus stehen.
13 Minuten
19. Jan 2017
Evolutionäres Prototyping von Business-Apps - Low Code/No Code und KI mit Power Apps
Microsoft baut Power Apps zunehmend mit Features aus, um die Low-Code-/No-Code-Welt mit der KI und der professionellen Programmierung zu verbinden.
19 Minuten
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige