PyconFr

Strasbourg, 26-29 Octobre

PyConFR 2013 - Strasbourg du 26 au 29 octobre 2013

samedi 14:00:00–14:30:00

Introduction à Rust

Simon Sapin

Audience level:
Novice

Description

Rust est un langage de programmation « systèmes » qui se veux sûr, concurrent, et pragmatique. Après une présentation du langage et de l’état du projet, je donnerai un retour d’expérience de développement sur Servo (Rust) et WeasyPrint (Python), deux implémentations de CSS. Je discuterai également de la possibilité d’ajouter à Python des types algébriques de données, que Rust appelle « enum ».

Abstract

Rust est un langage de programmation « systèmes » qui se veux sûr, concurrent, et pragmatique. Un de ses objectifs est de remplacer C/C++ dans les domaines où un langage plus « haut niveau » tel que Python n’est pas adapté : noyau de système d’exploitation, système temps-réel, moteur de navigateur web, etc.

Servo, un projet de Mozilla Research, est un moteur de rendu pour le web (tout comme Gecko est le moteur de Firefox) écrit en Rust et conçu pour tirer parti autant que possible du matériel moderne (multi-cœur) grâce aux fonctionnalités concurrentes de Rust.

  • Présentation du langage: typage statique, sûreté et justesse vérifiés par le compilateur, pointeurs uniques, pointeurs empruntés, tranches de vecteurs, etc.
  • État du projet (pré-1.0)
  • Comment Servo gère les changements dans le langage et la bibliothèque standard.
  • Mon ressenti après avoir travaillé sur Servo et WeasyPrint (Python), deux implémentations des même spécifications CSS.
  • Une suite de tests basées sur des données, et partagée entre plusieurs implémentations.
  • Comment utiliser Rust et Python dans le même programme, avec CFFI
  • Courte introduction à la théorie des types, et aux types algébriques de données.
  • Les types « sommes » sont des « unions taggées » en C, et des enum en Rust. (Plus général que Enum dans la PEP 435.) Pourrait-on avoir quelque chose de similaire en Python ?

Sponsors