Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Ur/Web : un langage pour faciliter la programmation web
Et développer des applications plus sécurisées, conçu par un professeur du MIT

Le , par Michael Guilloux

20PARTAGES

2  0 
Une page Web aujourd'hui 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.

Dans un document présenté à l’ « Association for Symposium Computing Machinery » sur les principes des langages de programmation, Adam Chlipala, professeur de technologie logicielle, a décrit un nouveau langage de programmation, appelé Ur/Web.

Ce nouveau langage 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.

Selon Chlipala, Ur/Web rend non seulement les applications Web plus faciles à développer, mais encore plus sécurisées.
« Disons que vous voulez avoir un gadget calendrier sur votre page web, et vous allez utiliser une bibliothèque qui fournit le gadget et sur la même page il y a aussi une boîte de publicité qui est basée sur le code qui est fourni par le réseau publicitaire », a déclaré Chlipala. « Ce que vous ne voulez pas, c'est que le réseau publicitaire soit en mesure de changer 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é.» 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.

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. C'est la deuxième propriété, connue comme « la portée des variables». Ur/Web limite la portée des variables définies dans les fonctions.

Source : MIT News

Et vous ?

Que pensez-vous du nouveau langage de programmation web ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de polaroid62
Membre habitué https://www.developpez.com
Le 26/12/2014 à 13:06
L'objectif semble être le même que Ocsigen ou le langage Opa d'ailleurs mentionnés dans ce document http://adam.chlipala.net/papers/UrWe...rWebPOPL15.pdf
0  0 
Avatar de oxedet
Membre habitué https://www.developpez.com
Le 29/12/2014 à 12:05
Bon nombre de développeurs ne jurent que par les approches MVC. Or, à la première lecture du langage, on constate une démarche totalement inverse : on veux tout intégrer en une seule écriture, je me trompe ?
0  0