Lisbon Rust-lang MeetupLisbon Rust-lang Meetup
#1#1
Rust Introduction and current statusRust Introduction and current status
2 July 2014
Slides by /João Oliveira @jxs01
WhatWhat
Rust is a that combines
strong compile-time correctness guarantees with fast
performance.
It improves upon the ideas of other systems languages like
C++ by providing guaranteed memory safety (no crashes, no
data races) and over the lifecycle of
memory.
systems programming language
complete control
WhenWhen
Started as a Graydon Hoare's part-time side project in
2006 and remained so for over 3 years.
Mozilla got involved in 2009 once the language was
mature enough to run some basic tests and demonstrate
the idea
Though it is sponsored by Mozilla, Today, Rust is
developed by a diverse community of enthusiasts.
WhyWhy
Need for memory management model, and
simpler concurrent programming constructs to
prototype and experiment new browser stacks.
Specifically,
Lots of good ideas known and loved from other
languages which had not yet made into widely used
systems languages
safer
Servo
FeaturesFeatures
Ownership. model to deal with memory management
Expressive. type inference, higher order functions,
pattern matching and algebraic data types
Safe task-based concurrency. Rust's lightweight
tasks do not share memory, instead communicating
through messages.
Polymorphism. Rust has type-parametric functions
and types, type classes and OO-style interfaces.
Features (cont)Features (cont)
Multiplatform. Runs on Linux, OS X, ,
Self hosting. The Rust compiler and libraries are
entirely written in Rust
Embeddable. Rust code is , being
able to be embedded by other
Open source.
Android iOS
C-ABI compatible
languages
MIT/Apache 2.0 License
StatusStatus
1.0 expected when all the P-backcompat-lang issues are solved
Status (cont)Status (cont)
Production ready?Production ready?
Rust editionRust edition across Rust evolutionacross Rust evolutionAngolmoisAngolmois diffdiff
0.6 to 0.7 took of diff. (Angolmois is about
6,000 lines long.)
0.7 to 0.8 took of diff.
0.8 to 0.9 took of diff.
0.9 to 0.10 took of diff.
0.10 to 0.11-pre (master) took of diff so far.
1,179 lines
1,622 lines
1,119 lines
2,248 lines
1,128 lines
Status (cont II)Status (cont II)
Production ready?Production ready?
Skylight.
OpenDNS. for for real-time data processing.
Tilde uses Rust on Skylight.io
Uses Rust
Rust development is trully open
DevelopmentDevelopment
Communication. #Rust on and
mailing list
Issues. Issue tracker hosted on github used not only by
developers reporting issues but by the core team itself
Meetings The Rust team has weekly meetings, where
minutes are recorded on Etherpad and then archived on
a
RFC's. RFC's to discuss major features/changes
irc.mozilla.org rust-
dev
repo
Public
Popular projectsPopular projects
. A NES emulator with no GC, using modern
Rust conventions
GNU coreutils re-written in Rust
A Game engine written in Rust
A web framework inspired by express.js
sprocketnes
Coreutils.
Piston,
Floor.
Meetup Goals/challengesMeetup Goals/challenges
Learning Rust while trying to help the language
development, and discuss systems programming
challenges
Finding where Rust shines and where it falls short
Learning about Servo and discuss browser architectures
Sugestions :) ?
Let's get started?Let's get started?
#rust-pt on
Install links
30 minute Introduction
Refence Manual
Online code evaluator
irc.mozilla.org
ThanksThanks

Lisbon rust lang meetup#1

  • 1.
    Lisbon Rust-lang MeetupLisbonRust-lang Meetup #1#1 Rust Introduction and current statusRust Introduction and current status 2 July 2014 Slides by /João Oliveira @jxs01
  • 2.
    WhatWhat Rust is athat combines strong compile-time correctness guarantees with fast performance. It improves upon the ideas of other systems languages like C++ by providing guaranteed memory safety (no crashes, no data races) and over the lifecycle of memory. systems programming language complete control
  • 3.
    WhenWhen Started as aGraydon Hoare's part-time side project in 2006 and remained so for over 3 years. Mozilla got involved in 2009 once the language was mature enough to run some basic tests and demonstrate the idea Though it is sponsored by Mozilla, Today, Rust is developed by a diverse community of enthusiasts.
  • 4.
    WhyWhy Need for memorymanagement model, and simpler concurrent programming constructs to prototype and experiment new browser stacks. Specifically, Lots of good ideas known and loved from other languages which had not yet made into widely used systems languages safer Servo
  • 5.
    FeaturesFeatures Ownership. model todeal with memory management Expressive. type inference, higher order functions, pattern matching and algebraic data types Safe task-based concurrency. Rust's lightweight tasks do not share memory, instead communicating through messages. Polymorphism. Rust has type-parametric functions and types, type classes and OO-style interfaces.
  • 6.
    Features (cont)Features (cont) Multiplatform.Runs on Linux, OS X, , Self hosting. The Rust compiler and libraries are entirely written in Rust Embeddable. Rust code is , being able to be embedded by other Open source. Android iOS C-ABI compatible languages MIT/Apache 2.0 License
  • 7.
    StatusStatus 1.0 expected whenall the P-backcompat-lang issues are solved
  • 8.
    Status (cont)Status (cont) Productionready?Production ready? Rust editionRust edition across Rust evolutionacross Rust evolutionAngolmoisAngolmois diffdiff 0.6 to 0.7 took of diff. (Angolmois is about 6,000 lines long.) 0.7 to 0.8 took of diff. 0.8 to 0.9 took of diff. 0.9 to 0.10 took of diff. 0.10 to 0.11-pre (master) took of diff so far. 1,179 lines 1,622 lines 1,119 lines 2,248 lines 1,128 lines
  • 9.
    Status (cont II)Status(cont II) Production ready?Production ready? Skylight. OpenDNS. for for real-time data processing. Tilde uses Rust on Skylight.io Uses Rust
  • 10.
    Rust development istrully open DevelopmentDevelopment Communication. #Rust on and mailing list Issues. Issue tracker hosted on github used not only by developers reporting issues but by the core team itself Meetings The Rust team has weekly meetings, where minutes are recorded on Etherpad and then archived on a RFC's. RFC's to discuss major features/changes irc.mozilla.org rust- dev repo Public
  • 11.
    Popular projectsPopular projects .A NES emulator with no GC, using modern Rust conventions GNU coreutils re-written in Rust A Game engine written in Rust A web framework inspired by express.js sprocketnes Coreutils. Piston, Floor.
  • 12.
    Meetup Goals/challengesMeetup Goals/challenges LearningRust while trying to help the language development, and discuss systems programming challenges Finding where Rust shines and where it falls short Learning about Servo and discuss browser architectures Sugestions :) ?
  • 13.
    Let's get started?Let'sget started? #rust-pt on Install links 30 minute Introduction Refence Manual Online code evaluator irc.mozilla.org
  • 14.