ICT role in 21st century education and its challenges
Lisbon rust lang meetup#1
1. 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
2. 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
3. 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.
4. 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
5. 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.
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
8. 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
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 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
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
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 :) ?
13. Let's get started?Let's get started?
#rust-pt on
Install links
30 minute Introduction
Refence Manual
Online code evaluator
irc.mozilla.org