{"id":243,"date":"2008-11-11T01:56:22","date_gmt":"2008-11-10T23:56:22","guid":{"rendered":"http:\/\/ban.free-h.net\/?p=12"},"modified":"2008-11-11T01:56:22","modified_gmt":"2008-11-10T23:56:22","slug":"petite-presentation-de-vala","status":"publish","type":"post","link":"https:\/\/ban.netlib.re\/blog\/petite-presentation-de-vala\/","title":{"rendered":"Petite pr\u00e9sentation de Vala"},"content":{"rendered":"<p><a lang=\"en\" href=\"http:\/\/live.gnome.org\/Vala\">Vala<\/a> est un langage de programmation assez r\u00e9cent (2006) visant \u00e0 simplifier l&rsquo;\u00e9criture de programmes en C avec la biblioth\u00e8que <a lang=\"en\" href=\"http:\/\/library.gnome.org\/devel\/gobject\/unstable\/index.html\">GObject<\/a> en fournissant une surcouche compl\u00e8te au C ; en utilisant une syntaxe proche de celle du C#.<br \/>\nLe programme Vala sera traduit en C avant d&rsquo;\u00eatre compil\u00e9 par un compilateur C standard, le code r\u00e9sultant \u00e9tant du C pur utilisant uniquement un lot de biblioth\u00e8ques suppl\u00e9mentaires.<br \/>\nCependant, Vala n&rsquo;est pas vraiment un pr\u00e9processeur C puisque il va bien au del\u00e0 de l&rsquo;automatisation de l&rsquo;\u00e9criture des classes GObject : il fournit une syntaxe orient\u00e9e objet compl\u00e8te et une gestion de la m\u00e9moire automatique <em>via<\/em> le compte de r\u00e9f\u00e9rence des objets.<\/p>\n<p>L&rsquo;avantage majeur de Vala par rapport \u00e0 d&rsquo;autres langages orient\u00e9s objet connus comme le C#, Java ou m\u00eame le C++ est de n&rsquo;\u00eatre qu&rsquo;une \u00ab fa\u00e7on d&rsquo;\u00e9crire du C \u00bb : l&rsquo;ABI est enti\u00e8rement compatible avec le C. Un autre avantage est une rapidit\u00e9 proche de celle du C pur, bien que la gestion automatique de la m\u00e9moire <em>via<\/em> le compte de r\u00e9f\u00e9rences et l&rsquo;impossibilit\u00e9 d&rsquo;effectuer certaines optimisations manuelles freine un peu le programme, mais pas de fa\u00e7on significative en g\u00e9n\u00e9ral.<br \/>\nDe plus, de par sa compatibilit\u00e9 binaire avec le C, il n&rsquo;est pas \u00e9tonnant d&rsquo;apprendre qu&rsquo;un assez grand nombre de biblioth\u00e8ques sont disponibles pour Vala, rendant ce langage tout \u00e0 fait viable.<\/p>\n<p>Comme Vala est traduit en C, il est int\u00e9ressent de remarquer qu&rsquo;il est tout \u00e0 fait possible de combiner des parties \u00e9crites en Vala et d&rsquo;autres en C au sein d&rsquo;un m\u00eame programme, et m\u00eame d&rsquo;un m\u00eame objet binaire. De plus, le code g\u00e9n\u00e9r\u00e9 a une API propre, semblable \u00e0 la plupart des biblioth\u00e8ques bas\u00e9es sur GObject, le rendant parfaitement utilisable au sein d&rsquo;un code C.<br \/>\nLe plus int\u00e9ressent \u00e9tant bien s\u00fbr de programmer certaines parties sensibles directement en C et de cr\u00e9er une interface pour Vala, chose assez ais\u00e9e <em>via<\/em> les fichiers d&rsquo;API Vala (.vapi).<\/p>\n<p>Du c\u00f4t\u00e9 obscur, Vala souffre encore de quelques imperfections de jeunesse, comme un manque de documentation pour certaines choses.<br \/>\nDe plus, je ne pense pas que soit actuellement un langage de premier choix pour quelqu&rsquo;un ne connaissant pas le C (il ne tirera pas partie des avantages de compatibilit\u00e9 de Vala) et voulant simplement un langage proposant une syntaxe orient\u00e9e objet\u00a0; car les principaux avantages de Vala se situent justement dans sa compatibilit\u00e9 avec le C et sa rapidit\u00e9.<\/p>\n<h3>Quelques liens<\/h3>\n<ul>\n<li><a lang=\"en\" href=\"http:\/\/live.gnome.org\/Vala\">Page officielle de Vala sur GNOME Live!<\/a><\/li>\n<li><a lang=\"en\" href=\"http:\/\/live.gnome.org\/Vala\/Tutorial\">Tutoriel Vala officiel<\/a><\/li>\n<li><a lang=\"fr\" href=\"http:\/\/nicolasj.developpez.com\/gtk\/vala\/\">Petite introduction \u00e0 Vala sur D\u00e9veloppez.com<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Vala est un langage de programmation assez r\u00e9cent (2006) visant \u00e0 simplifier l&rsquo;\u00e9criture de programmes en C avec la biblioth\u00e8que GObject en fournissant une surcouche compl\u00e8te au C ; en utilisant une syntaxe proche de celle du C#. Le programme Vala sera traduit en C avant d&rsquo;\u00eatre compil\u00e9 par un compilateur C standard, le code &hellip; <a href=\"https:\/\/ban.netlib.re\/blog\/petite-presentation-de-vala\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Petite pr\u00e9sentation de Vala<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,6],"tags":[11,12,19,24],"class_list":["post-243","post","type-post","status-publish","format-standard","hentry","category-informatique","category-logiciels-libres","tag-glib","tag-gnome","tag-programmation","tag-vala"],"_links":{"self":[{"href":"https:\/\/ban.netlib.re\/blog\/wp-json\/wp\/v2\/posts\/243","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ban.netlib.re\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ban.netlib.re\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ban.netlib.re\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ban.netlib.re\/blog\/wp-json\/wp\/v2\/comments?post=243"}],"version-history":[{"count":0,"href":"https:\/\/ban.netlib.re\/blog\/wp-json\/wp\/v2\/posts\/243\/revisions"}],"wp:attachment":[{"href":"https:\/\/ban.netlib.re\/blog\/wp-json\/wp\/v2\/media?parent=243"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ban.netlib.re\/blog\/wp-json\/wp\/v2\/categories?post=243"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ban.netlib.re\/blog\/wp-json\/wp\/v2\/tags?post=243"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}