Sonntag, 2. April 2017, 12:38
delete vs. remove
Mal wieder eine kleine Nomenklator-Diskussionrunde: Was versteht Ihr unter delete, was unter remove?
Ich bin auf die Meinungen und Erklärungen gespannt, insbesondere darauf, die man sich unter Linux dann "rm" erklärt
Ich bin auf die Meinungen und Erklärungen gespannt, insbesondere darauf, die man sich unter Linux dann "rm" erklärt
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt
allo
Das ergibt insofern Sinn, als dass die Daten auf der Festplatte nicht gelöscht werden und vor allem eine Datei ja viele Hardlinks haben kann, bei denen ein unlink nur genau einen entfernt.
Gummipunkt
uwe
Alex
Bei Webanwendungen hatte ich aber schon beides, mal hat remove nur eine Referenz entfernt und delete den Datensatz gelöscht, mal genau andersrum...
Sebastian
Umgekehrt versuche ich in "create" vs. "add" bzw. "delete" vs. "remove" möglichst wenig hineinzuinterpretieren, wenn ich es irgendwo sehe. Nach meinem Verständnis implizieren "add" und "remove" das ein Objekt einer Sammlung hinzugefügt bzw. aus ihr entfernt wird, ohne notwendigerweise das eigentliche Objekt selbst zu erstellen bzw. zu zerstören. "create" und "delete" sind hingegen eher Begriffe die ich auf ein Objekt selbst beziehen würde. Allerdings sehe ich bei dieser Interpretation zwei Probleme:
Erstens kann ein "add" ein "create" als Nebenwirkung und ein "remove" ein "delete" als Nebenwirkung haben, wenn z.B. ein Objekt erst durch das hinzufügen zu einer Sammlung erzeugt wird. Wenn ich z.B. einen Datensatz in einer Datenbank hinzufüge (was in SQL mit "insert" bezeichnet wird, womit wir noch einen dritten Begriff hätten), kann man durchaus die Ansicht vertreten, dass das durch den Datensatz repräsentierte Objekt erst durch dieses Hinzufügen überhaupt erstellt wird. Umgekehrt entspricht das Entfernen dieses Datensatzes aus der Datenbank normalerweise dem Zerstören des entsprechenden Objekts.
Das andere Probleme ist die Frage der Objektidentität: Aus praktischen Gründen lässt sich die Objektidentität auf nicht-technischer Ebene eigentlich nur über die Äquivalenz der zugehörigen Daten definieren, d.h. ich betrachte zwei Objekte als identisch, wenn sie sich anhand ihrer Daten nicht unterscheiden lassen. Dann wird aber auch die Unterscheidung zwischen "remove" und "delete" weitgehend hinfällig, weil ein "remove" aus einer bestimmten Datensammlung einem "delete" einer bestimmten Objektinstanz entsprechen kann, während andere identische Objektinstanzen (und damit das Objekt als solches) weiterhin existieren.
Kurz gesagt: Solange es innerhalb einer Anwendung bzw. innerhalb eines Dokuments konsistent gehandhabt wird, ist mir relativ egal ob "add" / "remove" oder "create" / "delete" verwendet werden. Die Kombinationen "add" / "delete" oder "create" / "remove" mag ich nicht so sehr, weil sie eine gewisse sprachliche Inkonsistenz aufweisen. Hineininterpretieren würde ich sicherheitshalber in keinen der Begriffe etwas - die genauen Auswirkungen einer solchen Operation sollten immer aus der weiteren Dokumentation hervorgehen.
hoschi
Rein agnostisch betrachtet entfernt ein *remove*, eine delete dagegen loescht vernichtet also die Daten, fuer mich. Dazu passt dann das Verhalten von rm unter Linux und auch die Schilderung von Alex.
Dennis
Wenn man etwas löscht, dann ist es gar nicht mehr vorhanden. Zum Beispiel wenn ich ein Wort aus einer Textdatei lösche (und diese dann erneut speichere).
Andreas
Zeddi
Im Linuxumfeld ist ein "rm" ein direktes Löschen/delinken, auf meinem Atari war "Delete" genau das gleiche ohne Papierkorb-Umweg.
Stefan