Děkuji za moc typ,
valu neznám, a vypadá to hodně dobře, teda gtkmm používám, gtk+ je přeci jen moc hardcore a c# mě nějak z mnoha věcí nevoní, ale co sem si tak o vale přečet, tak to je velmi pěkný způsob jak bez dalších knihoven v paměti psát objektově v GTK+ a dělat přitom nativní binárky.
Máte nějaké zkušenosti, jak moc je ten kód od valy pomalejší proti gtk+ resp. rychlejší proti gtkmm ?
díky za nic...jen více takových reakcí, to určitě pomůže
naštěstí Tomáš Velecký je proti vám jiný frajer...
http://www.root.cz/clanky/zakladni-widgety-v-gtkmm/
Vala se překládá do stejné podoby jako C binárka, je to tedy srovnatelné s C (myslím, že se z valy dá vygenerovat C kód). Navíc rychlost u klasických GUI aplikací není až tak podstatná (např. programy v PyGTK mi subjektivně pomalé nepřijdou).Jinak IMHO Vala vlastně nepřináší nic moc oproti C++ (akorát C# syntaxe). Naopak nepodporuje přetěžování metod a moc nerozumím té použité správě paměti(používá se nějaká forma "chytrého ukazatele"). U menších aplikací to není problém, ale u větších stejně bude nutné to podrobně nastudovat.
JJ, tyto informace sem si našel ;) Generovaný C kód je ale obalen a není to tedy totéž co čistě napsané C, nicméně co sem koukal po nějakých testech, tak to vypadá, že ty binárky jsou o něco rychlejší než c++, a samozřejmě tam chybí ta hromada c++ knihoven.
Co se týče paměti, to samé má python. V podstatě to počítá reference na nějaký objekt, a když už na něj nic neukazuje, tak ho prostě zahodí. Tedy implementované to zřejmě bude jinak, ale idea je jasná. Na přetěžování metod sem zatím nenarazil, to by byla skoro škoda.
Rozhodně ale neplatí, že je určen jen pro grafické programy. Resp. glib knihovnu používá poměrně dost konsolových aplikací, vedle pkg-configu můžu jmenovat např. mc.
V každém případě díky za info.
> Navíc rychlost u klasických GUI aplikací není až tak podstatná (např. programy v PyGTK mi subjektivně pomalé nepřijdou).
Rýchlosť klasických GUI aplikací nie je asi podstaná, ale spotreba batérií v dôsledku použitia Vala vs Python už podstatná je. Ak máte rád Python ako ja, skúste sa pozriet na Genie (http://live.gnome.org/Genie).
> Jinak IMHO Vala vlastně nepřináší nic moc oproti C++ (akorát C# syntaxe).
Vala prináša v skutočnosti omnoho viac. Je to možnosť použitia knižníc/komponent (naprogramovaných vo Vala) v C, teda C kompatibiline ABI. To napríklad neumožňuje kód napísaný v jazykoch ako Java alebo C#. Navyše netreba programovať binding GTK+ do Vala, lebo to rieši prakticky automaticky cez vapi.
> Naopak nepodporuje přetěžování metod a moc nerozumím té použité správě paměti(používá se nějaká forma "chytrého ukazatele").
Preťažovanie metód je často krat matúce. Myslím, že je to svojim spôsobom výhoda Valy prameniaca s obmedzeni GObject type systemu. Rovnako aj pomenované konštruktory vnímam pozitívne z hľadiska prehľadnosti kódu. Automatická správa pamäte sa tiež občas môže hodiť.
Vala je "preprocesor" pro C/GObjects, tj. při kompilaci jsou ze zdrojových kódů Vala generovány zdrojové kódy C, které jsou následovně zkompilovány do binární podoby. Podobný jednodušší nástroj je například GOB.
Rychlost se tedy řídí rychlostí programů v C/GObjects a v tom je napsáno GTK+.