Le Web bientôt doté d'un nouveau langage ?
CAS s'inspire du CSS pour proposer une définition des attributs des balises HTML dans une feuille

Le , par Hinault Romaric

21PARTAGES

7  0 
Tab Atkins Jr, un représentant de Google au sein du W3C (World Wide Web Consortium) vient de proposer à l’organisme un nouveau langage de script pour normalisation.

Le langage CAS pour Cascading Attribute Sheets s’inspire grandement du CSS (Cascading Style Sheets), à la différence qu’il est basé sur un concept d’attributs HTML.

L’idée de base autour de ce nouveau langage est que tout comme avec le CSS, les développeurs pourront définir dans un fichier des attributs pour les balises HTML, qui seront directement appliqués à l’ensemble d’une page lors de l’appel de ces balises.

Concrètement, le développeur pourra par exemple écrire le code CAS suivant :

Code CSS : Sélectionner tout
1
2
3
4
  
video { 
  preload: metadata; 
}

Lors de l’utilisation de la balise video dans son application Web, l’attribut « preload » sera automatiquement ajouté et sa valeur sera définie à « metadata ».

Un lien vers le fichier CAS doit au préalable être inclus dans la page HTML en utilisant la balise script
Avatar de Lutarez
Membre chevronné https://www.developpez.com
Le 11/09/2012 à 19:55
Citation Envoyé par la.lune Voir le message

Code : Sélectionner tout
<a>Mon lien</a>
Si par exemple ta balise a étant le 3e on peut avoir ceci
Code : Sélectionner tout
1
2
3
4
5
a:nth-child(3){
    href : 'http://google.com';
    class : 'misenforme';
}
Sauf que si une autre personne dans ton équipe "s'amuse" à changer l'ordre de tes liens dans la page, tout tes liens deviennent par conséquent faux. Dans un cas comme celui-ci, je pense que c'est une très mauvaise chose d'utiliser cette techno !
6  0 
Avatar de zeyr2mejetrem
Membre chevronné https://www.developpez.com
Le 11/09/2012 à 16:16
C'est moi ou tous les 2 jours, quelqu'un sort un "nouveau" langage qui doublonne fonctionnellement les existants ??

Franchement, mis à part contribuer à la fragmentation des langages (qui est déjà un bord*l apocalyptique), à quoi sert ce truc ?
4  4 
Avatar de LSMetag
Expert confirmé https://www.developpez.com
Le 12/09/2012 à 11:00
La logique est intéressante :

Séparer les balises html de leur comportement.

Peut être intéressant lorsque l'on a des structures de balises récurrentes.
Comme dit plus haut ça permet d'avoir un standard permettant une fragmentation et une factorisation supplémentaire de son code html.

Indéniablement, c'est un gain de productivité pour le développeur. C'est aussi une simplification des pages HTML. Mais ça risque de nuire à la productivité des personnes qui devront ensuite reprendre son code ou le maintenir.

Je ne sais pas si c'est une très bonne idée.

imaginez qu'on fasse :
Code : Sélectionner tout
<div id = "test1"><input /> <input/></div><div id = "test2"><input/> <input/></div>
puis
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
#test1 input
{
   type="button";
   text="coucou";
   value = "keke";
}

#test2 input
{
   type="text";
   text="coucou";
}
Pas évident de savoir au premier abord quel input correspond à tel composant.
4  0 
Avatar de grunk
Modérateur https://www.developpez.com
Le 11/09/2012 à 14:20
Rien que pour avoir des pages HTML qui vont à l'essentiel , ca pourrait être sympa.

D'un autre coté j'ai du mal à voir combien de fois on a besoin d'attributs qui pourraient être mutualisés dans une fichier à part ?

Parce que si c'est pour ecrire

Code : Sélectionner tout
<a id="lelien">Mon lien</a>
Code : Sélectionner tout
1
2
3
4
#lelien {
    href : 'http://google.com';
    class : 'misenforme';
}
Ca présente quand même pas beaucoup d'intérêt.
3  1 
Avatar de la.lune
Membre chevronné https://www.developpez.com
Le 11/09/2012 à 18:09
Citation Envoyé par grunk Voir le message

Parce que si c'est pour ecrire

Code : Sélectionner tout
<a id="lelien">Mon lien</a>
Code : Sélectionner tout
1
2
3
4
#lelien {
    href : 'http://google.com';
    class : 'misenforme';
}
Ca présente quand même pas beaucoup d'intérêt.
D'abord le facteur important ça permettra de factoriser plusieurs attributs qui sont les même dans plusieurs balise. et ça c'est un +10.

D'autre part toute personne ayant fait du html5 sait très bien que les balises sont trop long parce que les attributs sont nombreux alors du coup on a un gain et modularise nos attributs aussi.

Et pourquoi pas comme ça :

Code : Sélectionner tout
<a>Mon lien</a>
Si par exemple ta balise a étant le 3e on peut avoir ceci
Code : Sélectionner tout
1
2
3
4
5
a:nth-child(3){
    href : 'http://google.com';
    class : 'misenforme';
}
N'est ce pas un gain et au cas ce même lie repète dans d'autre balise. En tout cas je dis oui pour ce projet et merci pour la personne ayant réfléchi sur ça +100
3  0 
Avatar de xurei
Membre averti https://www.developpez.com
Le 12/09/2012 à 11:11
Citation Envoyé par LSMetag Voir le message
La logique est intéressante :

Séparer les balises html de leur comportement.

Peut être intéressant lorsque l'on a des structures de balises récurrentes.
Comme dit plus haut ça permet d'avoir un standard permettant une fragmentation et une factorisation supplémentaire de son code html.

Indéniablement, c'est un gain de productivité pour le développeur. C'est aussi une simplification des pages HTML. Mais ça risque de nuire à la productivité des personnes qui devront ensuite reprendre son code ou le maintenir.

Je ne sais pas si c'est une très bonne idée.

imaginez qu'on fasse : <div id = "test1"><input /> <input/></div><div id = "test2"><input/> <input/></div>
puis
#test1 input
{
type="button";
text="coucou";
value = "keke";
}

#test2 input
{
type="text";
text="coucou";
}

Pas évident de savoir au premier abord quel input correspond à tel composant.
Tu peux faire les mêmes crasses en CSS ou en JS. C'est au développeur de garder son code propre.

Pour moi, déterminer si un nouveau langage est source de mauvaises pratiques est une question sans intérêt, car la réponse est triviale : OUI, quel que soit le langage, et encore plus probablement s'il est jeune, il est possible de mal l'utiliser et de rendre son code encore pire que si on ne l'avait pas utilisé.

Par contre, la rétro-compatibilité me semble plus gênante. Ce qui implique que le langage sera utilisé dans un premier temps côté code source et moins côté code exécuté.
3  2 
Avatar de Kamule
Futur Membre du Club https://www.developpez.com
Le 11/09/2012 à 13:53
Un nouveau moyen de mutualiser les déclarations c'est toujours bon à prendre. Ca risque en plus de faciliter la mise en cache de ce genre de données.
Et comme dit dans l'article, c'est très proche du CSS, donc facile à ajouter aux navigateurs. Par contre, un moyen simple de gérer la compatibilité avec les anciens navigateurs ?
2  0 
Avatar de Zefling
Membre expert https://www.developpez.com
Le 12/09/2012 à 9:18
Si c'est aussi simple que du CSS, ça va vraiment faciliter le « responsive design » et le support conditionnel. Mais bon, s'il n'y pas de changement en live l'intérêt est tout de même moindre. En l'état actuel, j'y vois assez peu de réel intérêt si ce n'est de faire du sur-templeting et finalement compliquer les choses.
2  0 
Avatar de sekaijin
Expert éminent https://www.developpez.com
Le 13/09/2012 à 7:52
je suis moi aussi assez septique.
un des pb du développement web est justement la multiplication des langages

la norme W3C HTML5 à contrairement au versions antérieures normalisé le DOM et non le source

dans XHTML et HTML 4<= le W3C normalisait le source HTML et définissait la façon dont le langage devait être interprété pour donner un DOM

dans HTML5 on a normaliser le DOM et le code source n'est définit que comme une sérialisation possible parmis d'autre.

le but était de permetre l'émergence d'autre forme de sérialisation
on a dans les Groupe de travail beaucoup parlé de chose comme JSON, CSS, XML, ??

ce côté de la norme est resté en l'état car justement trop de langages en ajouter un impliquais un moteur d'interprétation de plus dans les navigateurs.
mais les quelques labo à s'être penché sur le sujet y voyait l'opportunité de proposer un langage unique regroupant structure du document (HTML) Style (CSS) Comportement (Javascript)

cette proposition n'apporte pas grand chose au moulin. elle ne vas pas assez loin et n'apporte pas grand chose.
par exemple avoir dans le même esprit un seul langage qui fait tout à la CSS pour reprendre l'exemple donné plus haut
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{DOCTYPE html}
html {
    head {
        style {
            div {
                class working;
            }
            .working {
                color: red;
            }
        }
    }
    body {
        div {Hello World !}
    }
}
cela pourait effectivement en se penchant dessus avoir des vertues. mais embarquer un Nieme langage qui ne traite qu'une infime partie des choses me parait peut souhaitable.
A+JYT
2  0 
Avatar de djibster
Candidat au Club https://www.developpez.com
Le 13/09/2012 à 11:33
Dans le cadre de l'avènement du web of Data (appelé plus communément le web 3.0) cette mutualisation pourra être utile. Pour un affichage web cela ne le sera surement pas autant, mais dans le cadre de l'échange invisible d'un grand nombre de fichiers xml de données, la mutualisation des attributs de balises xml sur des DTD genre Dublin Core ou Mets, ça réduirait énormément le volume de données à envoyer.
Juste dans la logique suite des choses.
Ouvrez un serveur OAI et vous en comprendrez l'indéniable utilité.
2  1 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web