Lisbon rust lang meetup#1

Post on 20-Jun-2015

488 views 2 download

Tags:

description

Slides for the first Lisbon Rust lang meet up

Transcript of Lisbon rust lang meetup#1

Lisbon Rust-lang MeetupLisbon Rust-lang Meetup#1#1

Rust Introduction and current statusRust Introduction and current status2 July 2014

Slides by / João Oliveira @jxs01

WhatWhatRust is a that combines

strong compile-time correctness guarantees with fastperformance.

It improves upon the ideas of other systems languages likeC++ by providing guaranteed memory safety (no crashes, no

data races) and over the lifecycle ofmemory.

systems programming language

complete control

WhenWhenStarted as a Graydon Hoare's part-time side project in2006 and remained so for over 3 years.

Mozilla got involved in 2009 once the language wasmature enough to run some basic tests and demonstratethe idea

Though it is sponsored by Mozilla, Today, Rust isdeveloped by a diverse community of enthusiasts.

WhyWhyNeed for memory management model, andsimpler concurrent programming constructs toprototype and experiment new browser stacks.Specifically,

Lots of good ideas known and loved from otherlanguages which had not yet made into widely usedsystems languages

safer

Servo

FeaturesFeaturesOwnership. model to deal with memory management

Expressive. type inference, higher order functions,pattern matching and algebraic data types

Safe task-based concurrency. Rust's lightweighttasks do not share memory, instead communicatingthrough messages.

Polymorphism. Rust has type-parametric functionsand types, type classes and OO-style interfaces.

Features (cont)Features (cont)Multiplatform. Runs on Linux, OS X, ,

Self hosting. The Rust compiler and libraries areentirely written in Rust

Embeddable. Rust code is , beingable to be embedded by other

Open source.

Android iOS

C-ABI compatiblelanguages

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 edition Rust edition across Rust evolution across Rust evolutionAngolmoisAngolmois diffdiff

0.6 to 0.7 took of diff. (Angolmois is about6,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 openDevelopmentDevelopment

Communication. #Rust on and mailing list

Issues. Issue tracker hosted on github used not only bydevelopers reporting issues but by the core team itself

Meetings The Rust team has weekly meetings, whereminutes are recorded on Etherpad and then archived ona

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/challengesLearning Rust while trying to help the languagedevelopment, and discuss systems programmingchallenges

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 links30 minute IntroductionRefence ManualOnline code evaluator

irc.mozilla.org

ThanksThanks