Abo
  • Services:
Anzeige
Das Credo "Rust statt C" könnte in der Gnome-Community weitere Verbreitung finden.
Das Credo "Rust statt C" könnte in der Gnome-Community weitere Verbreitung finden. (Bild: Les Chatfield, Flickr.com/CC-BY 2.0)

Rust: "C ist eine feindselige Sprache"

Das Credo "Rust statt C" könnte in der Gnome-Community weitere Verbreitung finden.
Das Credo "Rust statt C" könnte in der Gnome-Community weitere Verbreitung finden. (Bild: Les Chatfield, Flickr.com/CC-BY 2.0)

Der Mitbegründer des Gnome-Projekts Federico Mena Quintero ist nicht mehr besonders überzeugt von der Sprache C und empfiehlt aus eigener Erfahrung stattdessen Rust - vor allem für Parser.
Ein Bericht von Sebastian Grüner

In modernen Desktop-Betriebssystemen sind Parser allgegenwärtig. Sie verarbeiten ungeprüfte und eventuell nicht vertrauenswürdige Daten meist aus dem Internet und sind damit ein nachvollziehbares Ziel für Angreifer. Das Schreiben von Parsern in der Programmiersprache C sei allerdings berüchtigt dafür, Fehler zu machen, sagt der Mitbegründer des Gnome-Projekts Federico Mena Quintero auf der Guadec-Konferenz. Um diese Fehler zu vermeiden, empfiehlt er stattdessen die Verwendung der Sprache Rust.

Anzeige

Diese Empfehlung von Mena basiert auf den Erfahrungen, die er im vergangenem Jahr als Betreuer von Librsvg gesammelt hat, welche zum Darstellen (Rendern) von SVG-Dateien genutzt wird. Verwendet wird die Bibliothek für eine Vielzahl von Desktop-Anwendungen, so ist Librsvg etwa eine Abhängigkeit des Toolkits GTK. Zudem wird die Bibliothek in Wikipedia zur Darstellung genutzt, falls sehr alte Browser zum Einsatz kommen, die SVG noch nicht selbst darstellen können.

Mena hat die Pflege von Librsvg nach ein paar Bug-Fixes im Jahr 2015 übernommen und dann im Herbst 2016 damit begonnen, kleine Code-Bestandteile in Rust neu zu erstellen, zunächst, um sich die Sprache beizubringen. Der Aufbau von Rust und die große Interoperabilität zu C habe es dabei ermöglicht, leicht stückweise Code auszutauschen. Schließlich sei Mena an dem Punkt angelangt, an dem der Entwickler den gesamten Code nach Rust portieren wollte.

Rust hilft beim Fehlervermeiden

Ein große Hilfe für Mena sei dabei gewesen, wie in Rust mit Fehlern umgegangen werde: So könnten Fehlerausgaben nicht nur sehr einfach umgesetzt werden, das Schreiben von Fehlerbehandlungen sei zudem viel kürzer, als Fehler schlicht zu ignorieren. "Das ist einfach magisch", sagte Mena. Ebenso sei das Erstellen von Unit-Tests sowie von Debug-Nachrichten mit Rust einfacher als mit C.

Bei den Portierungsarbeiten seien Mena eine Vielzahl von eigentlich üblichen Fehlern in dem C-Code aufgefallen wie etwa Überläufe, die jedoch leider nicht immer offensichtlich sind. Der Code für einige dieser Fehler stamme zudem von den laut Mena besten C-Programmierern, die das Gnome-Projekt je hatte. Das bedeute aber keinesfalls, dass das Projekt über keine guten Programmierer verfüge. Der Grund für diese Fehler seien eben nicht Menschen, sondern vielmehr die Sprache C selbst, die schlicht "feindselig" sei.

Besonders treffe das auf das Schreiben von Parsern zu, die in vielen grundlegenden Bibliotheken wie eben Librsvg vorkommen. Eines der größten Probleme von C sei in diesem Einsatzbereich das Verarbeiten von Strings, die kein nativer Datentyp der Sprache sind. Anders ist dies in Rust, was Mena wieder mit einem Codebeispiel beschreibt, in dem wiederum auch die einfache Umsetzung einer Fehlerbehandlung deutlich wird. Der ebenfalls anwesende Google-Angestellte und Sicherheitsforscher Matthew Garrett beschreibt auf Twitter jenes Beispiel einfach nur mit dem Wort "überzeugend".

Zusätzlich zu den bereits genannten Eigenschaften von Rust, kommen noch jene neuen Funktionen hinzu, die explizit darauf ausgelegt sind, die Sicherheit des geschriebenen Codes zu erhöhen. Dazu gehört etwa das Ownership-Prinzip, der Borrowing-Checker oder andere Bestandteile der Sprache, die zur Kompilierzeit erzwungen werden, um Fehler in laufendem Code zu vermeiden.

Mena sagt, er habe selbst etwa einen Monat lang gegen den Borrow-Checker gekämpft, bis seine Rust Kenntnisse gut genug waren, um Code zu schreiben, der problemlos kompiliere. Den Anwesenden gibt Mena dennoch den Rat: "Kämpft nicht gegen den Compiler, er ist euer Freund" - immerhin schützt der Rust-Compiler vor vielen Fehlern, die in C auftreten können.


eye home zur Startseite
pythoneer 07. Aug 2017

Rust wurde nicht für Mozilla entwickelt (weder für die Application Suite noch für die...

Märchenfee 06. Aug 2017

Das ist natürlich die Vorschau. Nehme mal auch an das die librsvg auch genau dafür...

Märchenfee 06. Aug 2017

C und C++ sind eigentlich simpel. Assembler auch. Unsimpel wurde der Kram erst durch...

Märchenfee 06. Aug 2017

Ich finde zuerst sollte man (Programmier)Sprachen etwas verstehen und rudimentär nutzen...

teenriot* 03. Aug 2017

Ich stecke irgendwie in der Java-Blase fest, aber dein Beitrag macht Lust dann mal wieder...



Anzeige

Stellenmarkt
  1. ASC Automotive Solution Center AG, Düsseldorf
  2. Bosch Service Solutions Leipzig GmbH, Leipzig
  3. Teambank AG, Nürnberg
  4. SYNLAB Holding Deutschland GmbH, Augsburg


Anzeige
Spiele-Angebote
  1. 29,99€
  2. 3,99€
  3. (-66%) 16,99€

Folgen Sie uns
       


  1. Festnetz und Mobilfunk

    Telekom kämpft mit Zerstörungen durch den Orkan Friederike

  2. God of War

    Papa Kratos kämpft ab April 2018

  3. Domain

    Richard Gutjahr pfändet Compact-online.de

  4. Carsharing

    Drivenow und Car2Go wollen fusionieren

  5. Autonomes Fahren

    Alstom testet automatisierten Zugbetrieb

  6. Detectron

    Facebook gibt eigene Objekterkennung frei

  7. Mavic Air

    DJI präsentiert neuen Falt-Copter

  8. Apple

    Homepod soll ab Frühjahr 2018 in Deutschland erhältlich sein

  9. 860 Evo und 860 Pro

    Samsungs SSDs sind flotter und sparsamer

  10. Mozilla

    Firefox Quantum wird mit Version 58 noch schneller



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Indiegames-Rundschau: Krawall mit Knetmännchen und ein Mann im Fass
Indiegames-Rundschau
Krawall mit Knetmännchen und ein Mann im Fass
  1. Games 2017 Die besten Indiespiele des Jahres
  2. Indiegames-Rundschau Von Weltraumpiraten und dem Wunderdoktor

BeA: Soldan will Anwälten das Internet ausdrucken
BeA
Soldan will Anwälten das Internet ausdrucken
  1. BeA Bundesrechtsanwaltskammer stellt Zahlungen an Atos ein
  2. Chipkarten-Hersteller Thales übernimmt Gemalto
  3. Atos Gemalto bekommt 4,3-Milliarden-Euro-Angebot

Nachbarschaftsnetzwerke: Nebenan statt mittendrin
Nachbarschaftsnetzwerke
Nebenan statt mittendrin
  1. NetzDG Streit mit EU über 100-Prozent-Löschquote in Deutschland
  2. Nextdoor Das soziale Netzwerk für den Blockwart
  3. Hasskommentare Neuer Eco-Chef Süme will nicht mit AfD reden

  1. Re: Projekt U10 Prozent ist im vollen Gange

    plutoniumsulfat | 06:54

  2. Re: Gut so. Der Autor hat eine blühende...

    Oil | 06:52

  3. Re: immer noch lahmer als Chrome..

    Steffo | 06:50

  4. Re: Zum IT-Aspekt: Pfändung einer Domäne gehört...

    watwerbisdudenn | 06:41

  5. Re: Wieder online nach 27h

    Snooozel | 06:33


  1. 18:19

  2. 18:08

  3. 17:53

  4. 17:42

  5. 17:33

  6. 17:27

  7. 17:14

  8. 16:14


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel