Beta release of the Java implementation of dbus
alp at atoker.com
Tue Jan 2 11:43:46 PST 2007
Havoc Pennington wrote:
> I do find it odd that both of you guys are implementing the float type,
> and nobody has ever proposed it on the list.
> FWIW the rationale for omitting float is that I rarely if ever see float
> in a program, because single-precision floats don't have enough
> precision for most uses. Pretty much nobody uses single-precision float
> unless performance is critical (maybe in 3D math?) and they're paying
> strict attention to precision issues. But in those cases how likely is
> it to shovel the floats over dbus? When one does have some arcane reason
> to use a float, you could always push them over dbus by converting to
> double or just sending them as binary data.
Single precision floating point types show up all over the place in
graphics and geographical mapping code. Moreover, when floats are used,
they are often used for a reason, and often come in arrays. This is
exactly the kind of scenario where the ordinarily insignificant boxing
overhead can actually matter.
The inspiration for this extension actually came some time ago from
Chris Toshok, who was frustrated at not being able to pass floats
through his D-Bus API in Turtle*.
Just this weekend I was experimenting with GL over D-Bus and
compiz-sharp. As it happens, I got some usable effects working over
D-Bus, and casting the floats to doubles caused a slight drop in
responsiveness. This hack wasn't a particularly great design for the
future of desktop effects, but at the same time it enabled some neat
I believe that "float" is the only common primitive type (see glib, .NET
System.Float, Java's "float") which wasn't represented in the D-Bus type
When I brought this up earlier, J5 suggested that "after 1.0" was the
right time to look into this and he also thought 'f' was a fine
The ultimate decision of whether to use it is left up to application
developers. There is no cause for concern over interoperability.
Congratulations to Matt for getting this done and I encourage other
binding authors to look into a native implementation.
More information about the dbus