Un p'tit Cappuccino ?

Posté par (page perso) . Modéré par Bruno Michel.
Tags :
13
14
fév.
2010
Technologie
Cappuccino est un framework d'application web open source distribué sous licence LGPL. Il permet de créer des applications web "lourdes" avec gestion de vues, contrôles, tableaux, etc et de créer des interfaces utilisateur graphiquement.

Sa principale particularité est de reprendre complètement les concepts de l'objective-C et NextStep/Cocoa. Les applications Cappuccino sont écrites en Objective-J, qui est au javascript ce qu'est l'objective-C au C : Une petite bibliothèque apportant de puissants concepts objets. Par exemple, Objective-C/Cocoa, on écrirait un tableau comme suit :

NSArray *theArray = [[NSArray alloc] init];
[theArray addObject:anObject];


En Objective-J/Cappuccino :

var theArray = [[CPArray alloc] init];
[theArray addObject:anObject];


Ce qui reviens strictement au même que :

var theArray = [anObject];

(oui c'est plus court à écrire sur le coup, je vous l'accorde)

L'autre énorme avantage de Cappuccino est de permettre d'utiliser Interface Builder (ou Atlas, son équivalent écrit en Cappuccino) pour la création de l'interface. Ainsi il est possible de construire sa GUI graphiquement et d'utiliser le fichier xib ou nib directement dans Cappuccino (après un passage préalable dans une moulinette judicieusement nommée nib2cib, cib étant l'équivalent Cappuccino des fichiers nib/xib).

Je vous invite à regarder les démos, et particulièrement 280Slides. La version 0.8 doit sortir vers la fin du mois.
  • # Intéressant mais

    Posté par . Évalué à 9.

    Joli projet, apparemment puissant (j’ai juste jeté un coup d’œil aux démos), mais je trouve dommage d’encourager le développement d’applications quasiment « tout javascript », qui au final sont super lourdes à exécuter dans le browser (d’ailleurs mon navigateur — Konqueror — n’était pas toujours capable d’interpréter correctement le javascript) et proposent carrément un environnement avec leur propre look & feel à l’intérieur du navigateur.
    • [^] # Re: Intéressant mais

      Posté par (page perso) . Évalué à 2.

      tout dépend du browser. Effectivement cela implique de disposer d'un moteur JS assez péchu. Webkit s'en sort parfaitement, Gecko s'en sort bien, le truc pourri de IE (trident, je crois) rame comme un phoque.

      Après il faut voir comment envisager le futur de web : on reste avec des pages en html statiques (peu importe la façon de les générer) et on envoie des tas de requêtes inutiles à chaque action, ou on permet aux utilisateurs d'utiliser de vraies applis web et de soulager les serveurs. c'est d'ailleurs dans ce genre de cas que prism et autres révèlent tout leur intérêt.
      • [^] # Re: Intéressant mais

        Posté par . Évalué à 1.

        Sous Firefox 3.0, Ubuntu over NX

        Cela fait freezer mon PC, Q6600, pendant 30 sec. Puis 1 sec de retour, puis freeze 30 sec, etc...

        Peut-être un bug avec la technologie NX.
      • [^] # Re: Intéressant mais

        Posté par . Évalué à 2.

        ou on permet aux utilisateurs d'utiliser de vraies applis web et de soulager les serveurs. c'est d'ailleurs dans ce genre de cas que prism et autres révèlent tout leur intérêt.

        Euh, prism n'est-il pas rien d'autre qu'un micro-navigateur destiné à lancer un site dans la propre fenêtre d'un clic ??
    • [^] # Re: Intéressant mais

      Posté par . Évalué à -6.

      Pareil, j'en ai marre du Javascript. Un truc vieux de 10 ans tout pourri qui revient à la mode pour faire clignoter les photos de profils de sites de merde.
      • [^] # Re: Intéressant mais

        Posté par . Évalué à 3.

        En même temps si tu vas sur ces "sites de ..." :D
      • [^] # Re: Intéressant mais

        Posté par (page perso) . Évalué à 8.

        mais ouais! d'ailleurs, pourquoi s'emmerder avec un browser ? un telnet sur le port 80 ça suffit largement. Puis pourquoi s'emmerder avec internet d'ailleurs ? la bibliothèque ça suffit. Et puis pourquoi utiliser la roue ? on peut très bien marcher ou porter à la mano les trucs qu'on veut transporter.

        C'est vrai quoi. La technologie ça sert à que dalle.
  • # un avenir full javascript ?

    Posté par . Évalué à 2.

    Javascript a vraiment la cote en ce moment. Pour ce qui est du web, je viens de voir CouchDB qui permet de se passer d'un serveur web (communication direct du navigateur avec le SGBD CouchDB) et qui se programme avec avec javascript et json. Coté client des bibliothèques comme celle-ci sont très puissante.

    Ensuite Gnome 3 utilise massivement le javascript.

    Comment ça se fait qu'il plait autant ce lanagage ?

    Les logiciels sous licence GPL forcent leurs utilisateurs à respecter la GPL (et oui, l'eau, ça mouille).

    • [^] # Re: un avenir full javascript ?

      Posté par . Évalué à 5.

      Comment ça se fait qu'il plait autant ce langage ?
      Je sais pas s'il plaît, mais je sais que c'est le seul langage dynamique présent sur tous les navigateurs (courants) par défaut.
      • [^] # Re: un avenir full javascript ?

        Posté par . Évalué à 3.

        sauf que c'est rarement exactement le même, et ça tout le monde l'oublie joyeusement
        • [^] # Re: un avenir full javascript ?

          Posté par . Évalué à 2.

          C'est pour ca qu'il y a des frameworks comme jquery ou mootools : ça évite de se casser la tête et ca permet de faire des choses complexes de manière bien plus simple.
      • [^] # Re: un avenir full javascript ?

        Posté par . Évalué à 2.

        Gnome 3 ou CoucheDB ils s'en foutent comme de leur première ligne de code du fait que les navigateurs le supportent ou pas.

        Les logiciels sous licence GPL forcent leurs utilisateurs à respecter la GPL (et oui, l'eau, ça mouille).

    • [^] # Re: un avenir full javascript ?

      Posté par (page perso) . Évalué à 5.

      C'est un langage orienté objet très très souple (utilisation de prototypes au lieu de classes), qui est facile à apprendre, tout en restant léger et relativement performant.

      Il est non typé, il n'embête pas le développeur avec la gestion de la mémoire, de même qu'il n'embête pas le développeur avec des contraintes d'accès (private, public, etc…).

      La syntaxe est proche de celle du C, tout en offrant des choses pratiques.

      Le tout est aussi pensé à la fois pour le débutant que pour le développeur qui aime les choses bien codées.

      Bref, javascript a vraiment tout pour plaire. Après le C++, c'est mon langage de programmation préféré.

      Envoyé depuis mon lapin.

      • [^] # Re: un avenir full javascript ?

        Posté par (page perso) . Évalué à 2.

        Au passage, l'introspection est vraiment amusante en javascript.

        Il est possible de récupérer le code source d'un objet, le modifier à coup d'expressions régulières, et de le réinterpréter à la volée.

        C'est très lent, mais c'est très amusant à mes yeux.

        Envoyé depuis mon lapin.

  • # Le premier avantage

    Posté par . Évalué à 3.

    J'ai du mal à comprendre en quoi on peut être au Javascript ce que l'ObjC est au C: Javascript est déjà un langage objet. Que lui apporte Objective-J en dehors de la syntaxe avec les crochets ?
    • [^] # Re: Le premier avantage

      Posté par . Évalué à 3.

      Javascript est un langage à prototype. La programmation objet y est possible, mais un peu de la même façon qu'elle l'est en C (faisable mais le langage est pas spécialement conçu dans cette optique).

      Dans la documentation ils expliquent que selon eux Javascript avait quelques manques. Ils ont choisi de l'étendre en utilisant la syntaxe de Objective-C parce qu'ils se sont trouvé avec les mêmes problèmes/besoins que les créateurs de Objective-C. En gros ils voulaient étendre la syntaxe Javascript sans la casser, d'où la réutilisation de la même solution.

      L'ajout de la syntaxe à crochet c'est donc surtout pour rajouter du sucre syntaxique autour des fonctionnalités orienté objet qu'ils utilisent. Toutes leurs explications en anglais ici : http://cappuccino.org/discuss/2008/12/08/on-leaky-abstractio(...)
      • [^] # Re: Le premier avantage

        Posté par (page perso) . Évalué à 1.

        et assurer un début compatibilité avec les applications ObjC/Cocoa existantes :)
      • [^] # Re: Le premier avantage

        Posté par (page perso) . Évalué à 1.

        Tu confonds objets et classes. JavaScript est un langage orienté objet. Simplement, au lieu d'être construits à partir de définitions de classes d'objet, comme en Java par exemple, les objets sont construits à partir d'objets existant, appelés prototypes.

        D'autres part il est tout à fait possible d'implémenter un système de classes en JavaScript, comme une couche par dessus le système de prototype. De nombreuses bibliothèques fournissent cela, par exemple Prototype: http://prototypejs.org/learn/class-inheritance
        Nul besoin de créer une nouvelle syntaxe pour cela.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.