Der Rust Thread

Yay Rust!

Ich habe gleich eine Frage, vielleicht weiss Raphi bescheid (wenn er sich dann hier mal registriert):

Ist es sinnvoll, Datentypen auf das Minimum zu beschränken, wie zB hier?

/// Return the number of days in February for the specified year
fn days_in_feb(year: u16) -> u8 {
    if is_leap_year(year) {
        29
    } else {
        28
    }
}

Oder würde man statt u8 und u16 besser generische Typen verwenden und die Wahl der Platform überlassen?

Grundsätzlich ist der Plattform spezifische integer Typ der performanteste.
In c/c++ gibt es dafür die uint_fast*_t Typen.
In Rust gibt es den usize Typ welcher der Pointergrösse entspricht. Also 16 Bit auf 16 Bit Systemen und so weiter.
Generische Typen sind natürlich auch nicht schlecht, da der Datentyp effektiv egal ist für die Berechnung und so der Anwender entscheiden kann welchen Datentyp er verwenden will.

OK, usize könnte also ein Ersatz für u8 sein, allerdings nicht für u16 (da der Code ja auf einer 8 Bit Architektur laufen könnte), korrekt?

Andererseits senkt das die Lesbarkeit (es macht logisch gesehen keinen grossen Sinn, für eine Jahreszahl einen Pointer-Typ zu verwenden).

Für die die es noch nicht wissen, @raphi und ich schreiben den SpaceAPI Server mit Rust neu: https://github.com/coredump-ch/spaceapi/tree/rust. Diskussionen zur SpaceAPI selbst dürfen hier gepostet werden.

Hier noch ein netter Rust Artikel für die Skeptiker: http://lucumr.pocoo.org/2014/10/1/a-fresh-look-at-rust/

@schmijos du wolltest doch wissen, wie es bei Rust mit Concurrency aussieht:

Falls jemand Rust auf Heroku laufen lassen will:

Cool!

Ich habe vor Kurzem mal sowas ähnliches mit Python gemacht (ohne Heroku). Müsste mal darüber bloggen.

Der FFI Blogpost muss bis später warten. Dafür habe ich über Traits gebloggt: Implementing Methods on Bultins.

Hat sogar etwas Ruby Code für @schmijos drin :wink:

Leseempfehlung: http://www.oreilly.com/programming/free/why-rust.csp

Ist ein ~50 seitiges Buch mit einer Einführung in Rust. Wenn man es gelesen hat, kennt man die Grundkonzepte, die Ziele und die Stärken der Sprache.

Hier übrigens meine Rust-Bookmark-Sammlung:

https://raindrop.io/collection/704539

Falls jemand daran Interesse hat Rust zu lernen: Wir haben für unsere SpaceAPI Projekte easy issues erstellt, die einen einfachen Einstieg bieten:

Andere Interessante Projekte sind:

Event- / Kooperations-Idee:

1 Like