I've alluded to doing a large rewrite of Control in a few postings over the past couple of weeks. As I'm getting closer I'm curious how people think I should handle the update; the problem is it will break most existing user interfaces. Here's some concerns for me"
1. No more global objects. Everything is stored inside of control. For example, if you name a slider slider1 to refer to it in your code you will now have to use control.slider1. oscManager will be control.oscManager. I think this will make it more stable to add external javascript libraries (like Box2D etc) so there's not "namespace" collisions.
2. I've changed the storage model for interfaces in iOS to be the same as Android. This should get rid of problems with interfaces and destinations not appearing correctly. But it will require all (non-stock) interfaces to be reloaded.
I don't want people to download the new version and then suddenly have all their custom interfaces stop working. Should I publish the app with a new name? Control2? CNTRL? These would also be easier to search for in the app store potentially...
There's obviously going to be some new features in there as well. My favorite is that event handlers will no longer be strings, so :
"ontouchend" : "mySlider.value = 2;"
is replaced by:
"ontouchend" : function() { mySlider.value = 2; }
Or you can directly call a function that has been previously defined. This will be much more efficient than the previous method. There is also a new AutoGUI feature for creating interfaces via OSC that is pretty neat and allows really fast integration with apps like Max/MSP and SuperCollider.
Anyways, curious what people think about releasing a separate app vs. updating the existing one. I'm not excited about losing all the "press" associated with the current version of Control if I change the name...
- Charlie