Nil (./1324) :
Tiens, tant qu'on en est là-dedans... je suis en train d'essayer de faire des classes d'objets PHP qui me permettraient d'éviter d'avoir à gérer plusieurs niveau de langage (css, html, javascript) et faire que tout soit fait directement en PHP. Avant que je réinvente la roue, est-ce que vous savez si ça existe déjà ?
GWT et opa ont déjà été cité, sinon j’ai découvert récemment
ça, c’est un projet permettant d’écrire du Javascript avec un DSL interne en Scala.
Mais sinon, je ne pense pas qu’il soit vraiment souhaitable de tendre vers un modèle de développement dans un seul langage tel que PHP. En fait l’utilisation de plusieurs langages prend du sens quand chacun sert à gérer des préoccupations différentes. Si tout ce qui concerne le visuel du site est géré par mon CSS, ça ne me dérange pas d’avoir à écrire du CSS, surtout qu’au final c’est plutôt un langage très pratique pour définir l’aspect visuel du contenu (bon il reste encore quelques lacunes, comme la possibilité de définir des mixins, mais on peut y remédier en passant par un système comme LESS). De même, HTML est adapté pour décrire le contenu de mes pages (même si, là encore, il est possible d’écrire un code moins verbeux avec HAML). Enfin, Javascript a aussi sa place pour gérer tous les aspects dynamiques de la page, même si c’est un langage mal foutu et non typé statiquement (mais là encore on peut contourner certaines limitations en utilisant CoffeeScript).
En fait, je ne vois aucun inconvénient à utiliser un langage spécifique pour chaque domaine spécifique de mon application Web. Après, si en changeant l’aspect visuel d’un composant je dois toucher mon Javascript, mon HTML et mon CSS c’est qu’il y a un problème. Il faut essayer de limiter au maximum les couplages entre le HTML, le CSS et le Javascript pour pouvoir tirer au maximum de leurs possibilités respectives. Sinon, avec ton modèle de développement, ton générateur de code à partir d’objets PHP se restreindra à un sous-ensemble probablement trop limité de CSS, Javascript et HTML.