{"id":2049,"date":"2011-02-17T20:42:47","date_gmt":"2011-02-17T18:42:47","guid":{"rendered":"http:\/\/www.final-memory.org\/?p=2049"},"modified":"2011-02-17T20:42:47","modified_gmt":"2011-02-17T18:42:47","slug":"vala-eine-weitere-objektorientierte-programmiersprache","status":"publish","type":"post","link":"https:\/\/www.final-memory.org\/?p=2049","title":{"rendered":"Vala: eine weitere objektorientierte Programmiersprache?"},"content":{"rendered":"<p>Vor einigen Tagen stolperte ich \u00fcber einen Artikel bei Pro-Linux, in dem die mir bis dato unbekannte Programmiersprache <strong>Vala<\/strong> vorgestellt wurde. Zun\u00e4chst dachte ich mir in etwa &#8220;Was soll dieser Unsinn? Es gibt doch Java, C# oder C++.&#8221; Dann habe ich mich ein wenig in die Dokumentation eingelesen.<\/p>\n<p>Die Sprache entstand, um f\u00fcr den <a href=\"http:\/\/www.gnome.org\/\" target=\"_blank\">GNOME Desktop<\/a> performant, aber objektorientiert entworfene Software programmieren zu k\u00f6nnen, ohne alle die n\u00f6tigen Features von Hand in C realisieren zu m\u00fcssen. GLib und GTK setzen schlie\u00dflich zum Leidwesen einiger Leute auf C und nicht C++ auf. Vala soll diese L\u00fccke f\u00fcllen. Die Sprache f\u00fchlt sich auf den ersten Blick an wie C# oder Java, aber der erzeugte Code ist kein Bytecode oder dgl. Intern erzeugt Vala reinen ANSI C Code, der lediglich die Glib verwendet, um die objektorientierten Features zu realisieren.<\/p>\n<p><strong>Vala bietet die folgende Features:<\/strong><\/p>\n<ul>\n<li>\u00dcbersetzung nach C Code (daher ist das Ergebnis portabel und auf Wunsch auch ohne Vala Compiler \u00fcbersetzbar, denn die C Files k\u00f6nnen erzeugt werden)<\/li>\n<li>Zugriff auf viele wichtige APIs, unteranderem ALSA, GTK und SDL (vgl auch <a href=\"http:\/\/live.gnome.org\/Vala\/BindingsStatus\">http:\/\/live.gnome.org\/Vala\/BindingsStatus<\/a>)<\/li>\n<li>C# \u00e4hnliche Syntax<\/li>\n<li>ordentliche String Klasse und Verkettung<\/li>\n<li>freie Software<\/li>\n<\/ul>\n<p>Mich hat das soweit \u00fcberzeugt, da\u00df ich auch gleich ein paar Testprogramme ausprobiert habe. Ich muss sagen, sowohl der Ansatz, als auch die Sprache selbst gefallen mir sehr gut. Die Nachteile von C# und Java werden ausgeglichen und man gewinnt den Vorteil, theoretisch mit Vala entwickelte Software auch auf Targets zu bringen, die nur einen C Compiler bieten, etwa Embedded Systems auf ARM Basis (Wiz, Caanoo und Dingoo lassen gr\u00fc\u00dfen)<\/p>\n<p>Nat\u00fcrlich w\u00e4re ich auch neugierig, ob man damit sogar Code f\u00fcr kleine 8Biter erzeugen kann. F\u00fcr AVR m\u00fcsste es m\u00f6glich sein, wenn man eine m\u00f6glichst abgespeckte GLib bereitstellt (API-kompatibel) und nicht s\u00e4mtliche Sprachfeatures ausreizt.<\/p>\n<p>Ich werde mich jedenfalls, wenn auch nicht im riesigen Umfang, zuk\u00fcnftig ein wenig mit Vala befassen.<\/p>\n<p><strong>Linksammlung<\/strong><\/p>\n<ul>\n<li>Vala Projektseite bei GNOME LIVE: <a href=\"http:\/\/live.gnome.org\/Vala\">http:\/\/live.gnome.org\/Vala<\/a>\/<\/li>\n<li>Artikel bei Pro-Linux: <a href=\"http:\/\/www.pro-linux.de\/artikel\/2\/1486\/programmieren-mit-vala.html\">http:\/\/www.pro-linux.de\/artikel\/2\/1486\/programmieren-mit-vala.html<\/a><\/li>\n<\/ul>\n<div id=\"facebook_like\"><iframe src=\"http:\/\/www.facebook.com\/plugins\/like.php?href=https%3A%2F%2Fwww.final-memory.org%2F%3Fp%3D2049&amp;layout=standard&amp;show_faces=true&amp;width=500&amp;action=like&amp;font=segoe+ui&amp;colorscheme=light&amp;height=80\" scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:500px; height:80px;\" allowTransparency=\"true\"><\/iframe><\/div>","protected":false},"excerpt":{"rendered":"<p>Vor einigen Tagen stolperte ich \u00fcber einen Artikel bei Pro-Linux, in dem die mir bis dato unbekannte Programmiersprache Vala vorgestellt wurde. Zun\u00e4chst dachte ich mir in etwa &#8220;Was soll dieser Unsinn? Es gibt doch Java, C# oder C++.&#8221; Dann habe ich mich ein wenig in die Dokumentation eingelesen. Die Sprache entstand, um f\u00fcr den GNOME &hellip; <a href=\"https:\/\/www.final-memory.org\/?p=2049\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Vala: eine weitere objektorientierte Programmiersprache?&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34,76,57,35,75],"tags":[97],"class_list":["post-2049","post","type-post","status-publish","format-standard","hentry","category-34","category-ansi-c","category-avr","category-mikrocontroller","category-vala","tag-vala"],"_links":{"self":[{"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/posts\/2049","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2049"}],"version-history":[{"count":6,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/posts\/2049\/revisions"}],"predecessor-version":[{"id":2055,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/posts\/2049\/revisions\/2055"}],"wp:attachment":[{"href":"https:\/\/www.final-memory.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2049"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2049"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}