Von C zu Rust wechseln?



  • Ich denke vielen C++ Leuten geht es gar nicht um mehr Sicherheit und auch nicht darum, dass der Compiler schon viele Fehler im Vorfeld ausmerzt. Ich bin aber sehr erstaunt dass einige hier das Potential der Sprache erkennen. So etwas gab es in der Form noch nie. Die meisten verteidigen einfach nur ihr C++ und zwar aus egoistischen Gründen, weil es ihnen zu wieder ist C++ ein Stück weit abzugeben.

    Dabei muss man sich doch nur die Entwicklung ab Mitte der 90er anschauen. C++ wurde in immer mehr Bereichen ersetzt und nun ist halt auch einer der letzten Domänen dran, nämlich die Systemprogrammierung. Wenn es nicht Rust ist, dann einen andere Sprache. LLVM macht es einfach viele neue Frontend für neue Sprachen zu entwickeln.

    Alles was einen C-Schnittstelle hat, wird in den neuen Sprachen verwendet werden können. Es ist also für eine ziemlich reibungslose Übergangszeit gesorgt.

    Ob Rust sich da viel vom C und C++ Kuchen schnappen kann werden wir sehen. Eine Sprache wird es sicher irgendwann tun. Ich möchte nicht länger auf die Willkür von "guten" Programmierern angewiesen sein, je mehr Fehler vom Compiler entdeckt werden können um so besser.

    Rust ist in meinen Augen ein Meilenstein in der IT-Geschichte.



  • Rust ein Meilenstein? Jetzt wird's peinlich. 🙄
    Rust hat nichts neues, nur etwas striktere Regeln, herp-derp.

    Was Sicherheit angeht ist Rust ein Furz verglichen mit Whiley ( http://whiley.org ).



  • Über Tellerrand geschaut schrieb:

    Denn wenn es nur an der Sicherheit liegen würde, dann hätte sich Ada95 schon längst gegen C++ behaupten können.

    Kennst Du Dich mit Ada aus? Vielleicht auch mit einer neueren Inkarnation? Ich nicht. Wenn ja, verrat uns doch mal bitte, ob/wie Ada Speichersicherheit garantieren kann. Das würde mich schon interessieren. Ich konnte da nur auf die Schnelle nichts zu finden außer einem Kommentar, dass sich Speichersicherheit und die Verwendung von Zeigern in Ada ausschließen würden.

    Über Tellerrand geschaut schrieb:

    Das gleiche Problem wird auch Rust haben, schau dir mal die Syntax an:

    let i = from_str::<uint>("42");
    

    das ist doch ein Griff ins Klo, so wie man sich da verbiegen muss.

    Das ist auch schon das schlimmste Beispiel, was es gibt. Und alle sind sich einig darüber, dass diese Syntax unschön ist. Es war allerdings auch kein Unfall. Man hat lange hin und her überlegt, wie das aussehen könnte. Das Problem sind Mehrdeutigkeiten, die man vermeiden will. Ein C++ Compiler muss schon größere Verränkungen machen, um den kleiner-als Operator von der öffnenden spitzen Klammer in expression contexts zu unterscheiden. Diese Kontextabhängigkeit wollte man einfach in Rust nicht. Und eckige Klammern für Compilezeit-Parameter (wie es z.B. bei Scala der Fall ist) müssen vom Indexoperator unterschieden werden (den es in Scala gar nicht gibt). In Rust hast Du aber immer noch die Type Deduction. Das heißt, in vielen Fällen musst Du sowas gar nicht schreiben. Die from_str -Funktion ist auch nicht mehr ganz aktuell. Das könnte heute z.B. so aussehen:

    fn main() {
        let mut v: Vec<i32> = Vec::new();
        if let Some(value) = "42".parse() {
            v.push(value); // Verwendungsbeispiel, wo Type Deduction greift
        } else {
            println!("Konnte den String nicht parsen");
        }
        println!("Liste: {:?}", v);
    }
    

    Über Tellerrand geschaut schrieb:

    Dann schon eher D, denn das ist wesentlich näher am C Syntax Stil.

    D gibt es ja schon eine Weile. Bin damit aber nie warm geworden. Es war mir zu ähnlich zu all dem, was es schon vorher gab und die anderen Features haben mich nicht vom Hocker gerissen. Das mit deinem „wesentlich“ halte ich für übertrieben. Dass man

    let i: i32 = 23;
    let j = 42;
    

    statt

    i32 i = 0;
    auto j = 42;
    

    schreibt, ist jedenfalls eine sehr leichte Umgewöhnung. Dagegen sieht mir Haskell sehr viel kryptischer aus mit meinem Java/C/C++ Background. 🙂

    Mir fehlen in diesem Thread irgendwie die Graustufen. Natürlich wird man heutzutage nicht ernsthaft ein Linux Kernel Modul in Rust schreiben (außer vieleicht als proof-of-concept, welchen es allerdings schon gibt). Und natürlich werden nicht von heute auf morgen viele C++ Programmierer Rust benutzen. Ich würde nicht mal soweit gehen und behaupten wollen, dass Rust in 10 Jahren irgend eine wichtige Rolle spielen wird. Das ist einfach alles zu ungewiss. Zum einen gibt eben dieses “good enough”-Problem. Die Leute werden auch in 20 Jahren wahrscheinlich noch das alte JPEG Format zum Speichern von Fotos benutzen, weil es „gut genug“ ist, obwohl es spätestens dann bessere Alternativen geben wird. Zum anderen sehe ich im Bereich der generischen Programmierung bei Rust noch Lücken, die nerven und gefüllt werden müssten. Umgekehrt kann ich auch nicht nachvollziehen, wie der eine oder andere sich bzgl Rust so querstellen kann. Ich finde die Einschätzungen zum Potential von Rust von Leuten, die Rust gar nicht ausprobiert haben, auch nicht besonders interessant, ehrlich gesagt.



  • krümelkacker schrieb:

    Über Tellerrand geschaut schrieb:

    Denn wenn es nur an der Sicherheit liegen würde, dann hätte sich Ada95 schon längst gegen C++ behaupten können.

    Kennst Du Dich mit Ada aus? Vielleicht auch mit einer neueren Inkarnation?

    Nein, allerdings kenne ich jemand der Ada an der Uni in Stuttgart verwenden musste und der hat mir darüber berichtet und mir das gesagt, dass für Ada im Bezug auf sicheren Code sehr viel gemacht wurde.

    Ada wird mit diesen Features der Sicherheit allerdings auch beworben und wurde auch genau aus diesem Grund entwickelt, eine sichere Sprache für die Luft- und Raumfahrtindustrie* zu sein.:
    http://www.adaic.org/advantages/
    http://de.wikipedia.org/wiki/Ada_(Programmiersprache)#F.C3.A4higkeiten_der_Sprache
    https://www.youtube.com/watch?v=3e-BGblAMC4

    * Was übrigens der Grund sein dürfte, dass diese Sprache an der Uni in Stuttgart so eine breite Verwendung hat. Luft- & Raumfahrttechnik wird dort nämlich auch gelehrt.

    Hier hat jemand auch etwas zu Ada geschrieben (bei den Antworten gucken):
    http://security.stackexchange.com/questions/55723/are-there-secure-languages



  • Sicherheit ist seit Snowden wichtiger denn je.





  • Eichhörnchen (Säugetier) vs Schlange (Reptil):
    https://www.youtube.com/watch?v=2nYr3jKx5yI



  • Mir fällt grad auf, der Thread Titel ist von C zu Rust wechseln, und nicht von C++ zu Rust wechseln. Ja, von zu Rust zu wechseln könnte schon halbwegs Sinn machen. Danach sollte man aber schnell von Rust zu C++ wechseln.



  • RustvsCpp schrieb:

    Servo(Rust) vs Gecko(C++)
    http://www.phoronix.com/scan.php?page=news_item&px=MTgzNDA

    Ist das so etwas wie Pflanzen vs. Zombies? Ich such ein neues PC Spiel.



  • Ist nur ein praktisches Beispiel, wie man mit Rust performanter und sicherer Projekte hochzieht als mit C++.



  • krümelkacker schrieb:

    großbuchstaben schrieb:

    welche Nische ist denn offen, die eine weitere Sprache wie Rust besetzen kann?

    Also, dafür, dass dieser Thread hier schon 10 Seiten überschritten hat und dass es so Dinge wie Suchmaschinen gibt, finde ich die Frage ein bisschen ignorant. Ist doch ganz einfach: Rust will ein besserer C++ Ersatz sein, der es wie C++ auf "zero cost abstraction" aber zusätzlich auch auf Speichersicherheit und Threadsicherheit abgesehen hat.

    und wo ist da die offene Nische?

    Meinst du, daß sichere Software mit herkömmlichen Sprachen nicht möglich ist? In C++ ist das nicht zuletzt eine Frage des Programmierstils bzw der Fähigkeiten des Entwicklers.



  • Genau in C++ ist Sicherheit abhängig vom Entwickler, das ist immer schlecht und war auch ein guter Grund von C auf C++ zu wechseln. Willst du noch mehr automatische Sicherheit ist dies ein guter Grund von C++ auf Rust zu wechseln. Rust ist der nächste logische Schritt, den kann man gehen oder auch nicht.



  • Rustiger schrieb:

    Genau in C++ ist Sicherheit abhängig vom Entwickler, das ist immer schlecht und war auch ein guter Grund von C auf C++ zu wechseln. Willst du noch mehr automatische Sicherheit ist dies ein guter Grund von C++ auf Rust zu wechseln. Rust ist der nächste logische Schritt, den kann man gehen oder auch nicht.

    Ich wäre dafür, daß Rustiger gebannt wird. Das Kind nervt.



  • Hattest du nicht mal so ein nützliches GreaseMonkey-Skript?



  • Es zwingt dich keine hier zu lesen oder zu antworten. Hier wird Sicherheit auf dem Silbertablett präsentiert und einige verschmähen dies. Was solls, mich wundert in dieser Welt gar nichts mehr. Es gibt ja auch Leute, denen die totale Überwachung gefällt und die dann auf Sicherheit durch Verschlüsselung scheißen. In diesem Sinne will ich hier nun auch wirklich nicht mehr nerven. Rust hat auf jedenfalls das Zeug ein C++ Killer zu werden, denn dafür wurde es entwickelt und das kann es in zukünftigen Mozilla-Produkten dann auch beweisen.



  • Rustiger schrieb:

    Rust hat auf jedenfalls das Zeug ein C++ Killer zu werden, denn dafür wurde es entwickelt

    Java auch und eigentlich versprechen sich das die Entwickler fast jeder neuen Sprache.



  • Jodocus schrieb:

    Hattest du nicht mal so ein nützliches GreaseMonkey-Skript?

    Ich erwarte, daß die Forenleitung einschreitet. Das sollte in Fachforen so sein. Wir verlieren einfach viel zu viele gute Leute, solange die Leitung nur Quark im Sack hat. Oder wir kriegen keine Neuen mehr, weil alle nach spätestend drei Wochen wieder weggehen.



  • Wenn du fachlich einer der hier gemachten Aussagen widerlegen kannst, dann kannst du das gerne tun.

    Rust ist halt wie HD-Fernsehen von Bluray für mich, einmal geschaut und dann will man kein SD mehr auf DVD kaufen.

    Du kannst hier gerne nach den Mods schreien und mich Mundtod machen und die Trollkeule raus holen, oder was auch immer. Ich bin nur einer der Rust mag, es gibt aber viele von uns und es werden täglich mehr. Du kannst uns nicht alle löschen, Sicherheit ist wichtig!



  • Rustiger schrieb:

    Wenn du fachlich einer der hier gemachten Aussagen widerlegen kannst, dann kannst du das gerne tun.

    Rust ist halt wie HD-Fernsehen von Bluray für mich, einmal geschaut und dann will man kein SD mehr auf DVD kaufen.

    Du kannst hier gerne nach den Mods schreien und mich Mundtod machen und die Trollkeule raus holen, oder was auch immer. Ich bin nur einer der Rust mag, es gibt aber viele von uns und es werden täglich mehr. Du kannst uns nicht alle löschen, Sicherheit ist wichtig!

    Sicherheit ist mir auch wichtig. Deswegen halte ich ausschau nach Diskussionskanälen, die sich besser schützen.



  • Rustiger schrieb:

    Genau in C++ ist Sicherheit abhängig vom Entwickler, das ist immer schlecht und war auch ein guter Grund von C auf C++ zu wechseln.

    Nenne doch mal bitte ein Codeschnipsel, das mit Rust ein neue Niveau an Sicherheit aufweist, damit wir uns überlegen können, wie man das in C++ nachbilden kann. C++ (und gerade in der 11er Version) bietet ja mit const, "smart pointers", auto, explicit, delete, default, usw inzwischen zahlreiche Hilfsmittel.

    C++ hat die Vorteile und Nachteile jedes mächtigen Werkzeugs - richtig angewandt, ist es effizient, elegant und sicher, in den falschen Händen kann man viel Unsinn mit anstellen.

    Rustiger schrieb:

    Willst du noch mehr automatische Sicherheit ist dies ein guter Grund von C++ auf Rust zu wechseln. Rust ist der nächste logische Schritt, den kann man gehen oder auch nicht.

    bei der Phrase "automatische Sicherheit" denke ich als erstes an Prolog. Da überläßt man die Programmierung gleich dem Computer und beschreibt nur die Aufgabenstellung.


Anmelden zum Antworten