Should You Use a Rules Engine to Manage Business Logic in IoT Applications?

It's not obvious to non-developers just how different computer-expressed logic is from human-expressed logic. It's one of the reasons why developers have a difficult time translating user requirements into conditional statements (rules) when designing software.

Knowing a language means being able to produce an infinite number of sentences never spoken before and to understand sentences never heard before. For us humans, it's natural to say things like Tom likes football and pancakes. For non-developers, the mental effort required to translate such statements into a computer language might not be that obvious. If we were to literally write the same statement into a computer program, it would mean (for the machine) that Tom is happy only when watching football while eating pancakes.