This is the first issue Favor is addressing. With Favor, the hardware has a simple config file which describes the hardware and how to interact with it. You then write your business logic using Favor to accomplish whatever task needs to be done.
Favor is an open-source javascript library, hopefully simple to use and accessible to a wider base of developers who may have never developed hardware before.
You can check out the library at https://github.com/favor/it or a demo hello-world video on youtube https://www.youtube.com/watch?v=bHKyFJ41amA
Keen to hear feedback, still in the very early stages of this.