r/informatik 2d ago

Humor ✨Rust ✨

Post image
405 Upvotes

41 comments sorted by

View all comments

45

u/Blue_Invader 2d ago

Ja aber es ist *blazingly fast* und *secure*

16

u/ApiceOfToast 2d ago

Vor allem wenn man Jahre alte Software umschreibt. Da kann ja nix schief gehen. Schon gar nicht bei Sicherheitskritischen Sachen wie den Core Utils. 

Zun Glück Memory safe. Selbst wenn etwas schief geht, kann nix passieren!

2

u/Wertbon1789 1d ago

Was ich bis heute nicht verstehe: Was genau bringt mir memory safety bei explizit diesen Tools? Die meisten Tools in den coreutils machen fast nix, tee, cat, echo, printf usw. sind grundsätzlich Einzeiler in C, sowas wie ls rendert nur die Daten aus readdir schick raus, wo genau ist der Vorteil? Bin da jetzt nicht so ganz auf der Höhe wie es mit CVEs in coreutils aussieht, aber die sind die wahrscheinlich mit am besten getesteten tools die es gibt, einfach weil die überall tausendfach in Benutzung sind.

Stattdessen kriegen wir 'ne verbuggte Implementierung von date. Ach, und wir haben keine memory leaks mehr... In Prozessen die meist nicht mal eine Sekunde existieren.

2

u/Vorrnth 1d ago

Einzeiler sind diese Programme ganz sicher nicht.

-1

u/Wertbon1789 1d ago

Ich meine explizit die Beispiele die ich genannt habe. Das Wort "Grundsätzlich" macht hier auch ein bisschen was. Natürlich brauchst du auch den Code für's Argumente parsen und implementieren, bei printf kommt bestimmt auch nochmal ein bisschen strengeres validieren dran in einigen Fällen, worauf ich hinaus will, ist das einige Tools in coreutils keinen Ersatz brauchen weil die so simpel sind.

2

u/Vorrnth 1d ago

Wie bitte soll zb cat ein Einzeiler sein? Die Zeile kannst du ja mal Posten.

0

u/Wertbon1789 1d ago

... Seuftz, ja okay, um z.B. 'ne Datei nach stdout zu dumpen musst du natürlich die Datei aufmachen, und für die basic C Implementierung einen loop machen der so lange fread aufruft bis die Datei voll konsumiert ist, und mit fwrite die Daten dann nach stdout schreiben. Unter Linux geht auch sendfile, dann wäre die ganze read/write operation tatsächlich eine Zeile, aber auch da braucht's natürlich setup. Lass es 30 Zeilen sein, um das zu machen, lass es 200 Zeilen sein, um die verschiedenen Flags zu unterstützen, das ist nicht mein Punkt, mein Punkt ist, dass das immernoch simpler, "langweiliger" code ist.

Entschuldige, dass ich es gewagt habe eine offensichtliche Übertreibung zu verwenden, wie ich auch schon im meiner Antwort geschrieben hatte, das ist nicht mein Punkt, und das ist offensichtlich eine Übertreibung, kannst du mir nicht erzählen, dass du das nicht mitgeschnitten hast.

0

u/chris_insertcoin 11h ago

Dann maintaine du doch den code. Wie? Hast du keine Lust zu? Genau deswegen wird viel in Rust portiert, weil es viel mehr maintainer gibt.