The Open Source
Innovation Spring 2019

Qualité logicielle | IoT | Cloud | Big Data | Systèmes d'information

Mars-juin 2019, Paris - Châtillon

Présidence : Roberto Di Cosmo, vice-président du GTLL, directeur de l’Irill, directeur de recherche Inria, Professeur à l’Université Paris-Diderot

Organisé par : logo Systematic & logo IRILL

Retour à l'OSIS

Techniques de programmation web à l'état de l'art

28 Juin 2016 — Techniques de programmation web à l'état de l'art

14h-18h

Jussieu - IRILL, Paris Qualité logicielle

Résumé

Les applications web actuelles sont de plus en plus dynamiques et mélangent un calcul du côté du serveur web (et parfois serveur applicatif ou base de données) et un calcul dans le navigateur. Elles sont donc "multitier" c.à.d. à plusieurs étages.
Pour éviter la complexité intrinsèque de codage d'application multi-programmes, la tendance est de méta-programmer, donc de générer du code différent dans le serveur et le navigateur. Un concept fondateur est la notion de continuations. Le système HOP (et quelques autres) propose un langage unique qui mélange les calculs des deux côtés. Enfin, la tendance se dessine d'inverser le contrôle dans le développement Web, au profit du navigateur.
Cette demi-journée devrait intéresser tout développeur Web, notamment ceux qui sont effrayés par la complexité grandissante du flot de contrôle dans les applications Web.

Direction de programme

Roberto Di Cosmo, IRILL, Inria, UPD et Basile Starynkevitch, CEA List, Laboratoire Sûreté du logiciel

Description détaillée


Programme résumé

  • 14:00: Mot d’accueil : l’OSIS, le GTLL de Systematic et l’IRILL

    Roberto Di Cosmo, président de l'OSIS, professeur à l'Université Paris-Diderot, laboratoires Irif, Irill et Inria

  • 14:05: Introduction : métaprogrammer pour le Web ?

    Basile Starynkévitch, CEA List

  • 14:30: Les continuations et le Web

    Christian Queinnec, LIP6, UPMC

  • 15:15: Mélanger le calcul dans le serveur Web et dans le navigateur

    Manuel Serrano, Inria

  • 16:00: Le client est roi : inversion de contrôle dans le développement web

    Gregory Potdevin, Appcraft.fr

  • 16:30: Développement d'applications multi-plateformes Web et mobiles (Ocsigen)

    Vincent Balat, BeSport et Université Paris-Diderot

Lieu

Jussieu - IRILL

Ville: Paris


Programme détaillé

  • 14:00 - Mot d’accueil : l’OSIS, le GTLL de Systematic et l’IRILL

    Roberto Di Cosmo, président de l'OSIS, professeur à l'Université Paris-Diderot, laboratoires Irif, Irill et Inria

  • 14:05 - Introduction : métaprogrammer pour le Web ?

    Basile Starynkévitch, CEA List

  • 14:30 - Les continuations et le Web

    Christian Queinnec, LIP6, UPMC

    Dans cet exposé, je reviendrai sur la découverte que les continuations permettent d’expliquer les étranges interactions entre le bouton Back des navigateurs et les serveurs. Je terminerai avec la programmation par continuation qui se répand partout, sous des formes variées et notamment en Javascript avec les promesses et les générateurs.

  • 15:15 - Mélanger le calcul dans le serveur Web et dans le navigateur

    Manuel Serrano, Inria

    Hop: a multitier JavaScript !

    Hop is a compliant JavaScript implementation (EcmaScript 5.1, EcmaScript 6 features, Node.js compatibility) and an extended JavaScript. It is multitier (a single code that runs on the client and the server), builtin HTML: native HTML syntax support and multitier dom, with server-side web workers, native websockets.

    It is also a builtin multi-threaded web server.

    Hop programs execute in the context of a builtin web server. They define services, which are super JavaScript functions that get automatically invoked when HTTP requests are received. Functions and services are almost syntactically similar.

  • 16:00 - Le client est roi : inversion de contrôle dans le développement web

    Gregory Potdevin, Appcraft.fr

    Les récentes évolutions des performances des navigateurs et des APIs disponibles amènent à reconsidérer l'architecture des applications web. Historiquement, le serveur contrôlait l'ensemble des données et des calculs et renvoyait un document au client. Ce modèle cède progressivement sa place à de véritables applications dans le navigateur. Il en résulte une inversion de contrôle, le client gérant son propre état et ne sollicitant le serveur qu'en fonction de ses besoins en données (et non plus pour l'affichage et les interactions). Ainsi, l'utilisation de caches 'intelligents' et la génération d'HTML côté client permettent de limiter la charge du serveur. Nous verrons comment le développement en React.js avec Relay d'une part et Searchkit d'autre part permet de transporter le contrôle sur le client.

  • 16:30 - Développement d'applications multi-plateformes Web et mobiles (Ocsigen)

    Vincent Balat, BeSport et Université Paris-Diderot

    Développer une application à la fois sur le Web et sur mobile demande la plupart du temps de multiplier les efforts, ce qui oblige les petites entreprises à faire des choix : se concentrer sur la version Web ou mobile, voire sur une seule plateforme. Ocsigen permet aujourd'hui de développer des applications qui pourront s'exécuter aussi bien sur un site Web, avec des pages générées généralement côté serveur, que sur un mobile, avec des pages générées localement. Les programmes sont entièrement écrits en OCaml, avec des annotations permettant de décider où les calculs doivent être effectués. Les portions de code client sont compilées vers JavaScript pour être exécutées par une Webview ou un navigateur.

Organisateurs et/ou sponsors