I would just note that that was a very specific use case and I don’t think it is valid to go from that one use case to saying that Jython or JSR223 is always faster than XTend in all cases. I think it probably is, but that experiment is not sufficient to prove it. That experiment is also just on Jython and I don;t think it can say anything about the performance of JavaScript or Groovy.
It lets you use “real” programming languages as apposed to the Domain Specific Language. If you are proficient in one of the supported languages (Jython, JavaScript, or Groovy) or really, if you are already a programmer and can’t or wont learn to use the DSL in the ways it is intended.
However, JSR223 is not as well documented as the Rules DSL and there are far fewer people on this forum that will be able to help. You will likely need to dig into the source code for the OH libraries that expose OH objects to the language interpreter to figure some things out.
Ultimately, JSR223 will let you code the way one would code in more familiar programming languages. But at this point I don’t think there is anything available in JSR223 that isn’t available in Rules DSL except more freedom to code the way you want to.
The Rules DSL is purposefully constrained. It is a compromise to present a more limited coding capabilities so as not to overwhelm the newcomers. I’ve said it before and I’ll be forced to say it again. If you are a competent coder and do not have the patience to work within those constraints then you will be unhappy with the Rules DSL and JSR223 is going to be a better place for you. The Experimental Rules Engine is also showing promise, but I think it still lacks some important features like the ability to call Actions and create Timers.
The DPs are NOT weird cheats and workarounds. They are showing how to solve problems in the Rules DSL in the way the Rules DSL supports best. It doesn’t have classes and structs so they show how to organize the code and data (using Items) in the Rules DSL way. If you don’t like the Rules DSL, you will not like the DPs either. That can’t be helped.
Lambdas are first order parts of the language. Every time you create a Timer or run a forEach you are using a lambda. Every time you see [ | ] you are using a lambda. They are hardly “tacked on”.
Buggy in what way? If there are problems then issues need to be filed and the problems fixed.
All code will have some downsides. And I agree, there should be a better way to set up and configure Items. But nothing changes the fact that Items are how you model your home automation. Switching the JSR223 or Node Red is not going to make that problem go away. If you have three door sensors and want to put the last time they were opened on your sitemap, you are going to have to have six Items (three Contacts, three DateTimes) no matter what Rule engine you are using.
Most of the DPs take advantage of name correlation and Groups to more easily find and use the Items needed in a given Rule. You will still have that same problem in your JSR223 Rules. You have more direct access to the Item Registry so you may be able to save the creation of a Group or two, but the Items will still need to be created.
Much better documented in terms of how to access the various parts of OH from the language.
Far larger set of users who will be able to help you with problems on this forum. I think there are three people on this forum right now who are actively helping with JSR223 problems and they are all pretty much Jython users.
As Udo indicated, it likely will run faster in a lot of cases. The number of situations where this actually matters in a home automation context is pretty small so either way I wouldn’t let the relative performance of the two be the deciding factor.
Also, don’t forget that this isn’t an either/or decision. You can use JASR223, Jython, and Node Red all at the same time if you find benefits from doing so.
It’s a way to link up devices and code rules graphically. It is very powerful but I suspect you will run into some of the same frustrations with it that you are with the Rules DSL. As with any DSL type language, it is purposefully constrained in many ways. It also will depend on MQTT to communicate back and forth with OH.
There are probably as many Node Red users on this forum as there are JSR223 users, though I think there are more active users who are willing to help.
You are unhappy with the Rules DSL so I do think you should look at what is available with JSR223, but don’t expect it to be a panacea. They won’t eliminate the need to create Items and Groups entirely.