Mozilla mit Programmiersprache Rust - wieso das Rad neu erfunden?

Nero24

Administrator
Teammitglied
Mitglied seit
01.07.2000
Beiträge
24.058
Renomée
10.440
  • BOINC Pentathlon 2019
  • BOINC Pentathlon 2020
  • BOINC Pentathlon 2018
  • BOINC Pentathlon 2021
Hallo zusammen,

mit Erstaunen habe ich bei der Vorstellung der Version 48 des Mozilla Firefox Browsers gelesen, dass die Programmiersprache Rust extra für und teils von Mozilla entwickelt worden ist, um den Browser sicherer zu machen. Das scheint mir doch ein bißchen sehr viel Aufwand, extra eine neue Programmiersprache zu erfinden und zu entwickeln, um die Unzulänglichkeiten von C/C++ zu umschiffen. Wieso hat man nicht eine bestehende Programmiersprache genommen, die von Haus aus Starke Typisierung verwendet und zweifelhafte Syntax, die der C-Compiler mit höchstens einer kleinen Warnung einfach durchwinkt, gar nicht erst kompiliert? Da fallen mir auf Anhieb z.B. alle Pascal-Derivate ein.

Hat da jemand eine Quelle warum das so gemacht wurde? Der Aufwand ist ja enorm, das Rad mit einer eigenen Programmiersprache nochmal neu zu erfinden, um die gesteckten Ziele zu erreichen statt eine bestehende zu nehmen, die über Jahrzehnte gereift ist.
 
Zuletzt bearbeitet:
Zitat Rust Webseite: https://www.rust-lang.org

Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety.

[h=2]Featuring[/h]
  • zero-cost abstractions
  • move semantics
  • guaranteed memory safety
  • threads without data races
  • trait-based generics
  • pattern matching
  • type inference
  • minimal runtime
  • efficient C bindings

Das alles klingt schon eher nicht nach "Pascal"
Man hat sich bei den Features offenbar einiges überlegt was Effizienz und Theading betrifft.
In der Kombination war/ist das anscheinend bisher nicht da gewesen.
 
Ich habe zwar keine Quelle, aber ich denke, dass die jungen Entwickler von heute noch nie eine Zeile Pascal-Code gesehen haben. Die sind doch mit C, C++, C# und Java aufgewachsen. Woher sollen sie also die schöne Strukturiertheit und Klarheit von Pascal kennen? Ich bin überzeugt davon, dass wir global gesehen deutlich weniger Bugs, Patchdays und Hacks erleben müssten, wenn kritische Software wie Betriebssysteme, Netzwerkstacks oder Parser in Pascal geschrieben wären, schlichtweg weil es erheblich weniger Möglichkeiten gibt, Denkfehler bei der Werteübergabe zu machen, und Code mit Eingabefehlern übersetzt Pascal erst gar nicht.

Andererseits wurde Pascal schon seit 20 (?) Jahren von keiner großen Firma mehr weiterentwickelt. Buchhaltungssoftware wird ja auch nicht mehr in COBOL geschrieben obwohl die Programmiersprache wie gemacht ist dafür. Aber sie wurde schlichtweg nie auf einen modernen Stand gebracht. Gut, bei Pascal kann man streiten, ob das mit Delphi geschehen ist oder nicht, aber in Wahrheit gibt es doch so gut wie kein größeres Software-Projekt der letzten 10 Jahren, das in Pascal entwickelt worden wäre, oder täusche ich mich? *noahnung* Vermutlich wollte Mozilla einfach nicht auf ein totes Pferd setzen, und wer weiß, welche Lizenzfragen sich daraus ergeben hätten, Pascal weiterzuentwickeln. Ich kann mir gut vorstellen, dass die Rechte an Pascal weit gestreut sind.

Edit: tomturbo war schneller, und auch erfolgreicher bei der Quellensuche ;D
 
Zuletzt bearbeitet:
Pascal war auch nur ein Beispiel. ;) Es gibt ja genügend Programmiersprachen, die Jahrzehnte Reife hinter sich haben, auf die man hätte aufbauen können. Aber vermutlich ist es so wie Du sagst, Tom, dass es die Kombination aus den genannten Dingen war, die einen Start auf dem weißen Blatt Papier notwendig machte.

Ich dachte nur, es müsse doch irgendeine Doku, einen Blogeintrag oder Artikel geben, der die Gedankengänge und Abwägungen von damals offenlegt, was den Herrn Graydon Hoare damals dazu bewogen hat, bei Null neu anzufangen. :)
 
Ja, die Idee ist halt, dass Rust total voll sicher ist per Design. Das Problem ist: Das ist von Mozilla ...

Meine Probleme damit: Hässliche Syntax, keine vernünftigen Datentypen, und vermutlich schlechte Performance.
 
blazing fast klingt eher nicht nach schlechter Performance
 
Behaupten kann man viel. Mit den Einschränkungen ist eine gute Performance kaum möglich. Abgesehen davon ist das ehh alles Käse, weil man unter Windows wieder System-DLLs einbinden muss.

Und wenn ich mir so einen Code anschaue, dann bekomme ich das Kotzen:

Code:
fn fizzbuzz_to(n: u32) -> () {
    for n in 1..n + 1 {
        fizzbuzz(n);
    }
}
 
Du musst die Sprache ja nicht verwenden. Wenn sie für Firefox taugt und dort für mehr Sicherheit und Performance sorgt, hat die Sprache ihr Ziel erfüllt.
 
Zuletzt bearbeitet:
Nicht nur dort, MS setzt auch in ihrem Mikrokernel zunehmend auf Rust.
 
Ich würde behaupten, weniger. Es macht einen großen Unterschied, ob man den Kern eines großen Monolithen anfässt, oder eine Hand voll Systemaufrufe in einem Mikrokernel.

Allerdings hat man beim Monolithen wenigstens die Möglichkeit alles zu testen. Microsoft weiß nicht, welche Software/Treiber wann und wie irgendwas aufruft und ob der dann schmeckt was sie als Antwort bekommt.
 
Zurück
Oben Unten