Re: [Vala] Zeitgeist porting



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 <eof kiyuko org> wrote:
On Fri, 03 Apr 2009 21:31:13 -0400
Jamie McCracken <jamie mccrack googlemail com> 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 <eof kiyuko org>
Resistance is futile, you will be garbage collected.

_______________________________________________
Vala-list mailing list
Vala-list gnome org
http://mail.gnome.org/mailman/listinfo/vala-list





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]