Currently your options in OH 3 include:
- codeless, simple when this do that type rules do not even require any code at all through the UI
- Rules DSL
- Python 2.7
- JavaScript (ECMA Script 5.1)
- Blockly, Scratch liked visual programming in the browser, not yet complete though, generates JavaScript under the blocks
- Groovy
- Experimental support for jRuby (search the forum)
Python, Groovy, and jRuby require an addon to be installed. All except Blockly (for now) and codeless are as capable or more capable than Rules DSL. In the case of jRuby, Python, and JavaScript, they are significantly more capable than Rules DSL.
If you plan on writing rules in text files, you will want to use the Helper Libraries for Python and JavaScript. jRuby also has a library but the Python and JavaScript ones prioritize similarity to Rules DSL to ease transition and translation of examples and jRuby prioritizes making rules more “pure” to the language so they are kind of their own thing.
Note that JavaScript, Python, and Groovy are also available in OH 2.5.
External to OH you have the choice of:
- Node Red, visual programming flows
- HABApp, pure Python 3
- roll your own, the REST API is pretty robust
And of course, these are not mutually exclusive. You can use any or all of theses in any combination you choose at the same time.