A právě pro tyto účely je zde nový jazyk Genie. Svojí syntaxí a jednoduchostí připomíná Python, Boo nebo D. Očekávejte tedy snadno naučitelnou syntaxi, čistý zápis bez přebytečných závorek (ano odsazování ve stylu Pythonu) a stoprocentní komatibilitu s Valou. A kde že Genie seženete? Pokud máte nainstalovaný kompilotár Vala, máte automaticky i Genie. Je to jen jiná syntaxe pro úplně to samé. Klasická ukázka:
[indent=2]
init
print "Hello World"
Kompilace pak:
$ valac hello.gs
$ ./hello
Snadné, že? Ale proč vlastně nepoužít rovnou Python? Inu Geni je podobně jako Vala kompilovaný jazyk. Vytvořená Hello World binárka má pár kilobajtů. Jako byste ji napsali v jazyce C. Žádný runtime. Žádný garbage collector.
Genie si ovšem zachovává všechny výhody, jako má Vala. Například odvozování typů.
var i = 3
var
a = "happy"
b = "sad"
c = "ambivalent"
for var I = 1 to 10
print "looping"
Líbí se vám ve Vale kontrola na null? Genie ji má taky.
def fn_allow_nulls (string? param) : string?
return param
Genie má podobně jako Vala ukazatele, takže paměť můžete spravovat i sami. Někdy je to holt potřeba - když například použijete knihovnu z jazyka C, která vyžaduje práci s ukazateli.
Práce s objekty je snadná.
class Foo : Object
prop a : int
init
print "foo is intitialized"
final
print "foo is being destroyed"
/* only class properties may be set in creation methods */
construct (b : int)
a = b
/* only class properties may be set in creation methods */
construct with_bar (bar : int)
a = bar
Genie umí rozhraní, vlastnosti (properties), signály, delegáty, stukruty, výčty, výjimky. Genie má vše. Můžete jej používat už dnes.
Těším se, až se překladač jazyka Vala dostane do verze 1.0 a stabilizuje se API/ABI. Odhaduji, že se Vala/Genie začnou raketově rozšiřovat.