Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

: Sortie de Vala 0.1.6

Posté par Émilien Tlapale (page perso, ). Modéré le 20 janvier 2008.
La version 0.1.6 de Vala est sortie ! Vala est un langage de programmation avec une syntaxe fortement inspirée du C# conçu pour l'environnement GNOME. Bien qu'il s'agisse d'un langage de haut niveau, possédant par exemple des patrons de classe, de l'inférence de type ou des fonctions anonymes, il est compilé en C et utilise la bibliothèque GObject de façon standard.

Bien que principalement conçu pour GNOME, le langage Vala est utilisable simplement combiné avec GLib et GObject. Le langage est de plus facilement interopérable avec d'autres bibliothèques écrites en C, pour lesquelles il suffit de créer un fichier VAPI, et utilisable depuis d'autres langages de programmation capable de s'interfacer avec le C.

Cette nouvelle version vient à point combler les manques des versions précédentes en permettant aux méthodes d'objet d'être invoquées par des signaux, en rajoutant le support de la compilation conditionnelle et en autorisant l'imbrication des types génériques.

> Lire la dépêche (132 commentaires, moyenne: 2,5).  

Vous avez demandé le commentaire #897413.

et le langage D alors

Posté par mosfet () le 20/01/2008 à 14:27. (lien). Évalué à 5.

Ils auraient mieux fait de partir d'un langage qui a mon avis va sortir de sa niche dans les années à venir et qui est le langage D. Pour ceux qui ne connaissent pas il s'agit d'un langage décrit par les créateurs comme le descendant du C++ avec une syntaxe s'approchant de Java.
Le code généré est natif mais et possède un garbage-collector.
L'avantage est que le compilateur est un front-end à gcc et qu'il peut donc être disponible sur un grand nombre de plate formes.

  • [^]Re: et le langage D alors

    Posté par Michel Petit (page perso, ) le 20/01/2008 à 14:46. (lien). Évalué à 4.

    Le langage est encore jeune, il faut voir comment il évolue et comment il sera suivi, ceci dit, je garde un œil dessus. Il y a déjà des bindings intéressants (wxWidget par exemple), et il y a déjà 2 compilateurs (dmd, celui de Digital Mars, la société créatrice, et gdc, frontend à gcc). On peut compiler du D sur Mac OSX, Linux, et MS Windows.

    Pour plus d'informations, en vrac :
    http://fr.wikipedia.org/wiki/D_(langage)
    http://www.digitalmars.com/d/dcompiler.html
    http://dgcc.sourceforge.net/

    --
    Errare humanum est

    [^]Re: et le langage D alors

    Posté par Moonz () le 20/01/2008 à 15:15. (lien). Évalué à 6.

    Bon, on va répéter pour ceux au fond qui n'ont pas écoutés:
    Le but est (entre autre) d'être directement et nativement compatible au niveau ABI (et quasi immédiatement au niveau API) avec GObject (c'est un projet Gnome, après tout), même pour le modèle objet. Tu peux m'expliquer comment tu fais ça avec D ? L'ABI de D est très proches de celle du C++, et n'a rien à voir avec celle de Vala/GObject qui est du pur C.

    Pour faire encore plus clair, supposons que je fasse en Vala puis en C++ ou en D une classe Foo avec une méthode bar. Maintenant, je veux appeler cette méthode dans un programme C (disons, pour simplifier, que j'ai déjà une instance f). Si ça a été codé en vala:
    foo_bar(FOO(f)); (fonctionne de la même manière que gtk_window_set_title(GTK_WINDOW(w), "Hello, world"); )
    en C++:
    _ZN3Foo3barEv(f); (je ne l'ai pas inventé, c'est le nom qu'a donné G++ à la méthode...)
    Et encore, ce code dépend de l'ABI C++ du compilateur, et j'ai considéré que la fonction n'était pas virtuelle. Vois tu où se situe Vala, maintenant ?

    Pour rentrer dans le troll, j'avais regardé du côté de D il y a quelques années lorsqu'il venait à peine d'être libéré, et c'était à l'époque assez intéressant. Mais maintenant qu'aujourd'hui on a GCJ, j'ai du mal à voir l'intérêt.

    > L'avantage est que le compilateur est un front-end à gcc et qu'il peut donc être disponible sur un grand nombre de plate formes.
    Vala transformant en code C pour le faire avaler à GCC, je pense qu'on peut difficilement faire plus portable :)

    • [^]Re: et le langage D alors

      Posté par Antoine () le 20/01/2008 à 18:10. (lien). Évalué à 3.

      Pour faire encore plus clair, supposons que je fasse en Vala puis en C++ ou en D une classe Foo avec une méthode bar. Maintenant, je veux appeler cette méthode dans un programme C

      La vraie question, c'est de savoir à quoi ça sert.

      Si Vala (resp. C++) permet de programmer plus sûrement et plus rapidement qu'en C, et qu'il génère du code rapide et compact comme du C, alors il n'y a aucun intérêt à appeler une méthode Vala (resp. C++) depuis du code C plutôt que de directement faire du Vala (resp. C++).

      C'est exactement ce qui se passe pour KDE : en pratique tout le monde se fout que les kdelibs ne soient pas facilement invocables en C. Faire du C/gobject plutôt que n'importe quel langage orienté objet dès l'origine, faut être sérieusement maso.

      • [^]Re: et le langage D alors

        Posté par Bapt (page perso, ) le 20/01/2008 à 20:32. (lien). Évalué à 1.

        l'intérêt est par exemple de pouvoir créer facilement un plugin pour un programme C qui ne supporte pas de binding pour son interface de plugin par exemple. Le tout en utilisant un langage haut niveau.

        • [^]Re: et le langage D alors

          Posté par Gof (Jabber id, page perso, ) le 20/01/2008 à 20:56. (lien). Évalué à 1.

          Là tu parles du fait qu'on puisse utiliser des fonctions C dans un code en Vala.

          Or, ce dont Moonz et Antoine parlaient c'est l'inverse : utiliser des fonctions Vala dans un programme en C.

          --
          :-D !!!NOUVEAU!!!
          • [^]Re: et le langage D alors

            Posté par Bapt (page perso, ) le 20/01/2008 à 23:56. (lien). Évalué à 3.

            Non car c'est mon programme C d'origine qui va faire un dlopen sur ma lib pondue par vala.

        [+] [^]Re: et le langage D alors

        Posté par Mildred (Jabber id, page perso, ) le 20/01/2008 à 20:43. (lien). Évalué à -3.

        Et pour faire du C++, il faut aussi être sérieusement maso.

    [^]Re: et le langage D alors

    Posté par Charles-Victor DUCOLLET () le 20/01/2008 à 15:27. (lien). Évalué à 1.

    sorry, mais moi, on me dis syntaxe java, je fuis !

    (ma memoire aussi, mais ça c'est une autre histoire...)

    • [^]Re: et le langage D alors

      Posté par Antoine () le 20/01/2008 à 18:04. (lien). Évalué à 2.

      Vala a une syntaxe C#-like, ce qui n'est pas très loin d'une syntaxe Java-like...

      [+] [^]Re: et le langage D alors

      Posté par mosfet () le 20/01/2008 à 19:07. (lien). Évalué à -1.

      Ha alors on va dire qu'il a une syntaxe proche du C/C++.
      Ça te plaît plus peut être plus?

      • [^]Re: et le langage D alors

        Posté par Charles-Victor DUCOLLET () le 21/01/2008 à 20:20. (lien). Évalué à 1.

        c'est etrange, mais personnelement, je ne trouve pas la syntaxe java et la syntaxe C++ tres proche... ok, pour les objet, ça se resemble, ok, mais en C++, j'ai pas besoin de faire librarie.math.float.sqrt pour avoir une racine carré !

        bon, ok, après, il parais que les IDE moderne corrige ça de manière souple et agréable.

        • [^]Re: et le langage D alors

          Posté par pw00t () le 22/01/2008 à 09:56. (lien). Évalué à 1.

          La syntaxe java a pas grand chose a voir avec l'appel a la fonction Math.sqrt.

          Cela dit, en c++, tu feras un std::sqrt, ca se ressemble beaucoup quand meme, hein...

    [^]Re: et le langage D alors

    Posté par Christophe Duparquet (page perso, ) le 20/01/2008 à 18:18. (lien). Évalué à 2.

    Ah oui, c'est vrai, le langage D, on l'avait oublié suila : http://linuxfr.org/comments/399822.html#399822

    --
    Christophe Duparquet
    « J'ai pas Word, j'ai pas Windows, et j'ai pas la télé ! »