[web-bluetooth] Should we remove the Bluetooth Tree?

scheib has just created a new issue for 
https://github.com/WebBluetoothCG/web-bluetooth:

== Should we remove the Bluetooth Tree? ==
I propose we remove the [bluetooth 
tree](https://webbluetoothcg.github.io/web-bluetooth/#bluetooth-tree) 
concept from the specification.

The tree allows events such as `characteristicvaluechanged` to bubble 
up to the root `navigator.bluetooth`. This may offer some convenience 
for applications to have a single location to set an event handler. It
 is also similar to how DOM events work. However, it seems unnecessary
 and only adds to specification & implementation complexity without 
significant benefit.

The tree also provides a way to synchronously retrieve the 
devices/services/characteristics/descriptors again. Reading just now I
 don't see text indicating that the tree is only populated after 
asynchronous calls such as `getCharacteristics`, but I presume that is
 the intent. Given current API, applications still must make async 
calls to get services, characteristics, and descriptors and it seems 
they might as well save references to any objects of interest as they 
do so.

Am I missing some other benefit it provides, or am I not appreciating 
the convenience it would offer?

Please view or discuss this issue at 
https://github.com/WebBluetoothCG/web-bluetooth/issues/354 using your 
GitHub account

Received on Thursday, 2 February 2017 18:28:48 UTC