First off, I think Vala is a good choice, but for a completely different reason than what has been said here. Mono is quite fast, and just because it has a runtime does not mean it can't be.
Remember that mono does JIT your code into native assembly at startup (most tests i've made take between 10-70ms for JIT). Nothing is interpreted like with say python (we will see if that new google project will help by using llvm here). You can also get wins with Regex, and I assume zeitgeist will use those a lot if its trying to analyze files and data. Mono's regex engine can actually JIT your regex's, which happens to be faster than pcre last I read. However, with the exception of Mono 2.4 (i think it made it in the branch), Mono's lock implementation includes timed waits on pthread conditions that wake up every so many milliseconds. So if the target is hardware that may not be running the newest mono (and especially low power) it may not yet be a good choice. Now, the reason I would still say Vala, has to do with interoperability. If we want other applications to take full advantage of zeitgeist, we have 2 common extension possibilities. The first, are extensions from outside of zeitgeist. DBus would work just fine for this, allowing any programming language that supports DBus to provide interaction from outside the process. Mono would work just fine for this obviously. The second, are extensions *within* zeitgeist. This really should be, what I feel, the deciding factor. If you want to allow plugins in a multitude of languages, you need to break down to GObject's most basic parts. This way each binding can interact with the proper data types. For example, I would want to write plugins in python, ruby, js, or c# (and i don't feel ironpython or ironruby are acceptable yet). The only way to do this with mono would be to create those core data types in C, or create a trampoline layer with wrapper methods in C that can be called from language bindings. I doubt anyone would want to maintain this either. Anyway, just my 0.02$ -- Christian On Sat, Apr 4, 2009 at 4:18 AM, Andrea Bolognani <[email protected]> wrote: > On Fri, 03 Apr 2009 21:31:13 -0400 > Jamie McCracken <[email protected]> wrote: > >> Why? >> >> Whilst it has some interesting ideas, its a mere prototype and is by and >> large irrelevant to gnome as it stands (and thats true of gnome-shell as >> well - they are both purely experimental) > > Both the new GNOME Shell and GNOME Zeitgeist are going to be core components > of GNOME 3.0, according to [1]. > >> If the ideas prove worthy it will be rewritten in a non-vm language and >> will likely use tracker which is infinitely more powerful given the >> ability to show all your docs, music, photos as derived from its indexer >> >> I very much doubt an important always on component will be acceptable if >> its coded in a VM - that has been the way with gnome to date and I dont >> see that changing > > I sure hope so. Using Vala would give most of the benefits of C# without > incurring in the same overhead. > > > [1] http://live.gnome.org/ThreePointZero/Plan > -- > Andrea Bolognani <[email protected]> > Resistance is futile, you will be garbage collected. > > _______________________________________________ > Vala-list mailing list > [email protected] > http://mail.gnome.org/mailman/listinfo/vala-list > > _______________________________________________ Vala-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/vala-list
