• A la une
  • Catégories
  • Dossiers
  • +

Inspiration pour les intégrateurs #71 : La puissance du CSS

par Benjamin SANCHEZle 07/07/2016

Aujourd'hui, les inspirations pour intégrateurs vous prouvent que le CSS est un langage complexe et qu'il n'a pas grand-chose à envier au Javascript !

Disgression : le CSS, un langage de programmation ?

Le CSS est-il un langage de programmation ? Cette question est bien plus complexe que l'on pourrait le penser. Pour tenter d'y répondre, penchons-nous sur la définition de langage de programmation.

Un langage de programmation est construit à partir d'une grammaire formelle, qui inclut des symboles et des règles syntaxiques, auxquels on associe des règles sémantiques. Ces éléments sont plus ou moins complexes selon la capacité du langage. Les modes de fonctionnement et de définition de la complexité d'un langage de programmation sont généralement déterminés par leur appartenance à l'un des degrés de la Hiérarchie de Chomsky.

Sous un angle théorique, tout langage informatique peut être qualifié de langage de programmation s'il est Turing-complet c'est-à-dire qu'il permet de représenter toutes les fonctions calculables au sens de Turing et Church (en admettant néanmoins pour exception à la théorie que la mémoire des ordinateurs n'est pas un espace infini).

Wikipedia

D'après cette définition, il est nécessaire pour un langage informatique d'être Turing complète, c'est-à-dire être capable de représenter toutes les fonctions calculables, qu'il a au moins la puissance d'une machine de Turing, et qu'il hérite des problématiques des machines de Turing, en particulier le fait que le problème de l'arrêt est indécidable (c'est-à-dire que la machine de Turing ne peut pas détecter qu'elle a planté, vu qu'elle est plantée).

Pour ce qui est du CSS, il est possible de programmer un Automate cellulaire rule 110 en CSS et HTML, comme le montre cet exemple (qui n'est pas tout à fait autonome, il demande l'aide de l'utilisateur pour passer d'une state à une autre). Il a ete demontre que Rule 110 est Turing complete, nous pourrions donc considérer que CSS + HTML est Turing complète, mais ça serait ignorer la dernière portion de la définition avec la regle d'arrêt, qui fait clairement débat. Si le sujet vous intéresse, je vous propose la lecture de cette page Stack-overflow, argumentée et avec quelques exemples http://stackoverflow.com/questions/2497146/is-css-turing-complete.

Dans tous les cas, que le CSS soit ou ne soit pas un langage de programmation ne l'empêche pas d'être clairement impressionnant ! Pour appuyer mes dires, je vous propose de découvrir les exemples suivants, utilisant du CSS à la place du Javascript utilisé habituellement, ainsi que la liste suivante : You Dont Need Javascript

Évidemment, ces exemples restent des amusements et pour la plupart ne doivent pas entrer dans vos projets en production ! Le CSS à un moins bon support que le Javascript et est plus complexe a debugger et à tester.

Des interactions sans Javascript

Attention avec ce premier exemple, il possède du son et de la musique. Veillez donc à bien couper vos enceintes avant de le lancer !

 

 

 

 

 

 

 

 

 

 

 

Des illustrations sans images, que du CSS !

 

 

 

 

 

 

  • Partager l'article en 1 clic !

    N'hésitez pas à aider le BlogDuWebdesign
Avatar_thumbAuteur : Benjamin voir son blog

Développeur autodidacte depuis quelques années, déjà, je suis le développeur du blog du webdesign, où mon rôle est de concretiser les différentes idées et maquettes.

Devenez membre !

Rejoignez la communauté des créatifs du web !
- Partagez vos créations
- Gagnez en visibilité
- Créez votre blog facilement
> En savoir plus

Créer mon compte
twitter birdtwitter birdtwitter birdtwitter birdtwitter bird
twitter bird
Ouvrir