Un professeur d’informatique du MIT a dévoilé un nouveau langage destiné à faciliter et sécuriser la programmation Web.

UrWeb 2Pourquoi faut-il inventer de nouveaux langages de programmation, notamment pour le Web ? Tout simplement par ce que l’on appelait à ses débuts le World Wide Web a évolué d’une simple plate-forme de diffusion de document statique vers une architecture à programmation distribuée, explique l’inventeur du langage de programmation baptisé Ur/Web, Adam Chlipala, professeur au département Douglass Ross[1] Carrer Development du MIT dans le document (Ur/Web: A Simple Model for Programming the Web) qu’il vient de présenter à l’Association for Symposium Computing Machinery . Cette évolution, largement non planifiée, s’appuie sur une interconnexion de langages et de protocoles que toute application doit gérer et supporter.

Objet composite, une page Web est le résultat d’un certain nombre d’éléments en interaction, comme des feuilles de style en cascade (CSS), le code HTML, les requêtes de base de données ad hoc, et des fonctions JavaScript. Garantir une interaction optimale de ces éléments est une mission importante pour un développeur web, mais peut-être aussi une tâche fastidieuse.

Le langage Ur/Web permet aux applications Web d’être développées comme des programmes exécutables. Le compilateur du langage, le programme qui convertit les instructions de haut niveau en code machine exécutable, génère automatiquement le code XML et les spécifications de feuille de style correspondantes et intègre le JavaScript et le code base de données dans les emplacements appropriés. Ur/Web permet de coordonner automatiquement les interactions entre les composants des pages web.

Une carte d’Amérique Latine développée en Ur/Web
UrWeb 1
Ur/Web rend non seulement les applications Web plus faciles à développer, mais encore plus sécurisées. Dans le communiqué présenté par le MIT, Adam Chlipala donne un exemple simple sur les problèmes posées par la situation actuelle. « Vous souhaitez intégrer un widget calendrier sur votre page Web, et vous allez utiliser une bibliothèque qui fournit le widget et sur la même page il y a aussi une bannière de publicité qui est basée sur du code fourni par le réseau publicitaire. Dans un tel contexte, vous ne voulez pas que le réseau publicitaire puisse modifier la façon dont fonctionne le calendrier ou que l’auteur du code du calendrier puisse interférer avec les annonces. » Ur/Web interdit automatiquement ce genre d’accès non autorisés entre les éléments d’une page.

La capacité d’Ur/Web à assurer, à la fois, une protection de sécurité et de coordonner des technologies Web disparates découle de deux propriétés qu’il partage avec la plupart des langages de programmation comme C ++ ou Java.

La première est qu’il est « fortement typé [2]» Cela signifie que toute nouvelle variable que définit un programmeur à Ur/Web est limitée à un type de données particulier. De même, toute spécification d’une nouvelle fonction doit inclure le type des données affectées à la fonction et le type de données qu’elle retourne.
La seconde propriété concerne la portée[3] (scope). Dans le calcul de la valeur de retour, la fonction peut avoir besoin de créer des variables intermédiaires. Mais ces variables sont inaccessibles au reste du programme. Ur/Web limite la portée des variables définies dans les fonctions.

 

Quelques applications Web développées en Ur/Web

Application URL Développeur
BazQux Reader http://www.bazqux.com/ Vladimir Shabanov
Big Map of Latin America http://map.historyisaweapon.com/ Daniel Patterson
Bitcoin Merge Mining Pool http://mmpool.org/ Chris Double
Bitparking Namecoin Exchange http://exchange.bitparking.com/ Chris Double
Ecosrv http://ecosrv.hit.msk.ru/ Sergey Mironov
Logitext http://logitext.mit.edu/ Edward Z. Yang

 

 

Les principaux langages de script
La programmation côté client utilise des langages de scripts. À la différence d’autres langages de programmation, ces langages ne sont pas compilés. Ils sont interprétés par le navigateur web et leur syntaxe est moins stricte que celle des langages de programmation.
– JavaScript est le plus utilisé des langages de programmation web côté client. Il est reconnu par tous les navigateurs (dans les versions actuelles)..
– JScript, est une adaptation du JavaScript par Microsoft.
– VBScript est le langage de script développé par Microsoft sur base du Visual Basic. Ce langage n’est interprété que par les navigateurs Microsoft
– DHTML n’est pas un langage de script mais simplement la combinaison, dans une page web, de JavaScript, de HTML 4 ou de XHTML et de CSS.

___________
[1] Douglas Taylor « Doug » Ross (21 December 1929 – 31 January 2007) was an American computer scientist pioneer, and Chairman of SofTech, Inc.[1] He is most famous for originating the term CAD for computer-aided design, and is considered to be the father of Automatically Programmed Tools (APT) a language to drive numerically controlled manufacturing.

[2] Typage Fort : En informatique, un langage de programmation est dit fortement typé lorsqu’il garantit que les types de données employés décrivent correctement les données manipulées. Par opposition, un langage sans typage fort peut être faiblement typé, ou pas du tout typé (mais en pratique ce n’est jamais le cas). [Source : Wikipedia]

[3] En informatique, la portée (scope en anglais) d’un identifiant est l’étendue au sein de laquelle cet identifiant est lié. Cette portée peut être lexicale ou dynamique. [Source : Wikipedia]